public void CarregarTabelaNutricional(string FileName) { var xlsFile = new ExcelQueryFactory(FileName); var listaTabelaNutricional = tabelaNutricionalBm.GetAll().Select(x => x.NomePlanilhaCarga).ToList(); var listaDados = from f in xlsFile.Worksheet("Plan1") select f; foreach (var ing in listaDados) { //Carregando a Categoria CategoriaIngrediente categoria = categoriaIngredienteBm.GetByNome(ing["Categoria"].Value.ToString()); if (categoria == null) { categoria = new CategoriaIngrediente() { Nome = ing["Categoria"].Value.ToString() }; categoriaIngredienteBm.Insert(categoria); } //Carregando o Cliente Ingrediente ingrediente = ingredienteBm.GetByCodigoTACO(int.Parse(ing["CodigoTACO"].Value.ToString())); if (ingrediente == null) { ingrediente = new Ingrediente() { Ativo = true, Categoria = categoriaIngredienteBm.GetByID(categoria.IdCategoriaIngrediente), CodigoTACO = int.Parse(ing["CodigoTACO"].Value.ToString()), NomeTACO = ing["NomeTACO"].ToString() }; ingredienteBm.Insert(ingrediente); } //Percorrendo a lista de atributos da tabela nutricional para inclusão foreach(var nomeComp in listaTabelaNutricional) { double valor = 0; double.TryParse(ing[nomeComp.Trim()].Value.ToString(), out valor); TabelaNutricional componente = tabelaNutricionalBm.GetByNomePlanilha(nomeComp.Trim()); var ingredienteTabelaNutricional = ingredienteTabelaNutricionalBm.GetByIngredienteAndTabelaNutricional(ingredienteBm.GetByID(ingrediente.IdIngrediente), componente); if (ingredienteTabelaNutricional == null) { ingredienteTabelaNutricional = new IngredienteTabelaNutricional() { Componente = tabelaNutricionalBm.GetByID(componente.IdTabelaNutricional), Ingrediente = ingredienteBm.GetByID(ingrediente.IdIngrediente), }; ingredienteTabelaNutricionalBm.Insert(ingredienteTabelaNutricional); } ingredienteTabelaNutricional.Valor = valor; ingredienteTabelaNutricional.PercValorDiario = CalculaPercentualDiario(ingredienteTabelaNutricional); ingredienteTabelaNutricionalBm.Update(ingredienteTabelaNutricional); } } }
private IngredienteTabelaNutricionalModel ParseIngredienteTabelaNutricionalModel(IngredienteTabelaNutricional pIngrediente) { return new IngredienteTabelaNutricionalModel() { IdIngredienteTabelaNutricional = pIngrediente.IdIngredienteTabelaNutricional, Valor = pIngrediente.Valor, Ingrediente = new IngredientesModel() { IdIngrediente = pIngrediente.Ingrediente.IdIngrediente, Abreviatura = pIngrediente.Ingrediente.Abreviatura, Nome = pIngrediente.Ingrediente.Nome, Ativo = pIngrediente.Ingrediente.Ativo, Categoria = new CategoriaIngredienteModel() { IdCategoriaIngrediente = pIngrediente.Ingrediente.Categoria.IdCategoriaIngrediente, Nome = pIngrediente.Ingrediente.Categoria.Nome }, CodigoTACO = pIngrediente.Ingrediente.CodigoTACO, NomeTACO = pIngrediente.Ingrediente.NomeTACO }, ComponenteNutricional = new TabelaNutricionalModel() { IdTabelaNutricionalModel = pIngrediente.Componente.IdTabelaNutricional, Nome = pIngrediente.Componente.Nome, UnidadeMedida = pIngrediente.Componente.UnidadeMedida } }; }
private double? CalculaPercentualDiario(IngredienteTabelaNutricional pIngrediente) { if (!pIngrediente.Componente.ValorDiario.HasValue || pIngrediente.Componente.ValorDiario.Value == 0) return null; else return Math.Round((pIngrediente.Valor / pIngrediente.Componente.ValorDiario.Value) * 100,2); }