Esempio n. 1
0
        public ActionResult Principal()
        {
            string[] user  = User.Identity.Name.Split('|');
            string   email = user[0];
            var      usu   = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault();

            if (usu == null)
            {
                return(View());
            }

            VMPrincipal vmp = new VMPrincipal();

            vmp.UsuarioId      = usu.Id;
            vmp.UsuarioTags    = db.UsuarioTag.Where(x => x.UsuarioId == usu.Id).ToList();
            vmp.ProjetosSalvos = db.ProjetosSalvos.Where(x => x.UsuarioId == usu.Id).ToList();
            List <ProjetoTags> recomenda = new List <ProjetoTags>();

            if (vmp.UsuarioTags.Count() > 0)
            {
                vmp.ProjetoTags = db.ProjetoTags.Where(x => x.Projeto.Ativo == true).OrderBy(x => x.ProjetoId).ToList();

                int proId = 0;
                foreach (var protag in vmp.ProjetoTags)
                {
                    foreach (var usutag in vmp.UsuarioTags)
                    {
                        if (protag.TagId == usutag.TagId)
                        {
                            if (proId == protag.ProjetoId)
                            {
                                break;
                            }

                            bool salvo = false;
                            bool meu   = false;

                            Projeto pro = db.Projeto.Find(protag.ProjetoId);

                            if (pro.Punicao > DateTime.Now)
                            {
                                break;
                            }

                            foreach (var subitem in pro.IntegrantesProjetos)
                            {
                                if (subitem.UsuarioID == usu.Id && subitem.Ativo == true)
                                {
                                    meu = true;
                                    break;
                                }
                            }
                            var prosal = db.ProjetosSalvos.Where(x => x.UsuarioId == usu.Id).ToList();
                            foreach (var subitem in prosal)
                            {
                                if (subitem.ProjetoId == protag.ProjetoId)
                                {
                                    salvo = true;
                                    break;
                                }
                            }

                            if (salvo == false && meu == false)
                            {
                                recomenda.Add(protag);
                                proId = protag.ProjetoId;
                                break;
                            }
                        }
                    }
                }

                vmp.ProjetoTags = recomenda;
            }
            return(View(vmp));
        }
Esempio n. 2
0
 public MainPage()
 {
     this.InitializeComponent();
     miVieMmodel = (VMPrincipal)this.DataContext;
 }
Esempio n. 3
0
        public ActionResult Principal(VMPrincipal vmp)
        {
            string[] user  = User.Identity.Name.Split('|');
            string   email = user[0];
            var      usu   = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault();

            VMPrincipal vmpNova = new VMPrincipal();

            if (usu == null)
            {
                if (vmp.PesquisaTag != null)
                {
                    vmpNova.ProjetoTags = db.ProjetoTags.Where(x => x.Tag.Nome == vmp.PesquisaTag && x.Projeto.Ativo == true && x.Projeto.Punicao < DateTime.Now).ToList();

                    Tag tag = db.Tag.Where(x => x.Nome == vmp.PesquisaTag).FirstOrDefault();
                    tag.Pesquisada++;

                    db.Tag.AddOrUpdate(tag);
                    db.SaveChanges();
                    return(View(vmpNova));
                }
                return(View());
            }

            vmpNova.UsuarioId      = usu.Id;
            vmpNova.UsuarioTags    = db.UsuarioTag.Where(x => x.UsuarioId == usu.Id).ToList();
            vmpNova.ProjetosSalvos = db.ProjetosSalvos.Where(x => x.UsuarioId == usu.Id).ToList();
            List <ProjetoTags> resultado = new List <ProjetoTags>();

            if (vmp.PesquisaTag != null)
            {
                foreach (var item in db.ProjetoTags.Where(x => x.Tag.Nome == vmp.PesquisaTag && x.Projeto.Ativo == true).ToList())
                {
                    bool salvo = false;
                    bool meu   = false;

                    foreach (var subitem in item.Projeto.IntegrantesProjetos)
                    {
                        if (subitem.UsuarioID == usu.Id && subitem.Ativo == true)
                        {
                            meu = true;
                        }
                    }
                    foreach (var subitem in vmpNova.ProjetosSalvos)
                    {
                        if (subitem.ProjetoId == item.ProjetoId)
                        {
                            salvo = true;
                        }
                    }
                    if (meu == false && salvo == false)
                    {
                        resultado.Add(item);
                    }
                }

                Tag tag = db.Tag.Where(x => x.Nome == vmp.PesquisaTag).FirstOrDefault();
                tag.Pesquisada++;

                db.Tag.AddOrUpdate(tag);
                db.SaveChanges();
            }
            vmpNova.ProjetoTags = resultado;
            return(View(vmpNova));
        }