Exemple #1
0
        public async Task <ActionResult> Index(int?page = 1)
        {
            var client = ExpenseTrackerHttpClient.GetClient();

            var model = new ExpenseGroupsViewModel();

            // Calling the GET method on API
            HttpResponseMessage egsResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egsResponse.IsSuccessStatusCode)
            {
                string egsContent = await egsResponse.Content.ReadAsStringAsync();

                var lstExpenseGroupStatusses = JsonConvert
                                               .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);

                model.ExpenseGroupStatusses = lstExpenseGroupStatusses;
            }
            else
            {
                return(Content("An error occurred."));
            }

            // Without sorting
            //HttpResponseMessage response = await client.GetAsync("api/expensegroups");

            // With sorting. Expense groups will be sorted first by status code and then by title
            //HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title");

            // With paging. We already have suport for paging in API but we need to add new support in the client.
            // I added PagingInfo.cs & HeaderParser.cs helper classes to implement paging on this MVC client.
            HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5");

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                var pagingInfo       = HeaderParser.FindAndParsePagingInfo(response.Headers); // Also, added NuGet package pagedlist.mvc to implement paging
                var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);

                var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups,
                                                                                pagingInfo.CurrentPage,
                                                                                pagingInfo.PageSize,
                                                                                pagingInfo.TotalCount);

                model.ExpenseGroups = pagedExpenseGroupsList;
                model.PagingInfo    = pagingInfo;
            }
            else
            {
                return(Content("An error occurred."));
            }

            return(View(model));
        }
        // GET: ExpenseGroup

        public async Task <ActionResult> Index(int?page = 1)
        {
            var client = ExpenseTrackerHttpClient.GetClient();

            var model = new ExpenseGroupsViewModel();

            var egsResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egsResponse.IsSuccessStatusCode)
            {
                string egsContent = await egsResponse.Content.ReadAsStringAsync();

                var lstExpenseGroupStatusses = JsonConvert
                                               .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);

                model.ExpenseGroupStatusses = lstExpenseGroupStatusses;
            }
            else
            {
                return(Content("An error occurred."));
            }


            // HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title");

            HttpResponseMessage response =
                await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5");

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers);

                var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);

                // model.ExpenseGroups = lstExpenseGroups;

                var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups,
                                                                                pagingInfo.CurrentPage,
                                                                                pagingInfo.PageSize, pagingInfo.TotalCount);


                model.ExpenseGroups = pagedExpenseGroupsList;
                model.PagingInfo    = pagingInfo;
            }
            else
            {
                return(Content("An error occurred."));
            }


            return(View(model));
        }
Exemple #3
0
        public async Task <ActionResult> Index(int?page = 1)
        {
            //calling get or post happen as async mode
            var client = ExpenseTrackerHttpClient.GetClient();

            var model = new ExpenseGroupsViewModel();
            // GET Expense Group Status
            var egsResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egsResponse.IsSuccessStatusCode)
            {
                string egsContent = await egsResponse.Content.ReadAsStringAsync();

                //deserelized the response to get oreginal data
                var lstExpenseGroupStatusses =
                    JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);
                model.ExpenseGroupStatusses = lstExpenseGroupStatusses;
            }
            else
            {
                return(Content("An error occurred."));
            }

            // GET Expense Group

            HttpResponseMessage response =
                await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5");     //done sorting

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                //paging
                var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers);
                //deserelized the response and get the data as IEnumerable

                var lstExpenseGroups =
                    JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);
                //then it convert to IPagedList inerface for pageing
                var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups,
                                                                                pagingInfo.CurrentPage,
                                                                                pagingInfo.PageSize, pagingInfo.TotalCount);

                model.ExpenseGroups = pagedExpenseGroupsList;
                model.PagingInfo    = pagingInfo;
            }
            else
            {
                return(Content("An error occured."));
            }
            return(View(model));
        }
        public async Task <ActionResult> Index(int?page = 1)
        {
            var client = ExpenseTrackerHttpClient.GetClient();

            var model = new ExpenseGroupsViewModel();

            HttpResponseMessage egsResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egsResponse.IsSuccessStatusCode)
            {
                string egsContent = await egsResponse.Content.ReadAsStringAsync();

                var lstExpenseGroupStatusses = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);
                model.ExpenseGroupStatusses = lstExpenseGroupStatusses;
            }
            else
            {
                return(Content("An error occurred."));
            }

            string userId = (this.User.Identity as ClaimsIdentity).FindFirst("unique_user_key").Value;

            HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid"
                                                                 + ",title&page=" + page + "&pagesize=5&userid=" + userId);


            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                // get the paging info from the header
                var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers);

                var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);

                var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage,
                                                                                pagingInfo.PageSize, pagingInfo.TotalCount);

                model.ExpenseGroups = pagedExpenseGroupsList;
                model.PagingInfo    = pagingInfo;
            }
            else
            {
                return(Content("An error occurred."));
            }


            return(View(model));
        }
        public async Task <ActionResult> Index(int?page = 1)
        {
            var ExpenseGroupsVM = new ExpenseGroupsViewModel();

            var client = PWETHttpClient.GetClient();

            //Statusses
            HttpResponseMessage egssResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egssResponse.IsSuccessStatusCode)
            {
                string egsContent = await egssResponse.Content.ReadAsStringAsync();

                var lstExpensesGroupsStatus = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);

                ExpenseGroupsVM.ExpenseGroupStatus = lstExpensesGroupsStatus;
            }
            else
            {
                return(Content("An error has occurred"));
            }

            //Expenses
            HttpResponseMessage Response = await client.GetAsync("api/expensegroup?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5");

            if (Response.IsSuccessStatusCode)
            {
                string content = await Response.Content.ReadAsStringAsync();

                var pagingInfo = HeaderParser.FindAndParsePagingInfo(Response.Headers);

                var lstExpenseGroups       = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);
                var pagedListExpenseGroups = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount);

                ExpenseGroupsVM.ExpenseGroup = pagedListExpenseGroups;
                ExpenseGroupsVM.PagingInfo   = pagingInfo;
            }
            else
            {
                return(Content("An error occurred."));
            }

            return(View(ExpenseGroupsVM));
        }
Exemple #6
0
        public async Task <ActionResult> Index()
        {
            var client = ExpenseTrackerHttpClient.GetClient();

            var model = new ExpenseGroupsViewModel();

            var egsResponse = await client.GetAsync("api/expensegroupstatusses");

            if (egsResponse.IsSuccessStatusCode)
            {
                string egsContent = await egsResponse.Content.ReadAsStringAsync();

                var lstExpenseGroupStatusses = JsonConvert
                                               .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent);

                model.ExpenseGroupStatusses = lstExpenseGroupStatusses;
            }
            else
            {
                return(Content("An error occurred."));
            }


            HttpResponseMessage response = await client.GetAsync("api/expensegroups");

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content);

                model.ExpenseGroups = lstExpenseGroups;
            }
            else
            {
                return(Content("An error occurred."));
            }


            return(View(model));
        }