public ActionResult ShowAdvanceFilter(Spartan_User_Historical_PasswordAdvanceSearchModel model, int idFilter = -1)
        {
            if (ModelState.IsValid)
            {
                Session["AdvanceSearch"] = model;
                if (idFilter != -1)
                {
                    Session["AdvanceReportFilter"] = GetAdvanceFilter(model);
                    return(RedirectToAction("Index", "Report", new { id = idFilter }));
                }
                return(RedirectToAction("Index"));
            }
            ViewBag.Filter = new List <SelectListItem>
            {
                new SelectListItem()
                {
                    Text = Resources.Resources.BeginWith, Value = "1"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.EndWith, Value = "2"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.Contains, Value = "4"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.Exact, Value = "3"
                },
            };
            if (!_tokenManager.GenerateToken())
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            _ISpartan_UserApiConsumer.SetAuthHeader(_tokenManager.Token);
            var Spartan_Users_Usuario = _ISpartan_UserApiConsumer.SelAll(true);

            if (Spartan_Users_Usuario != null && Spartan_Users_Usuario.Resource != null)
            {
                ViewBag.Spartan_Users_Usuario = Spartan_Users_Usuario.Resource.OrderBy(m => m.Name).Select(m => new SelectListItem
                {
                    Text = m.Name.ToString(), Value = Convert.ToString(m.Id_User)
                }).ToList();
            }


            return(View(model));
        }
        public ActionResult ShowAdvanceFilter(string previousFilters = "")
        {
            if (!_tokenManager.GenerateToken())
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            _ISpartan_UserApiConsumer.SetAuthHeader(_tokenManager.Token);
            var Spartan_Users_Usuario = _ISpartan_UserApiConsumer.SelAll(true);

            if (Spartan_Users_Usuario != null && Spartan_Users_Usuario.Resource != null)
            {
                ViewBag.Spartan_Users_Usuario = Spartan_Users_Usuario.Resource.OrderBy(m => m.Name).Select(m => new SelectListItem
                {
                    Text = m.Name.ToString(), Value = Convert.ToString(m.Id_User)
                }).ToList();
            }


            var previousFiltersObj = new Spartan_User_Historical_PasswordAdvanceSearchModel();

            if (previousFilters != "")
            {
                previousFiltersObj = (Spartan_User_Historical_PasswordAdvanceSearchModel)(Session["AdvanceSearch"] ?? new Spartan_User_Historical_PasswordAdvanceSearchModel());
            }

            ViewBag.Filter = new List <SelectListItem>
            {
                new SelectListItem()
                {
                    Text = Resources.Resources.BeginWith, Value = "1"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.EndWith, Value = "2"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.Contains, Value = "4"
                },
                new SelectListItem()
                {
                    Text = Resources.Resources.Exact, Value = "3"
                },
            };

            return(View(previousFiltersObj));
        }
        public string GetAdvanceFilter(Spartan_User_Historical_PasswordAdvanceSearchModel filter)
        {
            var where = "";
            if (!string.IsNullOrEmpty(filter.FromClave) || !string.IsNullOrEmpty(filter.ToClave))
            {
                if (!string.IsNullOrEmpty(filter.FromClave))
                {
                    where += " AND Spartan_User_Historical_Password.Clave >= " + filter.FromClave;
                }
                if (!string.IsNullOrEmpty(filter.ToClave))
                {
                    where += " AND Spartan_User_Historical_Password.Clave <= " + filter.ToClave;
                }
            }

            if (!string.IsNullOrEmpty(filter.FromFecha_de_Registro) || !string.IsNullOrEmpty(filter.ToFecha_de_Registro))
            {
                var Fecha_de_RegistroFrom = DateTime.ParseExact(filter.FromFecha_de_Registro, ConfigurationProperty.DateFormat,
                                                                CultureInfo.InvariantCulture as IFormatProvider);
                var Fecha_de_RegistroTo = DateTime.ParseExact(filter.ToFecha_de_Registro, ConfigurationProperty.DateFormat,
                                                              CultureInfo.InvariantCulture as IFormatProvider);

                if (!string.IsNullOrEmpty(filter.FromFecha_de_Registro))
                {
                    where += " AND Spartan_User_Historical_Password.Fecha_de_Registro >= '" + Fecha_de_RegistroFrom.ToString("MM-dd-yyyy") + "'";
                }
                if (!string.IsNullOrEmpty(filter.ToFecha_de_Registro))
                {
                    where += " AND Spartan_User_Historical_Password.Fecha_de_Registro <= '" + Fecha_de_RegistroTo.ToString("MM-dd-yyyy") + "'";
                }
            }

            if (!string.IsNullOrEmpty(filter.AdvanceUsuario))
            {
                switch (filter.UsuarioFilter)
                {
                case Models.Filters.BeginWith:
                    where += " AND Spartan_User.Name LIKE '" + filter.AdvanceUsuario + "%'";
                    break;

                case Models.Filters.EndWith:
                    where += " AND Spartan_User.Name LIKE '%" + filter.AdvanceUsuario + "'";
                    break;

                case Models.Filters.Exact:
                    where += " AND Spartan_User.Name = '" + filter.AdvanceUsuario + "'";
                    break;

                case Models.Filters.Contains:
                    where += " AND Spartan_User.Name LIKE '%" + filter.AdvanceUsuario + "%'";
                    break;
                }
            }
            else if (filter.AdvanceUsuarioMultiple != null && filter.AdvanceUsuarioMultiple.Count() > 0)
            {
                var UsuarioIds = string.Join(",", filter.AdvanceUsuarioMultiple);

                where += " AND Spartan_User_Historical_Password.Usuario In (" + UsuarioIds + ")";
            }

            if (!string.IsNullOrEmpty(filter.Password))
            {
                switch (filter.PasswordFilter)
                {
                case Models.Filters.BeginWith:
                    where += " AND Spartan_User_Historical_Password.Password LIKE '" + filter.Password + "%'";
                    break;

                case Models.Filters.EndWith:
                    where += " AND Spartan_User_Historical_Password.Password LIKE '%" + filter.Password + "'";
                    break;

                case Models.Filters.Exact:
                    where += " AND Spartan_User_Historical_Password.Password = '******'";
                    break;

                case Models.Filters.Contains:
                    where += " AND Spartan_User_Historical_Password.Password LIKE '%" + filter.Password + "%'";
                    break;
                }
            }


            where = new Regex(Regex.Escape("AND ")).Replace(where, "", 1);
            return(where);
        }