public async Task <IActionResult> UpdateMarket(long id, [FromBody] UpdateMarketSellerDTO updatedMarketSeller) { // check if requester is trying to update markets of other sellers if (id != updatedMarketSeller.SellerId) { return(Forbid()); } // check if requester is part of the seller if (!await _permissionService.UserIsSeller(HttpContext.GetUserIdFromToken(), id)) { return(Forbid()); } return(Ok(await _sellerService.UpdateMarketSeller(updatedMarketSeller))); }
public async Task <ServiceResponse <GetMarketSellerDTO> > UpdateMarketSeller(UpdateMarketSellerDTO updatedMarketSeller) { ServiceResponse <GetMarketSellerDTO> serviceResponse = new ServiceResponse <GetMarketSellerDTO>(); try { var marketSeller = await _context.MarketSellers.Include(x => x.Market).Include(x => x.Seller).FirstOrDefaultAsync(x => x.SellerId == updatedMarketSeller.SellerId && x.MarketId == updatedMarketSeller.MarketId); if (marketSeller != null) { marketSeller.Description = updatedMarketSeller.Description; marketSeller.Portfolio = updatedMarketSeller.Portfolio; marketSeller.LastReservationOffset = updatedMarketSeller.LastReservationOffset; marketSeller.DebitCardAccepted = updatedMarketSeller.DebitCardAccepted; marketSeller.CreditCardAccepted = updatedMarketSeller.CreditCardAccepted; marketSeller.Visible = updatedMarketSeller.Visible; // TODO: figure out why this is not working here //_context.MarketSellers.Update(dbMarketSeller); await _context.SaveChangesAsync(); serviceResponse.Data = _mapper.Map <GetMarketSellerDTO>(marketSeller); } else { serviceResponse.Success = false; serviceResponse.Message = $"Could not found market with id '{updatedMarketSeller.MarketId}' on seller with id '{updatedMarketSeller.SellerId}'"; } } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Exception = ex.Message; } return(serviceResponse); }