예제 #1
0
 public ActionResult CrearCarpeta(object datos)
 {
     try
     {
         var rutaOrigen = Request.Form["txtRutaOrigen"]; // \\14.240.4.203\Test\N_SD00037823\tomcat\opt\apache-tomcat-7.0.56\webapps
         // Obtener el 3er slash
         var indice       = rutaOrigen.IndexOf("\\", 2);
         var rutaRestante = rutaOrigen.Substring(indice);
         var sr           = new SistemaRepository();
         var carpeta      = sr.Obtener().FolderDML + rutaRestante;
         if (!Directory.Exists(carpeta))
         {
             Directory.CreateDirectory(carpeta);
             return(View("Mensaje", new HomeView {
                 Mensaje = "Se ha creado la carpeta " + rutaOrigen + " en el servidor."
             }));
         }
         else
         {
             return(View("Mensaje", new HomeView {
                 Mensaje = "Ya existe la carpeta " + rutaOrigen + " en el servidor."
             }));
         }
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new HomeView {
             Mensaje = ex.Message
         }));
     }
     throw new NotImplementedException();
 }
예제 #2
0
파일: Util.cs 프로젝트: raulmercadox/cmdb
        public static void ProcesarArchivo(int id, HttpPostedFileBase archivo, int numeroArchivo)
        {
            SistemaRepository sr = new SistemaRepository();

            if (archivo.InputStream.Length > 0)
            {
                string extension = archivo.FileName.Substring(archivo.FileName.LastIndexOf('.') + 1);
                if (extension == "xls" || extension == "xlsx" || extension == "xlsm")
                {
                    string ruta = sr.Obtener().CopiarExcelA;
                    archivo.SaveAs(ruta + "\\S" + id.ToString().PadLeft(6, '0') + "-" + numeroArchivo.ToString() + "." + extension);
                }
            }
        }
예제 #3
0
        public ActionResult ActualizarSistema()
        {
            try
            {
                string primeraSolicitud         = Request.Form["txtPrimeraSolicitud"];
                string oracleDBUExtractConexion = Request.Form["txtOracleDBUExtractConexion"];
                int    estadoId              = Convert.ToInt32(Request.Form["cboEstado"]);
                string carpetaTrabajo        = Request.Form["txtCarpetaTrabajo"];
                string correoCMS             = Request.Form["txtCorreoCMS"];
                string responderA            = Request.Form["txtResponderA"];
                string copiarExcelA          = Request.Form["txtCopiarExcelA"];
                string folderPre             = Request.Form["txtFolderPre"];
                string folderDML             = Request.Form["txtFolderDML"];
                string mensajeCrearSolicitud = Request.Form["txtMensajeCrearSolicitud"];

                SistemaView       sistemaView = new SistemaView();
                SistemaRepository sr          = new SistemaRepository();
                EstadoRepository  er          = new EstadoRepository();
                List <Estado>     estados     = er.Listar();

                Sistema sistema = sr.Obtener();
                sistema.PrimeraSolicitud         = primeraSolicitud;
                sistema.OracleDBUExtractConexion = oracleDBUExtractConexion;
                sistema.Estado = new Estado {
                    Id = estadoId
                };
                sistema.CarpetaTrabajo        = carpetaTrabajo;
                sistema.CorreoCMS             = correoCMS;
                sistema.ResponderA            = responderA;
                sistema.CopiarExcelA          = copiarExcelA;
                sistema.FolderPre             = folderPre;
                sistema.FolderDML             = folderDML;
                sistema.MensajeCrearSolicitud = mensajeCrearSolicitud;

                sr.Actualizar(sistema);
                sistemaView.Sistema = sistema;
                sistemaView.Mensaje = "Datos Actualizados";
                sistemaView.Estados = estados;
                return(RedirectToAction("ObtenerSistema", new { mensaje = sistemaView.Mensaje }));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new HomeView {
                    Mensaje = ex.Message
                }));
            }
        }
