public async Task <PurchaseTypeDTO> UpdateAsync(PurchaseTypePutRequest model, ApiDbContext apiDbContext) { try { var purchaseType = await apiDbContext.PurchaseTypes.FindAsync(model.Id); if (purchaseType == null) { throw new Exception($"No existe el tipo de pedido {model.Name} con id {model.Id}"); } var purchaseTypeFound = apiDbContext.PurchaseTypes.FirstOrDefault(p => p.Id != model.Id && p.Code.ToUpper().Trim().Equals(model.Code.ToUpper().Trim())); if (purchaseTypeFound != null) { throw new Exception($"Ya existe un el tipo de pedido con el código {model.Code}"); } purchaseType.Code = model.Code; purchaseType.Name = model.Name; await apiDbContext.SaveChangesAsync(); return(ModelToDTO(purchaseType)); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IActionResult> Update(PurchaseTypePutRequest model) { try { if (!ModelState.IsValid) { throw new Exception("Petición de actualización inválida"); } return(Ok(await _purchaseTypeService.UpdateAsync(model, _apiDbContext))); } catch (Exception e) { return(StatusCode(500, e.Message)); } }