public IActionResult Index(ServicesFilter filter = null)
        {
            var serv = _servicesRepository.getQueryable();

            if (!string.IsNullOrWhiteSpace(filter.title))
            {
                serv = serv.Where(a => a.name.Contains(filter.title));
            }

            ViewBag.pagerInfo = _paginatedMetaService.GetMetaData(serv.Count(), filter.page, filter.number_of_rows);


            serv = serv.Skip(filter.number_of_rows * (filter.page - 1)).Take(filter.number_of_rows);

            var serviceDetail = serv.ToList();

            var serviceIndexVM = getViewModelFrom(serviceDetail);

            return(View(serviceIndexVM));
        }
        public async Task<IList<Service>> GetSupportedServicesList(ServicesFilter filter, String userAgent, Action onLoadingStarts, Action onLoadingEnds)
        {
            onLoadingStarts();

            string servicesUri = LongUrlConstants.API_ENDPOINT + "/services";

            switch (filter.Format)
            {
                case ResponseFormat.XML:
                    servicesUri = servicesUri + "?format=xml";
                    break;
                case ResponseFormat.JSON:
                    servicesUri = servicesUri + "?format=json";
                    break;
                case ResponseFormat.PHP:
                    servicesUri = servicesUri + "?format=php";
                    break;
                default:
                    servicesUri = servicesUri + "?format=json";
                    break;
            }

            string responseBody = await GetResponse(servicesUri, userAgent);

            using (StreamReader reader = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(responseBody))))
            {
                String jsonString = reader.ReadToEnd();
                JObject parsedString = JObject.Parse(jsonString);

                ObservableCollection<Service> services = new ObservableCollection<Service>();
                foreach (JToken service in parsedString.AsJEnumerable())
                {
                    Service mappedService = Service.mapItemToService(service.First.Value<JObject>());
                    services.Add(mappedService);
                }

                onLoadingEnds();

                return services;
            }
        }