public IActionResult GetRptSite() { IEnumerable <ReportSiteOutputModel> OutPutData = null; ReportSiteInputModel filter = new ReportSiteInputModel(); filter.NoBillboard = ""; filter.Kota = ""; filter.Provinsi = ""; filter.MediaOwnerID = Guid.Parse(""); filter.IsBooked = true; filter.IsPurchased = true; filter.PageSize = 1000; filter.PageNumber = 1; using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Dashboard/"); var responseTask = client.PostAsJsonAsync <ReportSiteInputModel>("ReportSite", filter); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var content = result.Content.ReadAsStringAsync(); ReportSiteResponseModel resutl = Newtonsoft.Json.JsonConvert.DeserializeObject <ReportSiteResponseModel>(content.Result); OutPutData = resutl.data; } else //web api sent error response { //log response status here.. OutPutData = Enumerable.Empty <ReportSiteOutputModel>(); ModelState.AddModelError(string.Empty, "Terjadi kesalahan. Mohon hubungi admin."); } } return(Json(OutPutData)); }
public ActionResult <ReportSiteResponseModel> ReportSite([FromBody] ReportSiteInputModel data) { ReportSiteResponseModel res = new ReportSiteResponseModel(); try { ReportBL bl = new ReportBL(db); var temp = bl.GetReportSite(data); res.data = temp.data; res.Message = "Success"; res.Response = true; res.TotalPages = temp.TotalPages; res.TotalData = temp.TotalData; return(res); } catch (Exception ex) { res.Message = ex.Message; res.Response = false; return(res); } }
public ReportSiteResultModel GetReportSite(ReportSiteInputModel data) { var today = DateTime.Now; var query = (from b in db.BookDetail join s in db.TitikLokasi on b.SiteID equals s.ID join u in db.User on s.OwnerByUserID equals u.ID select new ReportSiteOutputModel() { MediaOwnerGuid = u.ID, MediaOwnerName = u.FirstName + " " + u.LastName, Kota = s.Kota, Provinsi = s.Provinsi, NoBillBoard = s.NoBillboard + db.TitikLokasiDetail.Where(x => x.TitikLokasiID == s.ID && x.ID == b.SiteItemID).Select(x => x.ArahLokasi).FirstOrDefault() != "" ? db.TitikLokasiDetail.Where(x => x.TitikLokasiID == s.ID && x.ID == b.SiteItemID).Select(x => x.ArahLokasi).FirstOrDefault() : "", Status = db.Book.Where(z => z.ID == b.BookID).Select(x => x.PaymentID).FirstOrDefault() != Guid.Empty ? "Purchased" : db.BookDetail.Where(x => today > x.EndDate && x.SiteID == s.ID && x.SiteItemID == b.SiteItemID).Count() > 0 ? "Available" : "Booked" }); if (data.MediaOwnerID != null && data.MediaOwnerID != Guid.Empty) { query = (from q in query where q.MediaOwnerGuid == data.MediaOwnerID select new ReportSiteOutputModel() { MediaOwnerGuid = q.MediaOwnerGuid, MediaOwnerName = q.MediaOwnerName, Kota = q.Kota, Provinsi = q.Provinsi, NoBillBoard = q.NoBillBoard, Status = q.Status }); } if (data.NoBillboard != null && data.NoBillboard != string.Empty) { query = (from q in query where q.NoBillBoard.Contains(data.NoBillboard) select new ReportSiteOutputModel() { MediaOwnerGuid = q.MediaOwnerGuid, MediaOwnerName = q.MediaOwnerName, Kota = q.Kota, Provinsi = q.Provinsi, NoBillBoard = q.NoBillBoard, Status = q.Status }); } if (data.IsBooked != false) { query = (from q in query where q.Status == "Booked" select new ReportSiteOutputModel() { MediaOwnerGuid = q.MediaOwnerGuid, MediaOwnerName = q.MediaOwnerName, Kota = q.Kota, Provinsi = q.Provinsi, NoBillBoard = q.NoBillBoard, Status = q.Status }); } if (data.IsPurchased != false) { query = (from q in query where q.Status == "Purchased" select new ReportSiteOutputModel() { MediaOwnerGuid = q.MediaOwnerGuid, MediaOwnerName = q.MediaOwnerName, Kota = q.Kota, Provinsi = q.Provinsi, NoBillBoard = q.NoBillBoard, Status = q.Status }); } if (data.IsPurchased != false) { query = (from q in query where q.Status == "Available" select new ReportSiteOutputModel() { MediaOwnerGuid = q.MediaOwnerGuid, MediaOwnerName = q.MediaOwnerName, Kota = q.Kota, Provinsi = q.Provinsi, NoBillBoard = q.NoBillBoard, Status = q.Status }); } int pageNumber = data.PageNumber - 1; query = query.Skip(pageNumber * data.PageSize).Take(data.PageSize); ReportSiteResultModel result = new ReportSiteResultModel(); result.data = query.ToList(); result.TotalPages = (query.Count() / data.PageSize) + 1; result.TotalData = query.Count(); return(result); }