public static Usuario AdicionarAssistindoAnime(Usuario user, AssistindoAnime a) //Adicionar anime a assistindo { if (user.AssistindoAnime == null) //Isso aqui é só pra iniciar a lista, se não fizer isso vem excessão de nullpointer { user.AssistindoAnime = new List <AssistindoAnime>(); } user.AssistindoAnime.Add(a); ctx.Entry(user).State = System.Data.Entity.EntityState.Modified; try { // Your code... // Could also be before try if you know the exception occurs in SaveChanges ctx.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } } return(user); }
public ActionResult AssistindoAnime(Animes a, int?Episodios) //Adiciona o "assistindo" para aquele usuário { Usuario user = Session["usuarioLogado"] as Usuario; //Pega o usuário na Session Temporada t = TempData["SaveTemp"] as Temporada; AssistindoAnime an = new AssistindoAnime(); a = AnimeDAO.BuscarPorIDInclude(a.IDAnime); an = AssistindoAnimeDAO.BuscarExANS(user, a); if (an != null) //Se não for nulo, ele já marcou como "estou assistindo", ou seja, apenas atualiza esse { an = AssistindoAnimeDAO.BuscarAnimeSendoAssistido(an); // Essa busca tem todos os includes an.TemporadaAtual = t; an.UltimoEP = EpisodioDAO.BuscarEPporID(Episodios); AssistindoAnimeDAO.AtualizarASN(an); } else { an = new AssistindoAnime(); an.Anime = a; an.Usuario = user; an.UltimoEP = EpisodioDAO.BuscarEPporID(Episodios); an.TemporadaAtual = t; AssistindoAnimeDAO.AdicionarAssistido(an); } return(RedirectToAction("AnimesAssistindo", "Biblioteca")); }
public static int TempoConclusaoTemporada(AssistindoAnime asn) { int total = asn.TemporadaAtual.Episodios.Count; int epsAssistidos = asn.UltimoEP.NumEpisodio; int res = total - epsAssistidos; return(res * 20); }
public static AssistindoAnime BuscarExANS(Usuario u, Animes a) //Vê se esse anime já está sendo assistido { AssistindoAnime ans = ctx.AssistindoAnime.FirstOrDefault(x => x.Anime.IDAnime.Equals(a.IDAnime) && x.Usuario.UsuarioId.Equals(u.UsuarioId)); if (ans != null) // Procure em 'AssistindoAnime' um usuario que esteja assistindo aquele anime { return(ans); } return(null); }
public static bool VerificarMaxTemp(AssistindoAnime asn) { List <Episodio> ep = asn.TemporadaAtual.Episodios.ToList(); int a = ep.Max(t => t.NumEpisodio); if (a == (asn.UltimoEP.NumEpisodio)) { return(true); } return(false); }
public static AssistindoAnime BuscarAnimeSendoAssistido(AssistindoAnime asn)//Busca q inclui todos os includes { return(ctx.AssistindoAnime. Include("Anime"). Include("Anime.Temporadas"). Include("Anime.Temporadas.Episodios"). Include("Anime.Categoria"). Include("Usuario"). Include("TemporadaAtual"). Include("UltimoEP"). SingleOrDefault(x => x.IDAnimeSendoAssistido == asn.IDAnimeSendoAssistido)); }
public ActionResult RemoverAssistindo(int?id) // Remover anime de assistidos { AssistindoAnime asn = new AssistindoAnime(); asn.IDAnimeSendoAssistido = (int)id; asn = AssistindoAnimeDAO.BuscarAnimeSendoAssistido(asn); if (asn != null) { AssistindoAnimeDAO.RemoverAnimeAsN(asn); } return(RedirectToAction("AnimesAssistindo", "Biblioteca")); }
public ActionResult AtualizarEpAnime(AssistindoAnime asn, int?Episodios) //Alterar POST { Usuario user = Session["usuarioLogado"] as Usuario; //Pega o usuário na Session asn = AssistindoAnimeDAO.BuscarAnimeSendoAssistido(asn); asn.UltimoEP = EpisodioDAO.BuscarEPporID(Episodios); if (AssistindoAnimeDAO.VerificarMaxTemp(asn)) { //Fazer AssistindoAnimeDAO.AtualizarASN(asn); } else { AssistindoAnimeDAO.AtualizarASN(asn); } return(RedirectToAction("AnimesAssistindo", "Biblioteca")); }
public ActionResult AtualizarEpAnime(int?id) //Uma Cópia do adicionar praticamente { Usuario user = Session["usuarioLogado"] as Usuario; //Pega o usuário na Session AssistindoAnime asn = new AssistindoAnime(); Temporada t = TempData["SaveTemp1"] as Temporada; List <Episodio> eps = new List <Episodio>(); if (id == null) { asn = TempData["ASNAUX"] as AssistindoAnime; } else { asn.IDAnimeSendoAssistido = (int)id; asn = AssistindoAnimeDAO.BuscarAnimeSendoAssistido(asn); TempData["ASNAUX"] = asn; } if (t == null) //Se for nulo, é o primeiro acesso { ViewBag.Temporada = new SelectList(asn.Anime.Temporadas.ToList().OrderByDescending(e => e.Estacao.Equals(asn.TemporadaAtual.Estacao)), "IDTemporada", "Estacao", "Ano"); eps = asn.TemporadaAtual.Episodios.ToList(); //Lista de episodios dql temp if (eps != null) //se os eps forem nulos, não crie viewbag { ViewBag.Episodios = new SelectList(eps.ToList().OrderByDescending(e => e.NumEpisodio.Equals(asn.UltimoEP.NumEpisodio)), "IDEpisodio", "NumEpisodio"); //Cria Viewbag dos eps } } else { asn.TemporadaAtual = t; eps = asn.TemporadaAtual.Episodios.ToList(); //Lista de episodios dql temp ViewBag.Temporada = new SelectList(asn.Anime.Temporadas.ToList().OrderByDescending(e => e.Estacao.Equals(asn.TemporadaAtual.Estacao)), "IDTemporada", "Estacao", "Ano"); ViewBag.Episodios = new SelectList(eps.ToList().OrderByDescending(e => e.NumEpisodio.Equals(asn.UltimoEP.NumEpisodio)), "IDEpisodio", "NumEpisodio"); //Cria Viewbag dos eps } return(View(asn)); //Retorna o anime sendo assistido }
public static void RemoverAnimeAsN(AssistindoAnime asn) { ctx.AssistindoAnime.Remove(asn); ctx.SaveChanges(); }
public static void AtualizarASN(AssistindoAnime asn) { ctx.Entry(asn).State = System.Data.Entity.EntityState.Modified; ctx.SaveChanges(); }
public static void AdicionarAssistido(AssistindoAnime assistindoAnim) { ctx.AssistindoAnime.Add(assistindoAnim); ctx.SaveChanges(); }