예제 #4
0
 public ActionResult RecuperarClave(string id)
 {
     try
     {
         SistemaRepository sr            = new SistemaRepository();
         UsuarioView       uv            = new UsuarioView();
         UsuarioRepository ur            = new UsuarioRepository();
         string            nombreUsuario = Request.Form["txtUsuario"];
         Usuario           u             = ur.Obtener(nombreUsuario);
         if (u == null)
         {
             uv.Mensaje = "El usuario especificado no existe en el sistema.";
         }
         else
         {
             string correo = u.Correo;
             string token  = Guid.NewGuid().ToString();
             if (ur.ActualizarToken(u.Id, token))
             {
                 SmtpClient  client    = new SmtpClient();
                 string      correoCMS = sr.Obtener().CorreoCMS;
                 MailAddress maDesde   = new MailAddress(correoCMS, "Configuration Management System");
                 MailMessage mm        = new MailMessage();
                 mm.From = maDesde;
                 mm.To.Add(u.Correo);
                 mm.Subject    = "Recuperación de Clave";
                 mm.IsBodyHtml = true;
                 StringBuilder sb  = new StringBuilder();
                 string        url = Url.Action("ResetearClave", "Usuario", null, Request.Url.Scheme, null);
                 sb.Append("Para recuperar su clave por favor haga click en el siguiente vínculo<br>");
                 sb.Append("<a href='" + url + "/" + token + "'>Recuperar clave</a>");
                 mm.Body = sb.ToString();
                 client.Send(mm);
                 uv.Mensaje = "Se ha enviado a su correo (" + correo + ") un mensaje de recuperación de clave.";
             }
             else
             {
                 uv.Mensaje = "El usuario especificado no existe en el sistema.";
             }
         }
         return(View("Mensaje", uv));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", ex.Message));
     }
 }
예제 #5
0
파일: Util.cs 프로젝트: raulmercadox/cmdb
        public static void ProcesarArchivo(int id, Archivo archivo, int numeroArchivo)
        {
            SistemaRepository sr = new SistemaRepository();

            if (archivo.Contenido.Length > 0)
            {
                string extension = archivo.Nombre.Substring(archivo.Nombre.LastIndexOf('.') + 1);
                if (extension == "xls" || extension == "xlsx" || extension == "xlsm")
                {
                    string     ruta = sr.Obtener().CopiarExcelA;
                    FileStream fs   = new FileStream(ruta + "\\S" + id.ToString().PadLeft(6, '0') + "-" + numeroArchivo.ToString() + "." + extension, FileMode.Create, FileAccess.Write);
                    fs.Write(archivo.Contenido, 0, archivo.Contenido.Length);
                    fs.Flush();
                    fs.Close();
                }
            }
        }
예제 #6
0
 public ActionResult ObtenerSistema(string mensaje)
 {
     try
     {
         SistemaView       sistemaView = new SistemaView();
         SistemaRepository sr          = new SistemaRepository();
         EstadoRepository  er          = new EstadoRepository();
         List <Estado>     estados     = er.Listar();
         Sistema           sistema     = sr.Obtener();
         sistemaView.Sistema = sistema;
         sistemaView.Mensaje = mensaje;
         sistemaView.Estados = estados;
         return(View("ObtenerSistema", sistemaView));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new HomeView {
             Mensaje = ex.Message
         }));
     }
 }
