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 })); }
// 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 })); }