public async Task <Store> UpdateStore(UpdateStoreDto userUpdateStore) { var user = await _context.SystemUser .Include(x => x.Stores) .ThenInclude(s => s.StoreStockDetail) .Include(x => x.Stores) .ThenInclude(s => s.Category) .Include(x => x.Stores) .ThenInclude(s => s.CountryCode) .FirstOrDefaultAsync(x => x.UserName == userUpdateStore.UserName); if (user == null) { return(null); } var store = user.Stores.FirstOrDefault(soe => soe.Id == userUpdateStore.StoreId); if (store == null) { throw new NotFoundException("Store Not Found Id=" + userUpdateStore.StoreId); } var category = await _context.Category.FirstOrDefaultAsync(x => x.Id == userUpdateStore.Category); var countryCode = await _context.CountryCode.FirstOrDefaultAsync(x => x.Id == userUpdateStore.CountryCode); store.CountryCode = countryCode ?? throw new NotFoundException("countryCode Not Found Id=" + userUpdateStore.CountryCode); store.Category = category ?? throw new NotFoundException("Category Not Found Id=" + userUpdateStore.Category); store.Email = userUpdateStore.Email; store.Name = userUpdateStore.Name; store.StoreStockDetail.BackStore = userUpdateStore.BackStore; store.StoreStockDetail.FrontStore = userUpdateStore.FrontStore; store.StoreStockDetail.ShoppingWindow = userUpdateStore.ShoppingWindow; _context.Update(store); await _context.SaveChangesAsync(); return(store); }
/// <summary> /// Updates the store. /// </summary> /// <param name="storeId"></param> /// <param name="updateModel"></param> /// <returns></returns> public async Task <StoreDto> UpdateStore(Guid storeId, UpdateStoreDto updateModel) { if (!validationContext.IsValid) { return(null); } var existingStore = await unitOfWork.GetRepository <Store>() .GetByIdAsync(storeId); if (existingStore == null) { return(null); } mapper.Map <UpdateStoreDto, Store>(updateModel, existingStore); unitOfWork.GetRepository <Store>().Update(existingStore); await unitOfWork.SaveAsync(); return(mapper.Map <Store, StoreDto>(existingStore)); }
public async Task <ActionResult> UpdateStore([FromBody] UpdateStoreDto userUpdateStore) { await Validate(userUpdateStore.UserName); if (!ModelState.IsValid) { return(BadRequest(ModelState.Keys.SelectMany(i => ModelState[i].Errors).Select(m => m.ErrorMessage).ToArray())); } var store = await _storeRepository.UpdateStore(userUpdateStore); var getStoreDto = new GetStoreDto(); getStoreDto.BackStore = store.StoreStockDetail.BackStore; getStoreDto.Category = store.Category.Id; getStoreDto.CountryCode = store.CountryCode.Id; getStoreDto.Email = store.Email; getStoreDto.FrontStore = store.StoreStockDetail.FrontStore; getStoreDto.Id = store.Id; getStoreDto.Name = store.Name; getStoreDto.ShoppingWindow = store.StoreStockDetail.ShoppingWindow; return(Ok(getStoreDto)); }