Exemple #1
0
        public ActionResult Create(Catalogo catalogo, int[] sensoresIds, int[] accionesIds)
        {
            catalogo.Sensores = setearSensores(sensoresIds);
            catalogo.Acciones = setearAcciones(accionesIds);

            if (ModelState.IsValid)
            {
                db.Catalogos.Add(catalogo);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.AdministradorId = new SelectList(db.Usuarios, "Id", "Nombre", catalogo.AdministradorId);
            return(View(catalogo));
        }
        public JsonResult Agregar(int idCatalogo)
        {
            var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
            var user        = UserManager.FindById(User.Identity.GetUserId());

            SGEContext db = new SGEContext();

            BaseRepositorio <Cliente> repoCliente = new BaseRepositorio <Cliente>(db);
            Cliente cliente = repoCliente.Single(c => c.NombreUsuario == user.UserName);

            BaseRepositorio <Catalogo> repoCatalogo = new BaseRepositorio <Catalogo>(db);
            Catalogo Catalogo = repoCatalogo.Single(c => c.Id == idCatalogo);

            Inteligente inteligente = new Inteligente()
            {
                ConsumoEnergia       = Catalogo.ConsumoEnergia,
                IdentificadorFabrica = Catalogo.IdentificadorFabrica,
                Catalogo             = Catalogo,
                CatalogoId           = Catalogo.Id
            };
            string nombreInteligente = Catalogo.Nombre + "_" + DateTime.Now.ToString("ddMMyyHHmmss");

            nombreInteligente  = nombreInteligente.Replace(" ", "_");
            inteligente.Nombre = nombreInteligente;

            inteligente.Clientes.Add(cliente);
            BaseRepositorio <Inteligente> repoInteligente = new BaseRepositorio <Inteligente>(db);

            repoInteligente.Create(inteligente);

            db = new SGEContext();
            List <Sensor> sensores = db.Sensores.Where(s => s.Catalogos.Any(c => c.Id == Catalogo.Id)).ToList();

            foreach (Sensor sensor in sensores)
            {
                SGEContext   db2          = new SGEContext();
                SensorFisico sensorFisico = new SensorFisico()
                {
                    //TipoSensor = sensor,
                    //Dispositivo = inteligente,
                    IdDispositivo = inteligente.Id,
                    IdTipoSensor  = sensor.Id,
                    Descripcion   = sensor.Descripcion
                };
                sensorFisico.Mediciones = null;
                //repoSensorFisico.Create(sensorFisico);
                db2.SensoresFisicos.Add(sensorFisico);
                db2.SaveChanges();
            }

            return(Json(new { success = true }));
        }
Exemple #3
0
        // GET: Cli/CargaMasiva/Details/5
        public JsonResult SubirArchivo(HttpPostedFileBase File)
        {
            if (!File.ContentType.Contains("json"))
            {
                return(Json(new { success = false, error = "El archivo debe ser de formato JSON" }));
            }

            try {
                using (StreamReader r = new StreamReader(File.InputStream)) {
                    string             json         = r.ReadToEnd();
                    List <Inteligente> inteligentes = JsonConvert.DeserializeObject <List <Inteligente> >(json);

                    var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
                    var user        = UserManager.FindById(User.Identity.GetUserId());

                    SGEContext contexto = new SGEContext();

                    BaseRepositorio <Cliente> repoCliente = new BaseRepositorio <Cliente>(contexto);
                    Cliente cliente = repoCliente.Single(c => c.NombreUsuario == user.UserName);

                    BaseRepositorio <Catalogo>    repoCatalogo    = new BaseRepositorio <Catalogo>(contexto);
                    BaseRepositorio <Inteligente> repoInteligente = new BaseRepositorio <Inteligente>(contexto);

                    foreach (Inteligente inteligente in inteligentes)
                    {
                        Catalogo Catalogo = repoCatalogo.Single(c => c.Id == inteligente.CatalogoId);

                        if (Catalogo == null)
                        {
                            return(Json(new { success = false, error = "El dispositivo '" + inteligente.Nombre + "' esta asociado a un catálogo inexistente" }));
                        }
                        string nombreInteligente = Catalogo.Nombre + "_" + DateTime.Now.ToString("ddMMyyHHmmss");
                        nombreInteligente  = nombreInteligente.Replace(" ", "_");
                        inteligente.Nombre = nombreInteligente;
                        inteligente.Clientes.Clear();
                        inteligente.Clientes.Add(cliente);

                        if (inteligente.Id != 0)
                        {
                            repoInteligente.Update(inteligente);
                        }
                        else
                        {
                            repoInteligente.Create(inteligente);
                        }

                        List <Sensor> sensores = contexto.Sensores.Where(s => s.Catalogos.Any(c => c.Id == Catalogo.Id)).ToList();

                        foreach (Sensor sensor in sensores)
                        {
                            SGEContext   db2          = new SGEContext();
                            SensorFisico sensorFisico = new SensorFisico()
                            {
                                //TipoSensor = sensor,
                                //Dispositivo = inteligente,
                                IdDispositivo = inteligente.Id,
                                IdTipoSensor  = sensor.Id,
                                Descripcion   = sensor.Descripcion
                            };
                            sensorFisico.Mediciones = null;
                            //repoSensorFisico.Create(sensorFisico);
                            db2.SensoresFisicos.Add(sensorFisico);
                            db2.SaveChanges();
                        }
                    }
                }
            } catch (Exception ex) {
                return(Json(new { success = false, error = "El archivo JSON no es valido, por favor verifique el mismo", mensaje = ex.Message }));
            }

            return(Json(new { success = true }));
        }