public JsonResult GetMFSummary(MFWiseSummaryParameters param)
        {
            JsonResponse jsonResponse = new JsonResponse();
            var          client       = new RestClient(CommonFunctions.GetAPIPath() + "Dashboard/GetMFSummary");
            var          request      = new RestRequest(Method.POST);

            request.AddParameter("application/json; charset=utf-8", JsonConvert.SerializeObject(param), ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            jsonResponse = JsonConvert.DeserializeObject <JsonResponse>(response.Content);
            IEnumerable <MFReport> summary = JsonConvert.DeserializeObject <IEnumerable <MFReport> >(jsonResponse.Data.ToString());

            HttpContext.Session.SetObject("GridData", summary);
            int totalconsumable = summary.Count();
            var sortDirection   = HttpContext.Request.Query["sSortDir_0"]; // asc or desc
            var sortColumnIndex = Convert.ToInt32(HttpContext.Request.Query["iSortCol_0"]);

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                summary = summary.Where(z => z.Scheme.ToLower().Contains(param.sSearch.ToLower()));
            }
            summary = sortColumnIndex switch
            {
                0 => sortDirection == "asc" ? summary.OrderBy(z => z.AMC) : summary,
                1 => sortDirection == "asc" ? summary.OrderBy(z => z.Scheme) : summary.OrderByDescending(z => z.Scheme),
                2 => sortDirection == "asc" ? summary.OrderBy(z => z.Units) : summary.OrderByDescending(z => z.Units),
                3 => sortDirection == "asc" ? summary.OrderBy(z => z.MaturityDate) : summary.OrderByDescending(z => z.MaturityDate),
                4 => sortDirection == "asc" ? summary.OrderBy(z => z.PurchaseNav) : summary.OrderByDescending(z => z.PurchaseNav),
                5 => sortDirection == "asc" ? summary.OrderBy(z => z.ValueAtcost) : summary.OrderByDescending(z => z.ValueAtcost),
                6 => sortDirection == "asc" ? summary.OrderBy(z => z.CurrentNAV) : summary.OrderByDescending(z => z.CurrentNAV),
                7 => sortDirection == "asc" ? summary.OrderBy(z => z.CurrentMarketValuation) : summary.OrderByDescending(z => z.CurrentMarketValuation),
                8 => sortDirection == "asc" ? summary.OrderBy(z => z.Dividend) : summary.OrderByDescending(z => z.Dividend),
                9 => sortDirection == "asc" ? summary.OrderBy(z => z.AbsoluteGainOrLoss) : summary.OrderByDescending(z => z.AbsoluteGainOrLoss),
                10 => sortDirection == "asc" ? summary.OrderBy(z => z.AbsoluteGainORLossPercentage) : summary.OrderByDescending(z => z.AbsoluteGainORLossPercentage),
                11 => sortDirection == "asc" ? summary.OrderBy(z => z.XIRR) : summary.OrderByDescending(z => z.XIRR),
                12 => sortDirection == "asc" ? summary.OrderBy(z => z.AvgDaysInvested) : summary.OrderByDescending(z => z.AvgDaysInvested),
                _ => sortDirection == "desc" ? summary.OrderBy(z => z.PurchaseNav) : summary.OrderByDescending(z => z.PurchaseNav),
            };
            int filteredconsumableCount = summary.Count();

            if (param.iDisplayLength > 0)
            {
                summary = summary.Skip(param.iDisplayStart).Take(param.iDisplayLength);
            }
            return(Json(new
            {
                param.sEcho,
                iTotalRecords = totalconsumable,
                iTotalDisplayRecords = filteredconsumableCount,
                aaData = summary
            }));
        }
        public async Task <PartialViewResult> GetChildTable(MFWiseSummaryParameters param)
        {
            MFReport model   = new MFReport();
            var      client  = new RestClient(CommonFunctions.GetAPIPath() + "Dashboard/GetMFChildTableSummary");
            var      request = new RestRequest(Method.POST);

            request.AddParameter("application/json; charset=utf-8", JsonConvert.SerializeObject(param), ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            model.MFList = JsonConvert.DeserializeObject <List <MFReport> >(response.Content);
            HttpContext.Session.SetObject("ChildGridData", model.MFList);
            return(PartialView("_ChildTable", model));
        }