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); } }
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); }