public ActionResult GetStalls(StallsSearchDTO req) { int total = 0; var list = StallsRepository.GetList(out total, req); return(Json(new { rows = list, total = total }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetStalls(StallsSearchDTO req) { if (req.ListType == 1) { req.offset = (req.offset - 1) * req.limit; } var list = _stallsRepository.GetList(out int total, req); return(Json(new { rows = list, total = total, code = 0, msg = "" }, JsonRequestBehavior.AllowGet)); }
public List <StallsListDTO> GetList(out int total, StallsSearchDTO req) { using (var db = new SqlSugarClient(Connection)) { int totalCount = 0; string order = "Id desc"; List <StallsListDTO> list = new List <StallsListDTO>(); if (!string.IsNullOrEmpty(req.Sort)) { if (req.Sort.Equals("id", StringComparison.OrdinalIgnoreCase)) { order = "Id desc"; } else { order = string.Format("{0} {1}", req.Sort, req.Order); } } var data = db.Queryable <R_Stall>() .JoinTable <Printer>((S, P) => P.Id == S.Print_Id && P.IsDelete == false, JoinType.Left) .Select(@"S.*, P.Name AS PrinterName, MainProjectNum=(select count(0) from R_ProjectStall where R_Stall_Id=S.Id AND BillType = 2), DetailProjectNum=(select count(0) from R_ProjectStall where R_Stall_Id=S.Id AND BillType = 1)") .Where(" S.IsDelete = 0 ").ToDataTable(); if (data != null && data.Rows.Count > 0) { DataView dtv = data.DefaultView; dtv.Sort = order; data = dtv.ToTable(); totalCount = data.Rows.Count; var rows = data.Rows.Cast <DataRow>(); var curRows = rows.Skip(req.offset).Take(req.limit).ToArray(); foreach (DataRow item in curRows) { list.Add(new StallsListDTO() { Id = Convert.ToInt32(item["id"]), Name = item["Name"].ToString(), Description = item["Description"].ToString(), MainProjectNum = Convert.ToInt32(item["MainProjectNum"]), DetailProjectNum = Convert.ToInt32(item["DetailProjectNum"]), PrinterName = item["PrinterName"].ToString() }); } } total = totalCount; return(list); } }