예제 #7
0
        public ActionResult Crear(UsuarioView UsuarioView)
        {
            try
            {
                SistemaRepository sr             = new SistemaRepository();
                string            usuarioUsuario = Request.Form["txtUsuarioUsuario"];
                string            correoUsuario  = Request.Form["txtCorreoUsuario"];
                string            claveUsuario   = Request.Form["txtClaveUsuario"];
                string            celular        = Request.Form["txtCelular"];
                string            anexo          = Request.Form["txtAnexo"];
                string            skype          = Request.Form["txtSkype"];

                bool administrador = EvaluarCheckBox("chkAdministradorUsuario");
                bool operador      = EvaluarCheckBox("chkOperadorUsuario");
                bool lector        = EvaluarCheckBox("chkLectorUsuario");
                bool cm            = EvaluarCheckBox("chkCMUsuario");
                bool rm            = EvaluarCheckBox("chkRMUsuario");
                bool ejecutor      = EvaluarCheckBox("chkEjecutorUsuario");
                bool test          = EvaluarCheckBox("chkTestUsuario");

                #region Verificar is ya existe el código del Usuario
                UsuarioRepository pr = new UsuarioRepository();
                Usuario           p  = pr.Obtener(usuarioUsuario.Trim());

                if (p != null)
                {
                    UsuarioView.Usuario.Nombre        = usuarioUsuario;
                    UsuarioView.Usuario.Correo        = correoUsuario;
                    UsuarioView.Usuario.Clave         = Encriptador.EncriptarMD5(claveUsuario);
                    UsuarioView.Usuario.Administrador = administrador;
                    UsuarioView.Usuario.Operador      = operador;
                    UsuarioView.Usuario.Lector        = lector;
                    UsuarioView.Usuario.CM            = cm;
                    UsuarioView.Usuario.RM            = rm;
                    UsuarioView.Usuario.Ejecutor      = ejecutor;
                    UsuarioView.Usuario.Test          = test;
                    UsuarioView.Usuario.Celular       = celular;
                    UsuarioView.Usuario.Anexo         = anexo;
                    UsuarioView.Usuario.Skype         = skype;

                    UsuarioView.Mensaje = "El nombre del Usuario ya existe";
                    return(View("Crear", UsuarioView));
                }
                else
                {
                    p               = new Usuario();
                    p.Nombre        = usuarioUsuario;
                    p.Correo        = correoUsuario;
                    p.Clave         = Encriptador.EncriptarMD5(claveUsuario);
                    p.Administrador = administrador;
                    p.Operador      = operador;
                    p.Lector        = lector;
                    p.CM            = cm;
                    p.RM            = rm;
                    p.Ejecutor      = ejecutor;
                    p.Test          = test;
                    p.Celular       = celular;
                    p.Anexo         = anexo;
                    p.Skype         = skype;

                    p = pr.Actualizar(p);
                    if (p.Id == 0)
                    {
                        UsuarioView.Mensaje = "Hubo un error al crear el Usuario";
                        return(View("Crear", UsuarioView));
                    }
                    if (Request.Form["chkEnviarCorreo"] == "on")
                    {
                        SmtpClient  client    = new SmtpClient();
                        MailMessage mm        = new MailMessage();
                        string      correoCMS = sr.Obtener().CorreoCMS;
                        mm.From = new MailAddress(correoCMS, "Configuration Management System");
                        mm.To.Add(p.Correo);
                        mm.Subject    = "Credenciales de acceso al CMS";
                        mm.IsBodyHtml = true;
                        StringBuilder sb = new StringBuilder();
                        sb.Append("<p>Estas son sus credenciales de acceso al CMS</p>");
                        sb.Append("<p>Usuario: " + p.Nombre + "</p>");
                        sb.Append("<p>Clave: " + claveUsuario + "</p>");
                        string url = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
                        sb.Append("<p>Ruta CMS: <a href='" + url + "'>" + url + "</a></p>");
                        mm.Body = sb.ToString();
                        client.Send(mm);
                    }
                }
                #endregion
                UsuarioView pp = new UsuarioView();
                pp.Mensaje = "Usuario Creado";
                return(View("Crear", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new UsuarioView {
                    Mensaje = ex.Message
                }));
            }
        }
