public async Task <OperationResult> CreateDescriptionGroupAsync(DescriptionGroup descriptionGroup) { ThrowIfDisposed(); if (descriptionGroup == null) { throw new ArgumentNullException(nameof(descriptionGroup)); } if (await _repository.DescriptionGroupItemsQueryable .AnyAsync(x => x.Name == descriptionGroup.Name, CancellationToken)) { return(OperationResult.Failure(ErrorDescriber.DuplicateDescriptionGroupName())); } var result = await Validate(new[] { descriptionGroup }, DescriptionGroupValidators); if (!result.Succeeded) { return(result); } result = await _repository.CreateDescriptionGroupAsync(descriptionGroup, CancellationToken); if (!result.Succeeded) { return(result); } return(OperationResult.Success()); }