/// <inheritdoc/> public async Task <StoreItem> CreateStoreItemAsync(UpdateStoreItemRequest createRequest) { var dbProduct = _productContext.Products.Where(p => p.Id == createRequest.ProductId).FirstOrDefault(); if (dbProduct == null) { throw new RequestedResourceHasConflictException("Product"); } var dbAllowedSectionCatagegories = _categoryContext.Categories.Where(c => c.StoreHiveSectionId == createRequest.HiveSectionId && c.ProductCategoryId == dbProduct.Category.Id).FirstOrDefault(); if (dbAllowedSectionCatagegories == null) { throw new RequestedResourceHasConflictException("Unallowable product category for this hive section."); } var dbStoreItem = Mapper.Map <UpdateStoreItemRequest, DbStoreItem>(createRequest); dbStoreItem.CreatedDate = DateTime.UtcNow; _storeItemContext.Items.Add(dbStoreItem); await _storeItemContext.SaveChangesAsync(); return(Mapper.Map <StoreItem>(dbStoreItem)); }
public async Task <StoreItem> UpdateStoreItemAsync(int storeItemId, UpdateStoreItemRequest updateRequest) { var dbProduct = _productContext.Products.Where(p => p.Id == updateRequest.ProductId).FirstOrDefault(); if (dbProduct == null) { throw new RequestedResourceHasConflictException("Product"); } var dbAllowedSectionCatagegories = _categoryContext.Categories.Where(c => c.StoreHiveSectionId == updateRequest.HiveSectionId && c.ProductCategoryId == dbProduct.Category.Id).FirstOrDefault(); if (dbAllowedSectionCatagegories == null) { throw new RequestedResourceHasConflictException("Unallowable product category for this hive section."); } var dbStoreItems = await _storeItemContext.Items.Where(i => i.Id == storeItemId).ToArrayAsync(); if (dbStoreItems.Length == 0) { throw new RequestedResourceNotFoundException(); } var dbStoreItem = dbStoreItems[0]; if (dbStoreItem.IsApproved != updateRequest.IsApproved) { dbStoreItem.ConfirmationDate = DateTime.UtcNow; } Mapper.Map(updateRequest, dbStoreItem); await _storeItemContext.SaveChangesAsync(); return(Mapper.Map <StoreItem>(dbStoreItem)); }