// <---------- Category ---------->


        public async Task <ResponseResult <CategoryResponse> > CreateCategoryAsync(CategoryRequest categoryRequest, string creatorId)
        {
            var isGameServerExists = await _shopRepository.IsGameServerExistsAsync(categoryRequest.GameServerId);

            if (!isGameServerExists)
            {
                return(new ResponseResult <CategoryResponse>
                {
                    Errors = new[] { "Game server is not exist" }
                });
            }

            var dateNow = DateTimeOffset.UtcNow;

            var category = _mapper.Map <Category>(categoryRequest);

            category.CreatorId = Guid.Parse(creatorId);
            category.CreatedAt = dateNow;
            category.UpdatedAt = dateNow;

            var createdCategory = await _shopRepository.CreateCategoryAsync(category);

            if (createdCategory == null)
            {
                return(new ResponseResult <CategoryResponse>
                {
                    Errors = new[] { "Category already exists" }
                });
            }

            var mappedCategoryResponse = _mapper.Map <CategoryResponse>(createdCategory);

            return(new ResponseResult <CategoryResponse>
            {
                Success = true,
                Response = mappedCategoryResponse
            });
        }
Exemple #2
0
        public async Task <OperationResult> CreateCategoryAsync(Category category)
        {
            ThrowIfDisposed();
            if (category == null)
            {
                throw new ArgumentNullException(nameof(category));
            }

            var result = await Validate(new[] { category }, CategoryValidators);

            if (!result.Succeeded)
            {
                return(result);
            }

            result = await _repository.CreateCategoryAsync(category, CancellationToken);

            if (!result.Succeeded)
            {
                return(result);
            }

            return(OperationResult.Success());
        }