public static GetDownlineUpcomingPromotionsResponse GetDownlineUpcomingPromotions(GetDownlineUpcomingPromotionsRequest request) { var response = new GetDownlineUpcomingPromotionsResponse(); // Determine if we passed a KendoGridRequest. // If we did, use the page and pagesize from the request instead, as it takes priority due to it's unique implications. var whereClause = string.Empty; if (request.KendoGridRequest != null) { request.Page = request.KendoGridRequest.Page; request.RowCount = request.KendoGridRequest.PageSize; request.TotalRowCount = request.KendoGridRequest.Total; whereClause = request.KendoGridRequest.SqlWhereClause; whereClause = whereClause.Replace("RankScore", "Score"); whereClause = whereClause.Replace("CustomerID", "c.CustomerID"); } var results = new List <CustomerRankScore>(); //calling store Procedure "GetDownlineUpcomingPromotions" int periodTypeID = request.PeriodTypeID; int downlineCustomerID = request.DownlineCustomerID; string strRankID = (request.RankID != null) ? "AND PaidRankID = " + request.RankID + @"" : "0"; int skip = request.Skip; int take = request.Take; string sortingOrder = " ORDER BY "; //need to append defualt sorting in query sortingOrder += KendoUtilities.GetSqlOrderByClause((request.KendoGridRequest != null) ? request.KendoGridRequest.SortObjects : new List <SortObject>(), new SortObject("TotalScore", "DESC"), new SortObject("c.CreatedDate", "ASC")); using (var sqlcontext = Exigo.Sql()) { sqlcontext.Open(); string sqlProcedure = string.Format(@"GetDownlineUpcomingPromotions {0},{1},'{2}','{3}','{4}',{5},{6}", periodTypeID, downlineCustomerID, strRankID, whereClause.Replace("'", "''"), sortingOrder, skip, take); results = sqlcontext.Query <CustomerRankScore, Rank, CustomerRankScore>(sqlProcedure, (customer, rank) => { customer.Rank = rank; return(customer); }, splitOn: "RankID").ToList(); sqlcontext.Close(); response.CustomerRankScores = results; } if (request.KendoGridRequest != null && response.CustomerRankScores != null && response.CustomerRankScores.Count() > 0) { response.TotalCount = response.CustomerRankScores.FirstOrDefault().TotalRows; } else { response.TotalCount = response.CustomerRankScores.Count(); } return(response); }
public async Task <JsonResult> ReportSchoolPerOstanDetails([DataSourceRequest] DataSourceRequest request, string amarcode = "1398") { string name = ""; string isCity = ""; string managerName = ""; string managerMobile = ""; string insertDate = ""; string status = ""; int pageNumber = 1; int pageSize = 5; DateTime?Startdate = DateTime.Now.Date; try { var descriptors = new KendoUtilities().GetAllFilter(request.Filters.FirstOrDefault()).ToList(); name = descriptors?.FirstOrDefault(x => x.Member == "name")?.Value?.ToString() ?? ""; isCity = descriptors?.FirstOrDefault(x => x.Member == "isCity")?.Value?.ToString() ?? ""; managerName = descriptors?.FirstOrDefault(x => x.Member == "managerName")?.Value?.ToString() ?? ""; managerMobile = descriptors?.FirstOrDefault(x => x.Member == "managerMobile")?.Value?.ToString() ?? ""; insertDate = descriptors?.FirstOrDefault(x => x.Member == "insertDate")?.Value?.ToString() ?? ""; status = descriptors?.FirstOrDefault(x => x.Member == "status")?.Value?.ToString() ?? ""; pageNumber = request.Page; pageSize = request.PageSize; } catch (Exception ex) { } if (!(string.IsNullOrWhiteSpace(insertDate) || string.IsNullOrEmpty(insertDate))) { Conversion conv = new Conversion(); Startdate = conv.PersianToMiladiCalendar(insertDate); } var result = await connection.QueryAsync <ReportSchoolPerOstanDetails> (@"exec [ReportSchoolPerOstanDetails] @amarcode,@name,@isCity,@managerName,@managerMobile,@status,@Startdate,@pageNumber,@pageSize", new { amarcode, name, isCity, managerName, managerMobile, status, Startdate, pageNumber, pageSize }); var resultCount = await connection.QueryFirstAsync <int> (@"exec [ReportSchoolPerOstanDetailsCount] @amarcode,@name,@isCity,@managerName,@managerMobile,@status,@Startdate", new { amarcode, name, isCity, managerName, managerMobile, status, Startdate }); Conversion cn = new Conversion(); return(Json(new { Data = result, Total = resultCount })); }