Ejemplo n.º 1
0
        public IActionResult Pool(string prefix = "", int page = 1)
        {
            if (string.IsNullOrEmpty(prefix))
            {
                prefix = "";
            }

            var model = new NumberingPoolViewModel()
            {
                Prefix     = prefix,
                Miscs      = repository.Miscs.OrderBy(x => x.Name).ToArray(),
                PagingInfo = new PagingInfo()
                {
                    CurrentPage  = page,
                    ItemsPerPage = Settings.PageSize,
                    From         = (page - 1) * Settings.PageSize,
                    To           = (page - 1) * Settings.PageSize + Settings.PageSize,
                    TotalItems   = repository.NumberingPools
                                   .Where(x => x.Prefix.StartsWith(prefix))
                                   .Count()
                },
                Prefixes = repository.GetNps()
                           .Where(x => x.Prefix.StartsWith(prefix))
                           .Skip((page - 1) * Settings.PageSize)
                           .Take(Settings.PageSize)
                           .ToArray()
            };

            return(View("Pool", model));
        }
Ejemplo n.º 2
0
        private IQueryable <NumberingPool> NumberingQuery(NpSearch search)
        {
            var query = repository.GetNps();

            if (!string.IsNullOrEmpty(search.Prefix))
            {
                switch (search.PrefixMode)
                {
                case QueryMode.RightMatch:
                    query = query.Where(x => x.Prefix.StartsWith(search.Prefix));
                    break;

                case QueryMode.Exact:
                    query = query.Where(x => x.Prefix == search.Prefix);
                    break;

                case QueryMode.Like:
                    query = query.Where(x => x.Prefix.Contains(search.Prefix));
                    break;

                default:
                    break;
                }
            }

            if (!string.IsNullOrEmpty(search.Abb))
            {
                query = query.Where(x => x.Abb == search.Abb);
            }

            if (search.ChargingCases != null)
            {
                query = query.Where(x => search.ChargingCases.Contains(x.ChargingCase));
            }

            if (search.Directions != null)
            {
                query = query.Where(x => search.Directions.Contains(x.Direction.Value));
            }

            if (search.Max != null)
            {
                query = query.Where(x => x.Max == search.Max);
            }

            if (search.Min != null)
            {
                query = query.Where(x => x.Min == search.Min);
            }

            if (search.Owners != null)
            {
                query = query.Where(x => search.Owners.Contains(x.Owner));
            }

            if (search.RondTypes != null)
            {
                query = query.Where(x => search.RondTypes.Contains(x.Rond));
            }

            if (search.Statuses != null)
            {
                query = query.Where(x => search.Statuses.Contains(x.Status));
            }

            if (!string.IsNullOrEmpty(search.SubscriberName))
            {
                search.SubscriberName = search.SubscriberName.Replace('ي', 'ی').Replace('ك', 'ک');
                query = query.Where(x => x.NormalizedSubscriberName.Contains(search.SubscriberName.Replace(" ", "")));
            }

            if (search.RondTypes != null)
            {
                query = query.Where(x => search.RondTypes.Contains(x.Rond));
            }

            if (search.NumberTypes != null)
            {
                query = query.Where(x => search.NumberTypes.Contains(x.NumberType));
            }
            if (search.LinkTypes != null)
            {
                query = query.Where(x => search.LinkTypes.Contains(x.Link.Value));
            }
            if (search.Areas != null)
            {
                query = query.Where(x => search.Areas.Contains(x.Area.Value));
            }

            return(query);
        }