コード例 #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 async Task <WarehouseServiceModel> UpdateAsync(UpdateWarehouseServiceModel serviceModel)
        {
            var warehouse = await this.context.Warehouses.FirstOrDefaultAsync(x => x.Id == serviceModel.Id && x.SellerId == serviceModel.OrganisationId.Value && x.IsActive);

            if (warehouse == null)
            {
                throw new CustomException(this.warehouseLocalizer.GetString("WarehouseNotFound"), (int)HttpStatusCode.NotFound);
            }

            warehouse.Name             = serviceModel.Name;
            warehouse.Location         = serviceModel.Location;
            warehouse.LastModifiedDate = DateTime.UtcNow;

            await this.context.SaveChangesAsync();

            return(await this.GetAsync(new GetWarehouseServiceModel { Id = warehouse.Id, Language = serviceModel.Language, OrganisationId = serviceModel.OrganisationId, Username = serviceModel.Username }));
        }