public async Task <List <AppRecipesGetDto> > GetRecipesGetDtoByProductId(AppRecipesQueryFilter filter) { List <AppRecipesGetDto> resultDto = new List <AppRecipesGetDto>(); var recipes = await GetAllRecipesByProductId(filter.AppproductsId); if (recipes != null) { if (filter.SearchText != "" && filter.SearchText != null) { recipes = recipes.Where(x => x.Description.Trim().ToLower().Contains(filter.SearchText.Trim().ToLower()) || x.Code.Trim().ToLower().Contains(filter.SearchText.Trim().ToLower()) || x.Formula.Trim().ToLower().Contains(filter.SearchText.Trim().ToLower())).ToList(); } List <AppRecipesGetDto> recipesDto = _mapper.Map <List <AppRecipesGetDto> >(recipes); foreach (var item in recipesDto) { AppProducts appProductsFind = await _appProductsService.GetById((int)item.AppproductsId); if (appProductsFind != null) { AppProductsGetDto appProductsGetDto = _mapper.Map <AppProductsGetDto>(appProductsFind); item.AppProductsGetDto = appProductsGetDto; } AppVariables appVariablesFind = await _appVariablesService.GetById((int)item.AppVariableId); if (appVariablesFind != null) { AppVariablesGetDto appVariablesGetDto = _mapper.Map <AppVariablesGetDto>(appVariablesFind); item.AppVariablesGetDto = appVariablesGetDto; } if (item.AppIngredientsId != null) { AppIngredients appIngredientsFind = await _unitOfWork.AppIngredientsRepository.GetById((int)item.AppIngredientsId); if (appIngredientsFind != null) { AppIngredientsGetDto appIngredientsGetDto = _mapper.Map <AppIngredientsGetDto>(appIngredientsFind); item.AppIngredientsGetDto = appIngredientsGetDto; } } } resultDto = recipesDto; } return(resultDto); }
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); } }