Пример #1
0
        public async Task <IActionResult> Save(WarehouseRequestModel request)
        {
            var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim);

            if (request.Id.HasValue && request.Id != null)
            {
                var serviceModel = new UpdateWarehouseServiceModel
                {
                    Id             = request.Id.Value,
                    Name           = request.Name,
                    Location       = request.Location,
                    Language       = CultureInfo.CurrentCulture.Name,
                    OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value)
                };

                var validator        = new UpdateWarehouseModelValidator();
                var validationResult = await validator.ValidateAsync(serviceModel);

                if (validationResult.IsValid)
                {
                    var warehouse = await this.warehouseService.UpdateAsync(serviceModel);

                    return(this.StatusCode((int)HttpStatusCode.OK, new { warehouse.Id }));
                }
                throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity);
            }
            else
            {
                var serviceModel = new CreateWarehouseServiceModel
                {
                    Name           = request.Name,
                    Location       = request.Location,
                    Language       = CultureInfo.CurrentCulture.Name,
                    OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value)
                };

                var validator        = new CreateWarehouseModelValidator();
                var validationResult = await validator.ValidateAsync(serviceModel);

                if (validationResult.IsValid)
                {
                    var warehouse = await this.warehouseService.CreateAsync(serviceModel);

                    return(this.StatusCode((int)HttpStatusCode.Created, new { warehouse.Id }));
                }

                throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity);
            }
        }
Пример #2
0
        public void Post([FromBody] WarehouseRequestModel entity)
        {
            if (entity == null)
            {
                throw new HttpRequestException(_errorHandler.GetErrorMessage(ErrorMessagesEnum.EntityNull));
            }

            if (!ModelState.IsValid)
            {
                throw new HttpRequestException(string.Format(_errorHandler.GetErrorMessage(ErrorMessagesEnum.ModelValidation), ModelState.Values.First().Errors.First().ErrorMessage));
            }
            if (_service.GetById(entity.Id) != null)
            {
                throw new HttpRequestException(_errorHandler.GetErrorMessage(ErrorMessagesEnum.EntityDuplicate));
            }
            var request = _mapper.Map <WarehouseRequestModel, WarehouseResponse>(entity);

            _service.Add(request);
        }