public ActionResult AddEditItemGenerico(AddEditItemGenericoViewModel model) { var filtro = ConstantHelpers.TipoDato.getOutter(model.tipo); try { DatoEdificio dato = null; if (model.itemId.HasValue) { dato = context.DatoEdificio.FirstOrDefault(X => X.DatoEdificioId == model.itemId.Value); } if (dato == null) { dato = new DatoEdificio(); context.DatoEdificio.Add(dato); } dato.Nombre = model.nombre; dato.Tipo = model.tipo; dato.EdificioId = model.EdificioId; dato.UnidadTiempoId = model.UnidadTiempoId; dato.Orden = model.Orden; dato.AplicaMantenimiento = true;//model.AplicaMantenimiento; if (model.file != null && model.file.ContentLength != 0) { string _rutaArchivodir = Server.MapPath("~") + "/Resources/Files"; string _nombreArc = Guid.NewGuid().ToString().Substring(0, 6) + Path.GetExtension(model.file.FileName); dato.Dato = _nombreArc; model.file.SaveAs(Path.Combine(_rutaArchivodir, _nombreArc)); } else { dato.Dato = model.nombre; } PostMessage(MessageType.Success); context.SaveChanges(); if (String.IsNullOrEmpty(model.TipoLista)) { return(RedirectToAction("ItemsGenericos", new { vista = model.vista, EdificioId = model.EdificioId, filtroTipo = filtro })); } else { return(RedirectToAction("LstEquiposSinCertificado", "External", new { EdificioId = model.EdificioId })); } } catch (Exception ex) { PostMessage(MessageType.Error); if (String.IsNullOrEmpty(model.TipoLista)) { return(RedirectToAction("ItemsGenericos", new { vista = model.vista, EdificioId = model.EdificioId, filtroTipo = filtro })); } else { return(RedirectToAction("LstEquiposSinCertificado", "External", new { EdificioId = model.EdificioId })); } } }
public ActionResult CronogramaMantenimientos(Boolean Editar, Int32 EdificioId, FormCollection formCollection, Int32 Anio) { List <DatoEdificio> datosAnteriores = context.DatoEdificio.Where(X => X.EdificioId == EdificioId && X.Tipo.Contains("Crono") && X.UnidadTiempo.Anio == Anio).ToList(); context.DatoEdificio.RemoveRange(datosAnteriores); Dictionary <String, Int32> mapa = new Dictionary <string, int>(); List <DatoEdificio> datosNuevos = new List <DatoEdificio>(); foreach (var key in formCollection.AllKeys) { if (key.StartsWith("che|")) { Int32 mes = (key.Split('|').ToList())[1].ToInteger(); String equipo = (key.Split('|').ToList()).Last(); mapa[equipo + "|" + mes] = 0; } if (key.StartsWith("num|")) { Int32 mes = (key.Split('|').ToList())[1].ToInteger(); String equipo = (key.Split('|').ToList()).Last(); Int32 num = (!String.IsNullOrEmpty(formCollection[key]))?formCollection[key].ToInteger():-1; if (num != -1) { mapa[equipo + "|" + mes] = num; } } } var unidadTiempo = context.UnidadTiempo.FirstOrDefault(x => x.Anio == Anio); var i = 0; foreach (var item in mapa) { String equipo = item.Key.Split('|').First(); String mes = item.Key.Split('|').Last(); DatoEdificio nuevoDato = new DatoEdificio(); nuevoDato.EdificioId = EdificioId; nuevoDato.Tipo = ConstantHelpers.TipoDato.Cronograma.nombre(equipo); nuevoDato.Dato = mes + "|" + item.Value; nuevoDato.Nombre = mes; nuevoDato.EsRealizado = i >= datosAnteriores.Count ? false : datosAnteriores[i].EsRealizado; nuevoDato.UnidadTiempoId = unidadTiempo.UnidadTiempoId; datosNuevos.Add(nuevoDato); i++; } context.DatoEdificio.AddRange(datosNuevos); context.SaveChanges(); return(RedirectToAction("CronogramaMantenimientos", new { Editar = Editar, EdificioId = EdificioId, Anio = Anio })); }