コード例 #1
0
ファイル: ShopManager.cs プロジェクト: n-think/Website
        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());
        }