public async Task <ApiResponse <AppIngredientsGetDto> > UpdateAppIngredient(AppIngredientsUpdateDto dto) { AppIngredientsGetDto resultDto = new AppIngredientsGetDto(); Metadata metadata = new Metadata { IsValid = true, Message = "" }; ApiResponse <AppIngredientsGetDto> response = new ApiResponse <AppIngredientsGetDto>(resultDto); try { var ingredient = await GetById(dto.Id); if (ingredient == null) { metadata.IsValid = false; metadata.Message = "Ingrediente No existe"; response.Data = resultDto; response.Meta = metadata; return(response); } if (dto.Code == null || dto.Code == "") { metadata.IsValid = false; metadata.Message = "Codigo Invalido"; response.Data = resultDto; response.Meta = metadata; return(response); } if (dto.Description == null || dto.Description == "") { metadata.IsValid = false; metadata.Message = "Descripcion Invalida"; response.Data = resultDto; response.Meta = metadata; return(response); } if (dto.Cost <= 0) { metadata.IsValid = false; metadata.Message = "Costo Invalido"; response.Data = resultDto; response.Meta = metadata; return(response); } AppUnits AppUnitsFind = await _appUnitsService.GetById(dto.AppUnitId); if (AppUnitsFind == null) { metadata.IsValid = false; metadata.Message = "Unidad de Medida no existe!!"; response.Data = resultDto; response.Meta = metadata; return(response); } MtrTipoMoneda MtrTipoMonedaPrymaryFind = await _mtrTipoMonedaService.GetById((long)dto.PrymaryMtrMonedaId); if (MtrTipoMonedaPrymaryFind == null) { metadata.IsValid = false; metadata.Message = "Moneda Primaria no existe!!"; response.Data = resultDto; response.Meta = metadata; return(response); } MtrTipoMoneda MtrTipoMonedaSecundaryFind = await _mtrTipoMonedaService.GetById((long)dto.SecundaryMtrMonedaId); if (MtrTipoMonedaSecundaryFind == null) { metadata.IsValid = false; metadata.Message = "Moneda Secundaria no existe!!"; response.Data = resultDto; response.Meta = metadata; return(response); } ingredient.Code = dto.Code; ingredient.Description = dto.Description; ingredient.Cost = dto.Cost; ingredient.AppUnitId = dto.AppUnitId; ingredient.PrymaryMtrMonedaId = dto.PrymaryMtrMonedaId; ingredient.SecundaryMtrMonedaId = dto.SecundaryMtrMonedaId; ingredient.UserUpdate = dto.UsuarioConectado; ingredient.UpdatedAt = DateTime.Now; var updated = await Update(ingredient); resultDto = _mapper.Map <AppIngredientsGetDto>(updated); await RecalculateRecipesByIngredient(ingredient.Id); if (AppUnitsFind != null) { AppUnitsGetDto appUnitsGetDto = _mapper.Map <AppUnitsGetDto>(AppUnitsFind); resultDto.AppUnitsGetDto = appUnitsGetDto; } if (MtrTipoMonedaPrymaryFind != null) { MtrTipoMonedaDto mtrTipoMonedaDto = _mapper.Map <MtrTipoMonedaDto>(MtrTipoMonedaPrymaryFind); resultDto.PrymaryMtrMonedaDto = mtrTipoMonedaDto; } if (MtrTipoMonedaSecundaryFind != null) { MtrTipoMonedaDto mtrTipoMonedaDto = _mapper.Map <MtrTipoMonedaDto>(MtrTipoMonedaSecundaryFind); resultDto.SecundaryMtrMonedaDto = mtrTipoMonedaDto; } response.Data = resultDto; response.Meta = metadata; return(response); } catch (Exception ex) { metadata.IsValid = false; metadata.Message = ex.InnerException.Message; response.Data = null; response.Meta = metadata; return(response); } }
public async Task <IActionResult> UpdateAppIngredient(AppIngredientsUpdateDto dto) { var response = await _appIngredientsService.UpdateAppIngredient(dto); return(Ok(response)); }