public HttpResponseMessage DeleteCard([FromBody] RequestCardReport requestCard) { try { CardViewModel cardViewModel = new CardViewModel(); return(ResponseSuccess(cardViewModel.GetCardReport(requestCard))); } catch { return(ResponseFail("ERROR")); } }
public CardReport GetCardReport(RequestCardReport requestCard) { try { CardReport cardReport = new CardReport(); string sql2 = string.Format("SELECT * from TicketMonth s left JOIN (select ID, MAX(RowID) as 'RowID' from TicketMonth GROUP BY ID) t on s.ID = t.ID where t.RowID = s.RowID and s.ProcessDate between '{0}' and '{1}'", requestCard.fromDate.ToString("yyyy-MM-dd"), requestCard.toDate.ToString("yyyy-MM-dd")); List <string> report = new List <string>(); List <SmartCard> M1 = new List <SmartCard>(); List <SmartCard> M2 = new List <SmartCard>(); List <TicketMonthResult> ticketMonthResults1 = new List <TicketMonthResult>(); List <TicketMonthResult> ticketMonthResults2 = new List <TicketMonthResult>(); using (DB db = new DB("M1")) { M1 = db.SmartCards.Where(x => x.DayUnlimit <= requestCard.toDate).ToList(); ticketMonthResults1 = db.Database.SqlQuery <TicketMonthResult>(sql2).ToList(); } using (DB db = new DB("M2")) { M2 = db.SmartCards.Where(x => x.DayUnlimit <= requestCard.toDate).ToList(); ticketMonthResults2 = db.Database.SqlQuery <TicketMonthResult>(sql2).ToList(); } cardReport.Total = M1.Count() + M2.Count(); cardReport.TotalUsing = M1.Count(x => x.Using == true) + M2.Count(x => x.Using == true);; cardReport.TotalBlock = cardReport.Total - cardReport.TotalUsing; cardReport.TotalTicketMonth = ticketMonthResults1.Count() + ticketMonthResults2.Count(); cardReport.TotalGuest = cardReport.Total - cardReport.TotalTicketMonth; cardReport.TotalStopUsingTicketMonth = ticketMonthResults1.Count(x => x.Status == 3) + ticketMonthResults2.Count(x => x.Status == 3); cardReport.TotalBlackTicketMonth = ticketMonthResults1.Count(x => x.Status == 4) + ticketMonthResults2.Count(x => x.Status == 4); cardReport.TotalTicketMonthUsing = cardReport.TotalTicketMonth - (cardReport.TotalStopUsingTicketMonth + cardReport.TotalBlackTicketMonth); return(cardReport); } catch { throw new NullReferenceException(); } }