public ActionResult DeleteConfirmed(int id)
        {
            EsquemaProteccion esquemaProteccion = db.EsquemasProteccion.Find(id);
            int accion = GetNumAccion("B", "ESA", esquemaProteccion.Id_NumAccion ?? 0);

            db.EsquemasProteccion.Remove(esquemaProteccion);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EsquemaProteccion esquemaProteccion = db.EsquemasProteccion.Find(id);

            if (esquemaProteccion == null)
            {
                return(HttpNotFound());
            }
            return(View(esquemaProteccion));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EsquemaProteccion esquemaProteccion = db.EsquemasProteccion.Find(id);

            if (esquemaProteccion == null)
            {
                return(HttpNotFound());
            }
            Inicializar(esquemaProteccion);
            ViewBag.Titulo = "Interruptores / Desconectivos";
            return(View(esquemaProteccion));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Mantenimientos mantenimientos = db.Mantenimientos.Find(id);

            if (mantenimientos == null)
            {
                return(HttpNotFound());
            }
            EsquemaProteccion ep = db.EsquemasProteccion.Find(mantenimientos.IdEsquema);
            TipoMantenimiento tm = db.TipoMantenimiento.Find(mantenimientos.id_Tipo);

            ViewBag.NombreEsquema  = ep.Nombre;
            ViewBag.SiglasTipoMant = tm.Siglas;
            ViewBag.TipoMant       = tm.Tipo;
            return(View(mantenimientos));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EsquemaProteccion esquemaProteccion = db.EsquemasProteccion.Find(id);

            if (esquemaProteccion == null)
            {
                return(HttpNotFound());
            }

            ViewBag.Interruptores = (
                from ed in db.Esquema_Desconectivo
                where ed.esquema.Equals(esquemaProteccion.id_Esquema)
                select ed.desconectivo
                ).ToList();

            ViewBag.TC = (
                from e in db.Esquema_TC
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.TC
                ).ToList();

            ViewBag.TP = (
                from e in db.Esquema_TP
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.TP
                ).ToList();

            ViewBag.Relevadores = (
                from e in db.Esquema_Rele
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.rele
                ).ToList();

            return(View(esquemaProteccion));
        }
        public ActionResult Create(
            [Bind(Include = "id_Esquema,Nombre,Subestacion,Tipo_Equipo_Primario,Elemento_Electrico,Clase")] EsquemaProteccion esquemaProteccion,
            string[] Interruptores, string[] TC, string[] TP, string[] Relevadores, string RelevadorFunc, int[] Funciones
            )
        {
            var    usuario          = System.Web.HttpContext.Current.User?.Identity?.Name ?? null;
            string nombre_usuario   = System.Web.HttpContext.Current.User.Identity.Name;
            var    usuario_logueado = db.Personal.FirstOrDefault(c => c.Nombre == nombre_usuario);
            short  EAdmin           = usuario_logueado.id_EAdministrativa;

            if (ModelState.IsValid)
            {
                esquemaProteccion.Id_EAdministrativa = EAdmin;
                esquemaProteccion.Id_NumAccion       = GetNumAccion("I", "ESE", 0);
                EsquemaProteccion ep = db.EsquemasProteccion.Add(esquemaProteccion);
                db.Entry(ep).State = EntityState.Added;

                if (Interruptores != null)
                {
                    foreach (var item in Interruptores)
                    {
                        Esquema_Desconectivo e = new Esquema_Desconectivo();
                        e.desconectivo = item;
                        e.esquema      = esquemaProteccion.id_Esquema;
                        db.Esquema_Desconectivo.Add(e);
                    }
                }

                if (TC != null)
                {
                    foreach (var item in TC)
                    {
                        Esquema_TC e = new Esquema_TC();
                        e.TC      = item;
                        e.esquema = esquemaProteccion.id_Esquema;
                        db.Esquema_TC.Add(e);
                    }
                }

                if (TP != null)
                {
                    foreach (var item in TP)
                    {
                        Esquema_TP e = new Esquema_TP();
                        e.TP      = item;
                        e.esquema = esquemaProteccion.id_Esquema;
                        db.Esquema_TP.Add(e);
                    }
                }

                if (Relevadores != null)
                {
                    foreach (var item in Relevadores)
                    {
                        Esquema_Relevador e = new Esquema_Relevador();
                        e.rele    = item;
                        e.esquema = esquemaProteccion.id_Esquema;
                        db.Esquema_Rele.Add(e);
                    }
                }

                if (Funciones != null)
                {
                    var PlantillaId = (
                        from p in db.Plantillas
                        join r in db.Relevadores on p.id_Plantilla equals r.id_Plantilla
                        where r.Nro_Serie.Contains(RelevadorFunc)
                        select p.id_Plantilla
                        ).ToList();

                    foreach (var item in Funciones)
                    {
                        Plantilla_Funcion pf = new Plantilla_Funcion();
                        pf.id_Funcion   = item;
                        pf.id_Plantilla = PlantillaId[0];
                        db.Plantilla_Funcion.Add(pf);
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Details", new { id = esquemaProteccion.id_Esquema }));
            }
            Inicializar(esquemaProteccion);
            return(View(esquemaProteccion));
        }
        public void Inicializar(EsquemaProteccion esquemaProteccion)
        {
            ViewBag.Nombre = esquemaProteccion.Nombre;
            var instalaciones = db.Subestacion
                                .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            })
                                .Union(db.SubestacionTransmision
                                       .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            }))
                                .Union(db.LineaTransmision
                                       .Select(c => new SelectListItem {
                Value = c.Codigolinea, Text = c.Codigolinea + " - " + c.NombreCircuito
            })
                                       .Union(db.CircuitoPrimario
                                              .Select(c => new SelectListItem {
                Value = c.CodigoCircuito, Text = c.CodigoCircuito + " - " + c.NombreAntiguo
            }))
                                       .Union(db.CircuitoSubtransmision
                                              .Select(c => new SelectListItem {
                Value = c.CodigoCircuito, Text = c.CodigoCircuito + " - " + c.NombreCircuito
            }))
                                       );

            ViewBag.Subestacion = new SelectList(instalaciones, "Value", "Text", esquemaProteccion.Subestacion);

            ViewBag.Tipo_Equipo_Primario = esquemaProteccion.Tipo_Equipo_Primario;
            ViewBag.Elemento_Electrico   = esquemaProteccion.Elemento_Electrico;

            var interruptores = db.Desconectivos
                                .Where(c => c.Subestacion.Codigo.Contains(esquemaProteccion.Subestacion))
                                .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo
            });

            var IdInterruptores = (
                from ed in db.Esquema_Desconectivo
                where ed.esquema.Equals(esquemaProteccion.id_Esquema)
                select ed.desconectivo
                ).ToList();

            ViewBag.Interruptores = new MultiSelectList(interruptores, "Value", "Text", IdInterruptores);

            var tc = db.TransformadoresCorriente
                     .Where(c => c.CodSub.Contains(esquemaProteccion.Subestacion))
                     .Select(c => new SelectListItem {
                Value = c.Nro_Serie, Text = "Nro de Serie: " + c.Nro_Serie + ", Equipo Protegido: " + c.Elemento_Electrico
            });
            var IdTCs = (
                from e in db.Esquema_TC
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.TC
                ).ToList();

            ViewBag.TC = new MultiSelectList(tc, "Value", "Text", IdTCs);

            var tp = db.TransformadoresPotencial
                     .Where(c => c.CodSub.Contains(esquemaProteccion.Subestacion))
                     .Select(c => new SelectListItem {
                Value = c.Nro_Serie, Text = "Nro de Serie: " + c.Nro_Serie + ", Equipo Protegido: " + c.Elemento_Electrico
            });
            var IdTPs = (
                from e in db.Esquema_TP
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.TP
                ).ToList();

            ViewBag.TP = new MultiSelectList(tp, "Value", "Text", IdTPs);

            var reles = (
                from rel in db.Relevadores
                join pl in db.Plantillas on rel.id_Plantilla equals pl.id_Plantilla
                join fa in db.Fabricantes on pl.Id_Fabricante equals fa.Id_Fabricante
                select new SelectListItem
            {
                Value = rel.Nro_Serie,
                Text = rel.Nro_Serie + " - " + pl.Modelo + " - " + fa.Nombre
            }
                );
            var IdReles = (
                from e in db.Esquema_Rele
                where e.esquema.Equals(esquemaProteccion.id_Esquema)
                select e.rele
                ).ToList();

            ViewBag.Relevadores = new MultiSelectList(reles, "Value", "Text", IdReles);

            ViewBag.RelevadorFunc = new SelectList(db.Relevadores.ToList(), "Nro_Serie", "Nro_Serie");
        }