예제 #8
0
파일: Util.cs 프로젝트: raulmercadox/cmdb
        public static void EnviarCorreo(Solicitud[] solicitudes, string asunto, string cuerpo, bool incluirSolicitante, bool incluirAnalistaDes, bool incluirAnalistaTest, bool incluirCopiados,
                                        bool incluirRMs, bool incluirCMs, bool incluirEjecutores, bool incluirAdicional)
        {
            try
            {
                SistemaRepository sr        = new SistemaRepository();
                SmtpClient        client    = new SmtpClient();
                string            correoCMS = sr.Obtener().CorreoCMS;
                MailAddress       maDesde   = new MailAddress(correoCMS, "Configuration Management System");
                UsuarioRepository ur        = new UsuarioRepository();

                MailAddressCollection mailsTo  = new MailAddressCollection();
                MailAddressCollection mailsCc  = new MailAddressCollection();
                MailAddressCollection mailsBcc = new MailAddressCollection();

                if (incluirRMs)
                {
                    List <Usuario> rms = ur.Listar(String.Empty, String.Empty, false, false, false, false, true, false, false);
                    foreach (Usuario rm in rms)
                    {
                        if (!String.IsNullOrEmpty(rm.Correo))
                        {
                            mailsBcc = IncluirCorreo(new MailAddress(rm.Correo), mailsBcc);
                        }
                    }
                }

                if (incluirCMs)
                {
                    List <Usuario> cms = ur.Listar(String.Empty, String.Empty, false, false, false, true, false, false, false);
                    foreach (Usuario cm in cms)
                    {
                        if (!String.IsNullOrEmpty(cm.Correo))
                        {
                            mailsBcc = IncluirCorreo(new MailAddress(cm.Correo), mailsBcc);
                        }
                    }
                }

                foreach (Solicitud s in solicitudes)
                {
                    if (incluirSolicitante)
                    {
                        if (!String.IsNullOrEmpty(s.Solicitante.Correo))
                        {
                            mailsCc = IncluirCorreo(new MailAddress(s.Solicitante.Correo), mailsCc);
                        }
                    }
                    if (incluirAnalistaDes)
                    {
                        if (!String.IsNullOrEmpty(s.AnalistaDesarrollo))
                        {
                            mailsCc = IncluirCorreo(new MailAddress(s.AnalistaDesarrollo), mailsCc);
                        }
                    }
                    if (incluirAnalistaTest)
                    {
                        Area[] areas          = Util.ObtenerAreas(s);
                        bool   enviarAnalista = false;
                        foreach (Area area in areas)
                        {
                            if (area.Correos.Count == 0 && area.Id > 0)
                            {
                                enviarAnalista = true;
                                break;
                            }
                        }
                        if (!String.IsNullOrEmpty(s.AnalistaTestProd))
                        {
                            if (enviarAnalista)
                            {
                                mailsTo = IncluirCorreo(new MailAddress(s.AnalistaTestProd), mailsTo);
                            }
                            else
                            {
                                mailsCc = IncluirCorreo(new MailAddress(s.AnalistaTestProd), mailsCc);
                            }
                        }
                    }
                    if (incluirCopiados)
                    {
                        string[] copiados = s.CopiarA.Split(new char[] { ';' });
                        foreach (string copia in copiados)
                        {
                            if (!String.IsNullOrEmpty(copia))
                            {
                                mailsCc = IncluirCorreo(new MailAddress(copia), mailsCc);
                            }
                        }
                    }
                    if (incluirEjecutores)
                    {
                        MailAddressCollection correos = ObtenerCorreoEjecutores(s);
                        foreach (MailAddress correo in correos)
                        {
                            mailsTo = IncluirCorreo(correo, mailsTo);
                        }
                    }
                    if (s.Ambiente.EnvioPrimeraSolicitud && Util.EsPrimerEnvio(s))
                    {
                        string[] correos = sr.Obtener().PrimeraSolicitud.Split(new char[] { ';' });
                        foreach (string correo in correos)
                        {
                            if (!String.IsNullOrEmpty(correo))
                            {
                                mailsBcc = IncluirCorreo(new MailAddress(correo), mailsBcc);
                            }
                        }
                    }
                    #region Se incluyen correos configurados a nivel de proyecto
                    var pr = new ProyectoRepository();
                    var proyectocorreos = pr.ListarCorreo(s.Proyecto);
                    foreach (var cor in proyectocorreos)
                    {
                        mailsCc = IncluirCorreo(new MailAddress(cor.Direccion), mailsCc);
                    }
                    #endregion
                }
                if (incluirAdicional)
                {
                    if (solicitudes.Count() > 0)
                    {
                        Ambiente           ambiente = solicitudes[0].Ambiente;
                        AmbienteRepository ar       = new AmbienteRepository();
                        List <Correo>      correos  = ar.ListarCorreos(ambiente.Id);
                        foreach (Correo correo in correos)
                        {
                            if (!String.IsNullOrEmpty(correo.Direccion))
                            {
                                mailsBcc = IncluirCorreo(new MailAddress(correo.Direccion), mailsBcc);
                            }
                        }
                    }
                }

                MailMessage mm = new MailMessage();
                mm.From = maDesde;
                mm.ReplyToList.Add(sr.Obtener().ResponderA);
                foreach (MailAddress mail in mailsTo)
                {
                    mm.To.Add(mail);
                }

                foreach (MailAddress mail in mailsCc)
                {
                    mm.CC.Add(mail);
                }
                foreach (MailAddress mail in mailsBcc)
                {
                    mm.Bcc.Add(mail);
                }



                mm.Subject    = asunto;
                mm.Body       = cuerpo;
                mm.IsBodyHtml = true;
                if (solicitudes.Count() == 1 && solicitudes[0].Emergente)
                {
                    mm.Priority = MailPriority.High;
                }
                client.Send(mm);
            }
            catch
            {
                throw;
            }
        }