public async Task<ActionResult> RecuperarPass(string usuario) { var user = await UserManager.FindByNameAsync(usuario); if(user != null) { Conexion db = new Conexion(); List<UsuarioRecovery> listaRecovery = db.UsuarioRecovery.Where(m => m.username == usuario).ToList(); db.UsuarioRecovery.RemoveRange(listaRecovery); await db.SaveChangesAsync(); UsuarioRecovery nuevo = new UsuarioRecovery(); nuevo.username = usuario; db.UsuarioRecovery.Add(nuevo); await db.SaveChangesAsync(); var body = "<p>Hola: {0} pulse en el vínculo siguiente para recuperar la contraseña. <a href=\"{1}\" > Recuperar</a></p>"; string vinculo = "http://ree.rauroszm.com/Acceso/Recovery/"+nuevo.id; var message = new MailMessage(); message.To.Add(new MailAddress(user.email)); // replace with valid value message.From = new MailAddress("*****@*****.**"); // replace with valid value message.Subject = "Recuperar contraseña."; message.Body = string.Format(body, user.nombre + " " + user.apellido1, vinculo); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "******", // replace with valid value Password = "******" // replace with valid value }; smtp.Credentials = credential; smtp.Host = ConfigurationManager.AppSettings["Host"]; smtp.Port = 25; smtp.EnableSsl = false; await smtp.SendMailAsync(message); TempData["MensajeEnvioMail"] = "Se ha cambiado la contraseña correctamente al usuario." + user.UserName; return RedirectToAction("Index"); } } return View(); }
public async Task<ActionResult> Nuevo([Bind(Include = "id,nombre,linea,ano_actual,acceso_coche,distancia_pie,o_acceso_coche,o_distancia_pie,lat,lon,tipo_cimentacion,referencia_catastral,observaciones,seguridad,suelo,tipo_foemp,num_cir,num_empalmes,a_mantenimiento,t_coordenadas,a_o_s,subCircuitos")] ApoyoForm apoyo) { if (ModelState.IsValid) { apoyo.id = Guid.NewGuid().ToString(); if (apoyo.t_coordenadas == 1) { Apoyo nuevo = new Apoyo(); Conexion db = new Conexion(); nuevo.id = apoyo.id; nuevo.nombre = apoyo.nombre; nuevo.linea = apoyo.linea; nuevo.ano_construccion = int.Parse(apoyo.ano_actual); nuevo.acceso_coche = apoyo.acceso_coche; nuevo.o_acceso_coche = apoyo.o_acceso_coche; nuevo.distancia_pie = apoyo.distancia_pie; nuevo.o_distancia_pie = apoyo.o_distancia_pie; nuevo.tipo_cimentacion = apoyo.tipo_cimentacion; nuevo.referencia_catastral = apoyo.referencia_catastral; nuevo.seguridad = apoyo.seguridad; nuevo.num_empalmes = apoyo.num_empalmes; nuevo.suelo = apoyo.suelo; nuevo.observaciones = apoyo.observaciones; nuevo.tipo_foemp = apoyo.tipo_foemp; nuevo.a_mantenimiento = apoyo.a_mantenimiento; nuevo.num_cir = apoyo.num_cir; nuevo.ubicacion = System.Data.Entity.Spatial.DbGeometry.PointFromText(string.Format("POINT({0} {1})", apoyo.lat, apoyo.lon), 4326).AsBinary(); if (apoyo.a_o_s == "0") { nuevo.amarre = true; nuevo.sustentacion = false; } else { nuevo.amarre = false; nuevo.sustentacion = true; } db.Apoyo.Add(nuevo); await db.SaveChangesAsync(); } else { bool nuevoA = new Apoyo().Insertar_UTM(apoyo); } Historial nuevoH = new Historial("Creó", User.Identity.GetUserId(), "Apoyo", apoyo.id, apoyo.nombre, Request.UserHostAddress); TempData["Mensaje"] = "Apoyo creado correctamente."; return RedirectToAction("Editar", "Apoyo", new {id= apoyo.id }); } TempData["Mensaje"] = "Error al crear la Apoyo."; return View(apoyo); }
/// <summary> /// Método para actializar los medios de la Operación /// </summary> /// <param name="op_nuevo"></param> /// <param name="id"></param> /// <param name="ip"></param> /// <returns></returns> public async Task Actualizar(Operaciones_Medios_Subcontratados op_nuevo, string id, string ip) { using (var db = new Conexion()) { //Eliminar las Subcontratas de esta Operación List<Operaciones_Subcontratas> op_sub = db.Operaciones_Subcontratas.Where(m => m.operacion_id == op_nuevo.id).ToList(); db.Operaciones_Subcontratas.RemoveRange(op_sub); await db.SaveChangesAsync(); //Elimino Medios de Tipo Personal List<Operaciones_TipoPersonal> intro_opp = new List<Operaciones_TipoPersonal>(); intro_opp = db.Operaciones_TipoPersonal.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoPersonal.RemoveRange(intro_opp); await db.SaveChangesAsync(); //Elimino Medios de Tipo Material List<Operaciones_TipoMaterial> intro_opm = new List<Operaciones_TipoMaterial>(); intro_opm = db.Operaciones_TipoMaterial.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaterial.RemoveRange(intro_opm); await db.SaveChangesAsync(); //Elimino Medios de Tipo Maquinaria List<Operaciones_TipoMaquinaria> intro_opma = new List<Operaciones_TipoMaquinaria>(); intro_opma = db.Operaciones_TipoMaquinaria.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaquinaria.RemoveRange(intro_opma); await db.SaveChangesAsync(); Operaciones_Subcontratas nuevo = new Operaciones_Subcontratas(); nuevo.cantidad = op_nuevo.coste_sub; nuevo.operacion_id = op_nuevo.id; nuevo.subcontrata_id = op_nuevo.subcontrata; db.Operaciones_Subcontratas.Add(nuevo); await db.SaveChangesAsync(); Operaciones operaciones = await db.Operaciones.FindAsync(op_nuevo.id); operaciones.coste_total = op_nuevo.coste_sub; operaciones.medios = "subcontratados"; db.Entry(operaciones).State = EntityState.Modified; await db.SaveChangesAsync(); Historial historial = new Historial("Modificó Medio de Tipo Subcontrata", id, "usuario", ip); } }
/// <summary> /// Método para actializar los medios de la Operación /// </summary> /// <param name="op_nuevo"></param> /// <param name="id"></param> /// <param name="ip"></param> /// <returns></returns> public async Task Actualizar(Operaciones_Medios_Propios op_nuevo, string id, string ip) { using(var db = new Conexion()){ decimal coste_total = 0; //Eliminar las Subcontratas de esta Operación List<Operaciones_Subcontratas> op_sub = db.Operaciones_Subcontratas.Where(m => m.operacion_id == op_nuevo.id).ToList(); db.Operaciones_Subcontratas.RemoveRange(op_sub); await db.SaveChangesAsync(); List<Operaciones_TipoPersonal> intro_opp = new List<Operaciones_TipoPersonal>(); intro_opp = db.Operaciones_TipoPersonal.Where(m=>m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoPersonal.RemoveRange(intro_opp); db.SaveChanges(); intro_opp.Clear(); int posicion = 0; foreach (int i in op_nuevo.c_personal) { if (i != 0) { Operaciones_TipoPersonal n_opp = new Operaciones_TipoPersonal(); n_opp.operacion = op_nuevo.id; n_opp.tipo_personal = op_nuevo.lista_personal[posicion]; n_opp.cantidad = i; intro_opp.Add(n_opp); //Sumar el coste total de la operación var t_p = db.Tipo_Personal.SingleOrDefault(m => m.id == n_opp.tipo_personal); coste_total = coste_total + (t_p.coste * i) * op_nuevo.tiempo_ejecucion; } posicion++; }; db.Operaciones_TipoPersonal.AddRange(intro_opp); await db.SaveChangesAsync(); Historial nuevo = new Historial("Modificó Tipos de Personal", id, "usuario", ip); List<Operaciones_TipoMaterial> intro_opm = new List<Operaciones_TipoMaterial>(); intro_opm = db.Operaciones_TipoMaterial.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaterial.RemoveRange(intro_opm); await db.SaveChangesAsync(); intro_opm.Clear(); posicion = 0; foreach (int i in op_nuevo.c_material) { if (i != 0) { Operaciones_TipoMaterial n_opp = new Operaciones_TipoMaterial(); n_opp.operacion = op_nuevo.id; n_opp.tipo_material = op_nuevo.lista_material[posicion]; n_opp.cantidad = i; intro_opm.Add(n_opp); //Sumar el coste total de la operación var t_p = db.Tipo_Material.SingleOrDefault(m => m.id == n_opp.tipo_material); coste_total = coste_total + t_p.coste * i; } posicion++; }; db.Operaciones_TipoMaterial.AddRange(intro_opm); await db.SaveChangesAsync(); Historial nuevo_material = new Historial("Modificó Tipos de Material", id, "usuario", ip); List<Operaciones_TipoMaquinaria> intro_opma = new List<Operaciones_TipoMaquinaria>(); intro_opma = db.Operaciones_TipoMaquinaria.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaquinaria.RemoveRange(intro_opma); await db.SaveChangesAsync(); intro_opma.Clear(); posicion = 0; foreach (int i in op_nuevo.c_maquinaria) { if (i != 0) { Operaciones_TipoMaquinaria n_opp = new Operaciones_TipoMaquinaria(); n_opp.operacion = op_nuevo.id; n_opp.tipo_maquinaria = op_nuevo.lista_maquinaria[posicion]; n_opp.cantidad = i; intro_opma.Add(n_opp); //Sumar el coste total de la operación var t_p = db.Tipo_Maquinaria.SingleOrDefault(m => m.id == n_opp.tipo_maquinaria); coste_total = coste_total + (t_p.coste * i)*op_nuevo.tiempo_ejecucion; } posicion++; }; db.Operaciones_TipoMaquinaria.AddRange(intro_opma); await db.SaveChangesAsync(); Historial nuevo_maquinarias = new Historial("Modificó Tipos de Maquinarias", id, "usuario", ip); Operaciones operaciones = await db.Operaciones.FindAsync(op_nuevo.id); operaciones.coste_total = coste_total; operaciones.medios = "propios"; db.Entry(operaciones).State = EntityState.Modified; await db.SaveChangesAsync(); } }
public async Task<ActionResult> Recovery(CambiarPassword model) { if (ModelState.IsValid) { var us = await UserManager.FindByNameAsync(model.username); var result = await UserManager.RemovePasswordAsync(us.Id); result = await UserManager.AddPasswordAsync(us.Id, model.Password); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(us.Id); Historial nuevo = new Historial("Cambió Contraseña", us.Id, "usuario", us.Id, user.UserName, Request.UserHostAddress); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); TempData["MensajeCambioContrasena"] = "Se ha cambiado la contraseña correctamente al usuario." + user.UserName; Conexion db = new Conexion(); List<UsuarioRecovery> listaRecovery = db.UsuarioRecovery.Where(m => m.username == model.username).ToList(); db.UsuarioRecovery.RemoveRange(listaRecovery); await db.SaveChangesAsync(); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Index","Acceso",new{returnUrl = "/"}); } else { AddErrors(result); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario TempData["Mensaje"] = "Error al cambiar la contraseña."; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Recovery", "Acceso", new { id = model.id }); }
public async Task<string> EliminarFicheros(string idElemento,int elemento) { string id_retorno = ""; switch (elemento) { case 1://Operaciones using (Conexion db = new Conexion()) { Operaciones_Documentos eliminar = db.Operaciones_Documentos.SingleOrDefault(m => m.id == idElemento); db.Operaciones_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.operacion_id; string ruta = string.Format("{0}OperacionesF\\{1}\\{2}\\{3}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.operacion_id, eliminar.tipo_fichero, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (isExists) System.IO.File.Delete(ruta); } break; case 2://Subestaciones using (Conexion db = new Conexion()) { Subestaciones_Documentos eliminar = db.Subestaciones_Documentos.SingleOrDefault(m => m.id == idElemento); db.Subestaciones_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.subestacion_id; string ruta = string.Format("{0}Elementos\\Subestaciones\\{1}\\Ficheros\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.subestacion_id, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 3://Líneas using (Conexion db = new Conexion()) { Lineas_Documentos eliminar = db.Lineas_Documentos.SingleOrDefault(m => m.id == idElemento); db.Lineas_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.linea_id; string ruta = string.Format("{0}Elementos\\Lineas\\{1}\\Ficheros\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.linea_id, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 4://Tipo_Cimentaciones using (Conexion db = new Conexion()) { TipoCimentaciones_Documentos eliminar = db.TipoCimentaciones_Documentos.SingleOrDefault(m => m.id == idElemento); db.TipoCimentaciones_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.tipocimentacion_id; string ruta = string.Format("{0}Elementos\\Tipo_Cimentaciones\\{1}\\Ficheros\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.tipocimentacion_id, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 5://Apoyos using (Conexion db = new Conexion()) { Apoyo_Documentos eliminar = db.Apoyo_Documentos.SingleOrDefault(m => m.id == idElemento); db.Apoyo_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.apoyo_id; string ruta = string.Format("{0}Elementos\\Apoyos\\{1}\\Documentos\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.apoyo_id, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 6://Imágenes de Inspecciones using (Conexion db = new Conexion()) { InspeccionesImagenes eliminar = db.InspeccionesImagenes.SingleOrDefault(m => m.id == idElemento); db.InspeccionesImagenes.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.id_tabla; string ruta = string.Format("{0}Elementos\\Apoyos\\{1}\\Inspecciones\\{2}\\{3}{4}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.url, eliminar.id_tabla,eliminar.id,".jpg"); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 7://Zonas using (Conexion db = new Conexion()) { Zonas_Documentos eliminar = db.Zonas_Documentos.SingleOrDefault(m => m.id == idElemento); db.Zonas_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.zona_id; string ruta = string.Format("{0}Elementos\\Zonas\\{1}\\Ficheros\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.zona_id, eliminar.nombre); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; case 8://Incidencias using (Conexion db = new Conexion()) { Incidencias_Documentos eliminar = db.Incidencias_Documentos.SingleOrDefault(m => m.id == idElemento); db.Incidencias_Documentos.Remove(eliminar); await db.SaveChangesAsync(); id_retorno = eliminar.incidencia_id; string ruta = string.Format("{0}Elementos\\Incidencias\\{1}\\Ficheros\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), eliminar.incidencia_id, eliminar.nombre_fichero); bool isExists = System.IO.Directory.Exists(ruta); if (!isExists) System.IO.File.Delete(ruta); } break; default: Console.WriteLine("Default case"); break; } return id_retorno; }
public async Task SubirImagenesInspecciones(HttpFileCollectionBase listaFicheros, string idInspeccion, string idApoyo, string tipoImagen) { string fName = ""; foreach (string fileName in listaFicheros) { HttpPostedFileBase file = listaFicheros[fileName]; //Save file content goes here fName = file.FileName; if (file != null && file.ContentLength > 0) { try { using (Conexion db = new Conexion()) { InspeccionesImagenes imagenes = new InspeccionesImagenes(); imagenes.id_tabla = idInspeccion; imagenes.id_tipo = tipoImagen; imagenes.url = idApoyo; imagenes.nombre_foto = db.InspeccionesTipoFoto.SingleOrDefault(m => m.id == tipoImagen).nombre; imagenes.descripcion = "No hay descripción de imagen."; db.InspeccionesImagenes.Add(imagenes); await db.SaveChangesAsync(); var originalDirectory = new DirectoryInfo(string.Format("{0}Elementos\\Apoyos\\{1}\\Inspecciones", System.Web.HttpContext.Current.Server.MapPath(@"\"), idApoyo)); string pathString = System.IO.Path.Combine(originalDirectory.ToString(), idInspeccion); bool isExists = System.IO.Directory.Exists(pathString); if (!isExists) System.IO.Directory.CreateDirectory(pathString); var path = string.Format("{0}\\{1}", pathString, imagenes.id); file.SaveAs(path+".jpg"); } } catch (Exception e) { } } } }
public async Task SubirFicheros(HttpFileCollectionBase listaFicheros,string idElemento,string dir,string dirFinal,int elemento) { string fName = ""; foreach (string fileName in listaFicheros) { HttpPostedFileBase file = listaFicheros[fileName]; //Save file content goes here fName = file.FileName; if (file != null && file.ContentLength > 0) { switch (elemento) { case 1://Operaciones using (Conexion db = new Conexion()) { Operaciones_Documentos nuevo = new Operaciones_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.operacion_id = idElemento; nuevo.tipo_fichero = dirFinal; db.Operaciones_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 2://Subestaciones using (Conexion db = new Conexion()) { Subestaciones_Documentos nuevo = new Subestaciones_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.subestacion_id = idElemento; nuevo.tipo_fichero = dirFinal; db.Subestaciones_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 3://Subestaciones using (Conexion db = new Conexion()) { Lineas_Documentos nuevo = new Lineas_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.linea_id = idElemento; nuevo.tipo_fichero = dirFinal; db.Lineas_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 4://Tipo_Cimentaciones using (Conexion db = new Conexion()) { TipoCimentaciones_Documentos nuevo = new TipoCimentaciones_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.tipocimentacion_id = idElemento; nuevo.tipo_fichero = dirFinal; db.TipoCimentaciones_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 5://Apoyos using (Conexion db = new Conexion()) { Apoyo_Documentos nuevo = new Apoyo_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.apoyo_id = idElemento; nuevo.tipo_fichero = dirFinal; db.Apoyo_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 6://Zonas using (Conexion db = new Conexion()) { Zonas_Documentos nuevo = new Zonas_Documentos(); nuevo.nombre = file.FileName.ToString().Replace(' ', '_'); nuevo.zona_id = idElemento; nuevo.tipo_documento = dirFinal; db.Zonas_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; case 7://Inicidencias using (Conexion db = new Conexion()) { Incidencias_Documentos nuevo = new Incidencias_Documentos(); nuevo.nombre_fichero = file.FileName.ToString().Replace(' ', '_'); nuevo.incidencia_id = idElemento; nuevo.tipo_fichero = dirFinal; db.Incidencias_Documentos.Add(nuevo); await db.SaveChangesAsync(); } break; default: Console.WriteLine("Default case"); break; } var originalDirectory = new DirectoryInfo(string.Format("{0}Elementos\\{1}\\{2}", System.Web.HttpContext.Current.Server.MapPath(@"\"), dir, idElemento)); string pathString = System.IO.Path.Combine(originalDirectory.ToString(), dirFinal); bool isExists = System.IO.Directory.Exists(pathString); if (!isExists) System.IO.Directory.CreateDirectory(pathString); var path = string.Format("{0}\\{1}", pathString, file.FileName.ToString().Replace(' ', '_')); file.SaveAs(path); } } }