Beispiel #1
0
        public ActionResult Delete(int id, GeneroViewModel model)
        {
            try
            {
                GeneroRepository repo = new GeneroRepository(context);


                var genero = repo.Query(g => g.Id == id).FirstOrDefault();
                context.Entry(genero).Collection(g => g.Medias).Load();

                if (genero.Medias.Count() == 0)
                {
                    repo.LogicalDelete(genero);
                    context.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    List <lstMedias> lista = new List <lstMedias>();
                    var repository         = new MovieRepository(context);
                    var repository2        = new SerieRepository(context);

                    foreach (var media in genero.Medias)
                    {
                        var mov = repository.Query(m => m.id == media.id && media.estado != EEstatusMedia.ELIMINADO);
                        var ser = repository2.Query(s => s.id == media.id && media.estado != EEstatusMedia.ELIMINADO);

                        if (mov.Count() == 1)
                        {
                            lista.Add(new lstMedias()
                            {
                                id = media.id, nombre = media.nombre, tipo = "Película"
                            });
                        }
                        else if (ser.Count() == 1)
                        {
                            lista.Add(new lstMedias()
                            {
                                id = media.id, nombre = media.nombre, tipo = "Serie"
                            });
                        }
                    }

                    if (lista.Count == 0)
                    {
                        repo.LogicalDelete(genero);
                        context.SaveChanges();
                        return(RedirectToAction("Index"));
                    }

                    ViewData["inUsing"] = lista;
                    ViewBag.Error       = 1;
                    model = MapHelper.Map <GeneroViewModel>(genero);
                    return(Delete(genero.Id));
                }
            }
            catch
            {
                return(View());
            }
        }