public async Task <ActionResult <Data.Models.Sale> > UpdateSale(int saleId, Data.Models.SaleForUpdate updatedSale) { try { Data.Entities.Sale dbSale = await _repository.GetSaleAsync(saleId); if (dbSale == null) { return(NotFound()); } _mapper.Map(updatedSale, dbSale); if (await _repository.SaveChangesAsync()) { Data.Models.Sale savedSale = _mapper.Map <Data.Models.Sale>(dbSale); return(Ok(savedSale)); } else { return(BadRequest("Failed to update.")); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database exception: " + ex.Message)); } }
public async Task <ActionResult <Data.Models.Sale> > PatchSale(int saleId, JsonPatchDocument <Data.Models.SaleForUpdate> patchDocument) { try { Data.Entities.Sale dbSale = await _repository.GetSaleAsync(saleId); if (dbSale == null) { return(NotFound()); } var updatedSale = _mapper.Map <Data.Models.SaleForUpdate>(dbSale); patchDocument.ApplyTo(updatedSale, ModelState); _mapper.Map(updatedSale, dbSale); if (await _repository.SaveChangesAsync()) { Data.Models.Sale savedSale = _mapper.Map <Data.Models.Sale>(await _repository.GetSaleAsync(saleId)); return(Ok(savedSale)); } else { return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to save to database")); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to patch sale " + ex.Message)); } }
public async Task <ActionResult <Data.Models.Sale> > CreateNewSale(Data.Models.SaleForCreate newSale) { Data.Entities.Sale dbNewSale = null; try { dbNewSale = _mapper.Map <Data.Entities.Sale>(newSale); } catch (Exception ex) { return(BadRequest("Input is in invalid format: " + ex.Message)); } if (dbNewSale == null) { return(BadRequest("Input is in invalid format")); } await _repository.AddAsync <Data.Entities.Sale>(dbNewSale); await _repository.SaveChangesAsync(); Data.Models.Sale addedSale = _mapper.Map <Data.Models.Sale>(dbNewSale); var url = _linkgenerator.GetPathByAction(HttpContext, "GetSaleBySaleId", "Sales", addedSale); return(this.Created(url, addedSale)); }
public async Task <IActionResult> DeleteSale(int saleId) { try { Data.Entities.Sale dbSale = await _repository.GetSaleAsync(saleId); if (dbSale == null) { return(NotFound()); } _repository.Delete <Data.Entities.Sale>(dbSale); await _repository.SaveChangesAsync(); return(NoContent()); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database exception: " + ex.Message)); } }