public ActionResult AdicionarItem(ResListViewModel model)
        {
            IEleDAL eDAL = new IEleDAL();
            IEle    ele  = eDAL.BuscarPorNome(model.IEleAdd.NmEle);

            ComEleDAL ceDAL = new ComEleDAL();
            ComEle    ce    = new ComEle(model.IEleAdd.IdCom, ele.IdIEle, 0);

            ceDAL.Inserir(ce);

            @TempData["msg"] = "Item Eletrônico adicionado com sucesso";

            return(RedirectToAction("Index", "ResList"));
        }
        public ActionResult Index()
        {
            IEleDAL eDAL = new IEleDAL();
            DicaDAL dDAL = new DicaDAL();

            List <List <Dica> > listDica = new List <List <Dica> >();

            //Gerar as dicas pertinentes:
            List <int> categorias = new List <int>();

            foreach (IEle item in (List <IEle>)Session["itens"])
            {
                categorias.Add(item.IdCat);
            }

            List <int> catFiltrada = categorias.Distinct().ToList();

            foreach (int cat in catFiltrada)
            {
                listDica.Add((List <Dica>)dDAL.ConsultarPorCategoria(cat));
            }

            return(View(listDica));
        }
        public ActionResult Index()
        {
            //Disponibilizar os dados do usuário para o layout
            //ViewBag.Usuario = usuario;
            //@{var usuario = (Andromeda.Models.Usuario)ViewBag.usuario;}

            ResListViewModel model = new ResListViewModel();

            //Obter lista de residências relacionadas ao usuário
            IList <UserRes> listUr = new List <UserRes>();
            UserResDAL      urDAL  = new UserResDAL();

            listUr = urDAL.ListarPorUser(1);

            IList <Residencia> listRes = new List <Residencia>();
            ResidenciaDAL      resDAL  = new ResidenciaDAL();

            listRes       = resDAL.ListarPorUser(listUr);
            model.ListRes = listRes;

            Session["res"] = listRes[0];

            //Objeto a ser preenchido com a criação de uma nova residência
            model.Res = new Residencia();

            //Objeto a ser alterado na edição de uma residência
            model.ResEdit = new Residencia();

            //Gerar lista de Comodos atrelados a cada residencia
            List <List <Comodo> > listsCom = new List <List <Comodo> >();
            ComodoDAL             comDAL   = new ComodoDAL();

            foreach (Residencia res in listRes)
            {
                List <Comodo> listaComodo = (List <Comodo>)comDAL.ListarPorRes(res.IdRes);
                listsCom.Add(listaComodo);
                if (res.IdRes == listRes[0].IdRes)
                {
                    Session["com"] = listaComodo;
                }
            }

            model.ListsComodo = listsCom;

            //Objeto a ser preenchido com a criação de um novo cômodo
            model.Com = new Comodo();

            //Objeto a ser preenchido com a edição de cômodo
            model.ComEdit = new Comodo();

            //Gerar lista de aparelhos para cada cômodo
            //1- Gerar lista de ComEle para cada cômodo
            List <List <ComEle> > listsComEle = new List <List <ComEle> >();
            ComEleDAL             ceDAL       = new ComEleDAL();

            foreach (List <Comodo> listCom in listsCom)
            {
                foreach (Comodo com in listCom)
                {
                    listsComEle.Add((List <ComEle>)ceDAL.ListarPorCom(com.IdComodo));
                }
            }

            //2- Gerar lista funcional de IEle + Id Comodo + Id ItemAparelho
            List <IEleTratado> listTratado = new List <IEleTratado>();
            IEleDAL            eDAL        = new IEleDAL();

            List <IEle> listaEle = new List <IEle>();

            foreach (List <ComEle> listComEle in listsComEle)
            {
                foreach (ComEle comEle in listComEle)
                {
                    IEleTratado tratado = new IEleTratado();
                    IEle        item    = eDAL.Consultar(comEle.IdIEle);

                    tratado.IdComEle   = comEle.IdComEle;
                    tratado.IdIEle     = item.IdIEle;
                    tratado.NmIEle     = item.NmIEle;
                    tratado.IdCat      = item.IdCat;
                    tratado.VlConsumo  = item.VlConKwh;
                    tratado.Custo      = item.VlCusto;
                    tratado.IdComodo   = comEle.IdComodo;
                    tratado.QntConsumo = (int)comEle.QtTempoUso;
                    listTratado.Add(tratado);

                    foreach (Comodo com in (List <Comodo>)Session["com"])
                    {
                        if (comEle.IdComodo == com.IdComodo)
                        {
                            listaEle.Add(item);
                        }
                    }
                }
            }

            Session["itens"] = listaEle;

            //3- Exportar objeto tratado para o modelo
            model.ListIEle = listTratado;

            //Objeto para adicao de novo item dentro de um comodo
            model.IEleAdd = new IEleAdd();

            return(View(model));
            //return View (listRes);
        }