public ActionResult Create([Bind(Include = "IdDireccion,Pais,Area,Calle,TelefonoFijo,Latitud,Longitud,IdEspecialista,IdCiudad")] Direcciones direcciones) { List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"]; if (ModelState.IsValid) { try { UsuarioAuth admin = (UsuarioAuth)Session["usuario"]; if (admin != null) { if (admin.rolNombre.Equals("Administrador") || admin.rolNombre.Equals("Vendedor")) { Especialistas especialista = db.Especialistas.Find(direcciones.IdEspecialista); Ciudades ciudad = db.Ciudades.Find(direcciones.IdCiudad); if (especialista != null && ciudad != null) { Direcciones nueva = new Direcciones { Calle = direcciones.Calle, Ciudades = ciudad, Especialistas = especialista, Latitud = direcciones.Latitud, Longitud = direcciones.Longitud, TelefonoFijo = direcciones.TelefonoFijo }; db.Direcciones.Add(nueva); db.SaveChanges(); lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificacion", cuerpo = "Consultoria registrado exitosamente." }); TempData["mensajes"] = lstMensajes; return RedirectToAction("Index"); } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No cuenta con privilegios para realizar esta acción, inicie sesión" }); TempData["mensajes"] = lstMensajes; } } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No cuenta con privilegios para realizar esta acción, inicie sesión" }); TempData["mensajes"] = lstMensajes; } } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No cuenta con privilegios para realizar esta acción, inicie sesión" }); TempData["mensajes"] = lstMensajes; } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { var sb = new System.Text.StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = error.PropertyName + ":" + error.ErrorMessage }); sb.AppendLine(); } } lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = sb.ToString() }); TempData["mensajes"] = lstMensajes; SystemLog log = new SystemLog(); log.ErrorLog(sb.ToString()); throw new Exception(sb.ToString()); } } return RedirectToAction("AgregarConsultorio", "Administrador"); }
public ActionResult Create_nuevo() { List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"]; HttpPostedFileBase imagenM = (Request.Files.Count > 0) ? Request.Files[0] : null; string encodedData = string.Empty; string nombre = Request["nombre_especialista"]; string apellidos = Request["apellido_especialista"]; string foto = Request["foto-especialista"]; string pagina = Request["pagina-especialista"]; string email = Request["email_especialista"]; string celular = Request["celular-especialista"]; int especialidad = 0; Int32.TryParse(Request["idEspecialidad"], out especialidad); string tipo_menbresia = Request["tipo_membresia"]; DateTime fecha_inicio; DateTime fecha_fin; DateTime.TryParse(Request["fecha_inicio_membresia"], out fecha_inicio); DateTime.TryParse(Request["fecha_fin_membresia"], out fecha_fin); string departamento = Request["Departamento-consultorio"]; int ciudad = 0; Int32.TryParse(Request["idCiudad"], out ciudad); string direccion = Request["calle_consultorio"]; string telefono = Request["telefono-consultorio"]; string latitud = Request["latitud"]; string longitud = Request["longitud"]; string contrasena1 = Request["contraseña_especialista"]; string contrasena2 = Request["confirmar_contraseña_especialista"]; if (!string.IsNullOrWhiteSpace(nombre) && !string.IsNullOrWhiteSpace(apellidos) && !string.IsNullOrWhiteSpace(email) && fecha_inicio != null && especialidad > 0 && fecha_fin != null && ciudad > 0 && !string.IsNullOrWhiteSpace(direccion) && !string.IsNullOrWhiteSpace(contrasena1) && !string.IsNullOrWhiteSpace(contrasena2)) { if (contrasena1.Equals(contrasena2)) { if (imagenM != null) { MemoryStream target = new MemoryStream(); imagenM.InputStream.CopyTo(target); byte[] filebytes = target.ToArray(); if (filebytes.Length > 0) { string extension = Path.GetExtension(imagenM.FileName); encodedData = "data:image/" + extension.Replace(".", "") + ";base64,"; encodedData += Convert.ToBase64String(filebytes, Base64FormattingOptions.None); } } try { UsuarioAuth admin = (UsuarioAuth)Session["usuario"]; if (admin != null) { if (admin.rolNombre.Equals("Administrador")) { List<TipoUsuario> tipo_usuario = db.TipoUsuario.ToList().Where(m => m.IdTipoUsuario == 3).ToList(); List<Especialidades> especialidades = db.Especialidades.ToList().Where(m => m.IdEspecialidad == especialidad).ToList(); if (tipo_usuario.Count > 0 && especialidades.Count > 0) { Membresias menbresia = new Membresias { TipoMembresia = tipo_menbresia, FechaInicio = fecha_inicio, FechaFin = fecha_fin }; Especialistas especialistas = new Especialistas { Activo = true, NombreEsp = nombre, ApellidoEsp = apellidos, PaginaWebEsp = pagina, CelularEsp = celular, EmailEsp = email, FotoEsp = encodedData, Especialidades = especialidades[0], Login = new Login { TipoUsuario = tipo_usuario[0], UsuarioLogin = email, PasswordLogin = CifradoDatos.cifrarPassword(contrasena1) }, IdSuscripcion = menbresia.IdMembresia }; Direcciones consultorio = new Direcciones { Calle = direccion, Ciudades = new Ciudades { IdCiudad = ciudad }, TelefonoFijo = telefono, Latitud = latitud, Longitud = longitud, Especialistas = especialistas }; db.Membresias.Add(menbresia); db.Especialistas.Add(especialistas); db.Direcciones.Add(consultorio); db.SaveChanges(); lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificacion", cuerpo = "Especialista registrada exitosamente." }); TempData["mensajes"] = lstMensajes; } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Ocurrio un problema procesando la solicitud" }); TempData["mensajes"] = lstMensajes; } } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No cuenta con privilegios para realizar esta accion, inicie sesión" }); TempData["mensajes"] = lstMensajes; } } else { lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No cuenta con privilegios para realizar esta accion, inicie sesión" }); TempData["mensajes"] = lstMensajes; } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { var sb = new System.Text.StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = error.PropertyName + ":" + error.ErrorMessage }); sb.AppendLine(); } } lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = sb.ToString() }); TempData["mensajes"] = lstMensajes; SystemLog log = new SystemLog(); log.ErrorLog(sb.ToString()); throw new Exception(sb.ToString()); } } } return RedirectToAction("InsertarEspecialista", "Administrador"); }