Пример #1
0
        public JsonResult SearchAccount(string field, string search, SubAccountType subType, AccountType accountType, bool?isHeader, bool?isActive, int?pageCount = null)
        {
            if (string.IsNullOrEmpty(search) && !isHeader.HasValue && !isActive.HasValue &&
                subType == SubAccountType.Unknown && accountType == AccountType.Unknown)
            {
                return(Json(GetPageItem(null, LogicalOperator.and, DefaultSorting(), pageCount)));
            }

            var searchCriteria = new List <SearchCriteria>();

            if (!string.IsNullOrEmpty(search))
            {
                searchCriteria.Add(new SearchCriteria
                {
                    Field      = field,
                    SearchText = search,
                    FieldType  = field.Contains("Balance")? typeof(decimal): typeof(string)
                });
            }

            if (subType != SubAccountType.Unknown)
            {
                searchCriteria.Add(new SearchCriteria
                {
                    Field      = "Type",
                    SearchText = subType.GetHashCode().ToString(),
                    FieldType  = typeof(string)
                });
            }

            if (accountType != AccountType.Unknown)
            {
                searchCriteria.Add(new SearchCriteria
                {
                    Field      = "Classification",
                    SearchText = accountType.GetHashCode().ToString(),
                    FieldType  = typeof(string)
                });
            }
            if (isHeader.HasValue)
            {
                searchCriteria.Add(new SearchCriteria
                {
                    Field      = "IsHeader",
                    SearchText = isHeader.Value.ToString().ToLower(),
                    FieldType  = typeof(bool)
                });
            }

            if (isActive.HasValue)
            {
                searchCriteria.Add(new SearchCriteria
                {
                    Field      = "IsActive",
                    SearchText = (!isActive.Value).ToString().ToLower(),
                    FieldType  = typeof(bool)
                });
            }

            return(Json(GetPageItem(searchCriteria, LogicalOperator.and, DefaultSorting(), pageCount)));
        }