示例#1
0
        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);
        }
示例#2
0
        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
            }));
        }