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);
        }
Ejemplo n.º 2
0
        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);
            }
        }