コード例 #1
0
        public ActionResult Create(FichaIngreso formulario, List <DetalleEstudios> estudios, List <DetalleExperiencias> experiencias, List <DetalleCargasFamiliares> cargasFamiliares, Usuario usuario)
        {
            string FileName = string.Empty;

            try
            {
                estudios         = estudios ?? new List <DetalleEstudios>();
                experiencias     = experiencias ?? new List <DetalleExperiencias>();
                cargasFamiliares = cargasFamiliares ?? new List <DetalleCargasFamiliares>();

                var fichaIngreso = HttpContext.Request.Params.Get("formulario");
                formulario = JsonConvert.DeserializeObject <FichaIngresoOverload>(fichaIngreso, settingsJsonDeserilize).formulario;

                var datosUsuario = HttpContext.Request.Params.Get("usuario");
                usuario = JsonConvert.DeserializeObject <UsuarioOverload>(datosUsuario).usuario;

                var dataEstudios = HttpContext.Request.Params.Get("estudios");
                estudios = JsonConvert.DeserializeObject <EstudiosOverload>(dataEstudios).estudios;

                var dataExperiencias = HttpContext.Request.Params.Get("experiencias");
                experiencias = JsonConvert.DeserializeObject <ExperienciaOverload>(dataExperiencias, settingsJsonDeserilize).experiencias;

                var dataCargasFamiliares = HttpContext.Request.Params.Get("cargasFamiliares");
                cargasFamiliares = JsonConvert.DeserializeObject <CargasFamiliaresOverload>(dataCargasFamiliares, settingsJsonDeserilize).cargasFamiliares;

                //Usuario
                usuario.IdUsuario = formulario.UsuarioID;

                //Obtener archivos
                HttpFileCollectionBase files = Request.Files;

                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFileBase file = files[i];
                    string             path = string.Empty;

                    // Checking for Internet Explorer
                    if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                    {
                        string[] testfiles = file.FileName.Split(new char[] { '\\' });
                        path = testfiles[testfiles.Length - 1];
                    }
                    else
                    {
                        path     = file.FileName;
                        FileName = file.FileName;
                    }

                    string tipoArchivo = file.ContentType;

                    using (var reader = new BinaryReader(file.InputStream))
                    {
                        formulario.Foto = reader.ReadBytes(file.ContentLength);
                    }
                }

                usuario.Direccion = formulario.DireccionCallePrincipal + " ; " + formulario.DireccionCalleSecundaria + " ; " + formulario.DireccionConjuntoResidencial + " N. " + formulario.DireccionNumeroCasa;

                var actualizacionDatosUsuario = UsuarioDAL.ActualizarDatosUsuarioFichaIngreso(usuario);

                if (actualizacionDatosUsuario.Estado)
                {
                    var    destinatarios = PerfilesDAL.ConsultarCorreoNotificacion(14);
                    string enlace        = GetUrlSitio(Url.Action("Index", "FichaIngreso"));

                    string body = GetEmailTemplate("TemplateFormularioIngreso");
                    body = body.Replace("@ViewBag.EnlaceDirecto", enlace);
                    body = body.Replace("@ViewBag.EnlaceSecundario", enlace);
                    body = body.Replace("@ViewBag.Empleado", usuario.Nombres + " " + usuario.Apellidos);

                    Resultado = FichaIngresoDAL.CrearFichaIngreso(formulario, cargasFamiliares, estudios, experiencias);
                    //Siempre que la ficha de ingreso haya sido creado con éxito.
                    if (Resultado.Estado)
                    {
                        var notificacion = NotificacionesDAL.CrearNotificacion(new Notificaciones
                        {
                            NombreTarea                  = "Nueva Ficha Ingreso",
                            DescripcionTarea             = "Correo de notificación de registro de ficha un nuevo empleado en el corporativo a RRHH y al área médica.",
                            NombreEmisor                 = nombreCorreoEmisor,
                            CorreoEmisor                 = correoEmisor,
                            ClaveCorreo                  = claveEmisor,
                            CorreosDestinarios           = destinatarios,
                            AsuntoCorreo                 = "NOTIFICACION DE FICHA DE INGRESO",
                            NombreArchivoPlantillaCorreo = TemplateNotificaciones,
                            CuerpoCorreo                 = body,
                            AdjuntosCorreo               = "",//ruta,
                            FechaEnvioCorreo             = DateTime.Now,
                            Empresa = "ATISCODE",
                            Canal   = CanalNotificaciones,
                            Tipo    = "FICHA INGRESO",
                        });
                    }
                }
                else
                {
                    return(Json(new { Resultado = new RespuestaTransaccion {
                                          Estado = false, Respuesta = actualizacionDatosUsuario.Respuesta
                                      } }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { Resultado = Resultado }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Excepción al crear ficha de ingreso.");
                return(Json(new { Resultado = new RespuestaTransaccion {
                                      Estado = false, Respuesta = ex.Message
                                  } }, JsonRequestBehavior.AllowGet));
            }
        }