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)); }
public MainPage() { this.InitializeComponent(); miVieMmodel = (VMPrincipal)this.DataContext; }
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)); }