public FileContentResult Recordatorio(M_FiltroReporte filtroReporte, int idTipoReporte = 1)
        {
            #region [Región: Obtener Reporte]
            var recordatorioBusiness = new RecordatorioBusiness();

            int idUsuario = Convert.ToInt32(ClaimsPrincipal.Current.FindFirst(ClaimTypes.Sid).Value);
            var reporte   = recordatorioBusiness.Listar(idUsuario, filtroReporte.FechaDesde ?? DateTime.Now.AddYears(-10), DateTime.Now.AddYears(10));
            #endregion

            #region [Región: Parsear Registro - Excel]
            List <M_RecordatorioExcel> listaRecordatorioExcel = new List <M_RecordatorioExcel>();
            foreach (var item in reporte)
            {
                M_RecordatorioExcel recordatorioExcel = new M_RecordatorioExcel
                {
                    EstadoRecordatorio = item.EstadoRecordatorio?.Descripcion ?? "-",
                    Categoria          = item.Categoria?.Descripcion ?? "-",
                    SubCategoria       = item.SubCategoria?.Descripcion ?? "-",
                    Titulo             = item.Titulo,
                    Moneda             = item.Moneda?.Descripcion ?? "-",
                    Importe            = string.Format(new System.Globalization.CultureInfo("es-AR"), "{0:N2}", item.Importe),
                    FechaVencimiento   = item.FechaVencimiento.ToShortDateString(),
                    Descripcion        = !string.IsNullOrEmpty(item.Descripcion) ? item.Descripcion : "-"
                };

                listaRecordatorioExcel.Add(recordatorioExcel);
            }
            #endregion

            #region [Región: Exportar Excel]
            byte[] filecontent = ReporteRecordatorio(listaRecordatorioExcel);

            return(File(filecontent, ExcelExportHelper.ExcelContentType, string.Format("{0}.xlsx", "MisCuentasReporte_Recordatorios")));

            #endregion
        }
예제 #2
0
        public ActionResult Login(M_Usuario model, string returnUrl)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Valido si el usuario existe.
                    UsuarioBusiness usuarioBusiness = new UsuarioBusiness();

                    //Valido si existe el mail de usuario
                    if (usuarioBusiness.ValidarEmail(model.Mail))
                    {
                        //Si el usuario existe, cargo los datos en sesion.
                        Usuario usuario = usuarioBusiness.IniciarSesion(model.Mail, Crypto.SHA1(model.Password));

                        if (usuario != null)
                        {
                            #region [Región: Usuario existente]

                            #region [Región: Seteo las claims]

                            HttpContext.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie);
                            var claims = new List <Claim>
                            {
                                new Claim(ClaimTypes.GivenName, usuario.Nombre),
                                new Claim(ClaimTypes.Email, usuario.Email),
                                new Claim(ClaimTypes.Sid, usuario.idUsuario.ToString()),
                                new Claim("idTipoCuenta", usuario.idTipoCuenta.ToString())
                            };

                            #endregion

                            #region [Región: Guardo el usuario en session]

                            var identidad = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
                            HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties()
                            {
                                IsPersistent = model.Recordarme
                            }, identidad);

                            #endregion

                            #region [Región: Actualizar Objetivos]
                            ObjetivoHelper.ActualizarObjetivos(usuario.idUsuario);
                            #endregion

                            #region [Región: Actualizar Recordatorios]
                            var recordatorioBusiness = new RecordatorioBusiness();
                            var listaRecordatorios   = recordatorioBusiness.Listar(usuario.idUsuario, DateTime.Now.AddYears(-10), DateTime.Now.AddDays(-1))?.Where(x => x.idEstado != eEstadoRecordatorio.Vencido && x.idEstado != eEstadoRecordatorio.Anulado);

                            foreach (var item in listaRecordatorios)
                            {
                                item.idEstado           = eEstadoRecordatorio.Vencido;
                                item.Moneda             = null;
                                item.Categoria          = null;
                                item.SubCategoria       = null;
                                item.Usuario            = null;
                                item.EstadoRecordatorio = null;

                                recordatorioBusiness.Modificar(item);
                            }
                            #endregion

                            return(RedirectToLocal(returnUrl));

                            #endregion
                        }
                        else
                        {
                            #region [Región: Usuario incorrecto]
                            ModelState.AddModelError("EstadoLogin", "La contraseña ingresada es incorrecta.");
                            #endregion
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("EstadoLogin", "Las credenciales ingresadas son incorrectas o el usuario se encuentra bloqueado.");
                    }
                }

                //Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
                return(View(model));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }