public async Task <IActionResult> Get(Guid?id) { var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim); var serviceModel = new GetProductAttributeItemByIdServiceModel { Id = id.Value, Username = this.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value, OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value), Language = CultureInfo.CurrentCulture.Name }; var validator = new GetProductAttributeItemByIdModelValidator(); var validationResult = await validator.ValidateAsync(serviceModel); if (validationResult.IsValid) { var productAttributeItem = await this.productAttributesService.GetProductAttributeItemByIdAsync(serviceModel); if (productAttributeItem != null) { var response = new ProductAttributeItemResponseModel { Id = productAttributeItem.Id, Name = productAttributeItem.Name, Order = productAttributeItem.Order, LastModifiedDate = productAttributeItem.LastModifiedDate, CreatedDate = productAttributeItem.CreatedDate }; return(this.StatusCode((int)HttpStatusCode.OK, response)); } else { return(this.StatusCode((int)HttpStatusCode.NotFound)); } } return(this.StatusCode((int)HttpStatusCode.UnprocessableEntity)); }
public async Task <IActionResult> Save([FromBody] ProductAttributeItemRequestModel request) { var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim); var serviceModel = new CreateUpdateProductAttributeItemServiceModel { Id = request.Id, ProductAttributeId = request.ProductAttributeId, Name = request.Name, Username = this.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value, OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value), Language = CultureInfo.CurrentCulture.Name }; if (request.Id.HasValue) { var validator = new UpdateProductAttributeItemModelValidator(); var validationResult = await validator.ValidateAsync(serviceModel); if (validationResult.IsValid) { var productAttributeItem = await this.productAttributesService.UpdateProductAttributeItemAsync(serviceModel); if (productAttributeItem != null) { var response = new ProductAttributeItemResponseModel { Id = productAttributeItem.Id, Name = productAttributeItem.Name, Order = productAttributeItem.Order, LastModifiedDate = productAttributeItem.LastModifiedDate, CreatedDate = productAttributeItem.CreatedDate }; return(this.StatusCode((int)HttpStatusCode.OK, response)); } } throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity); } else { var validator = new CreateProductAttributeItemModelValidator(); var validationResult = await validator.ValidateAsync(serviceModel); if (validationResult.IsValid) { var productAttributeItem = await this.productAttributesService.CreateProductAttributeItemAsync(serviceModel); if (productAttributeItem != null) { var response = new ProductAttributeItemResponseModel { Id = productAttributeItem.Id, Name = productAttributeItem.Name, Order = productAttributeItem.Order, LastModifiedDate = productAttributeItem.LastModifiedDate, CreatedDate = productAttributeItem.CreatedDate }; return(this.StatusCode((int)HttpStatusCode.Created, response)); } } throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity); } }