public (IEnumerable <TicketViewModel>, int) VisitorDailyTicket(TicketVisitorSearchModel search) { var query = Context.Tickets.Where(t => t.CreatedAt.Date == search.specificDay.Value.Date && t.CreatedById == search.visitorId && (search.ticketIds.Count == 0 || search.ticketIds.Contains(t.Id)) && (search.statusIds.Count == 0 || search.statusIds.Contains(t.StatusId)) && (search.branchIds.Count == 0 || search.branchIds.Contains(t.BranchDepartement.BranchId)) && (search.departementIds.Count == 0 || search.departementIds.Contains(t.BranchDepartement.DepartementId))) .Select(t => new TicketViewModel { Id = t.Id, CreateTime = t.CreatedAt, TicketNumber = t.TicketNumber, VisitorId = t.CreatedById.Value, VisitorName = t.CreatedBy.UserName, BranchId = t.BranchDepartement.BranchId, BranchNameAR = t.BranchDepartement.Branch.NameAR, BranchNameEN = t.BranchDepartement.Branch.NameEN, DepartementId = t.BranchDepartement.DepartementId, DepartementNameAR = t.BranchDepartement.Departement.NameAR, DepartementNameEN = t.BranchDepartement.Departement.NameEN, StatusId = t.StatusId, StatusNameAR = t.Status.NameAR, StatusNameEN = t.Status.NameEN, BranchDepartementId = t.BranchDepartementId }); var count = query.Count(); var data = query.OrderBy(c => c.Id).Skip((search.pageNumber - 1) * search.pageSize).Take(search.pageSize); return(data, count); }
public ActionResult VisitorDailyTickets([FromQuery] TicketVisitorSearchModel search) { int visitorId = User.GetUserId(); search.visitorId = visitorId; var response = service.VisitorDailyTickets(search); return(Ok(response)); }
public IResponse VisitorDailyTickets(TicketVisitorSearchModel search) { search.specificDay = search.specificDay ?? DateTime.Now.AddServerTimeHours().Date; var(result, totalRows) = UOW.Tickets.VisitorDailyTicket(search); var dataListed = result.ToList(); foreach (var ticket in dataListed) { ticket.CurrentNumber = UOW.Tickets.Find(t => t.BranchDepartementId == ticket.BranchDepartementId && t.CreatedAt.Date == search.specificDay && t.StatusId == 2) .Select(t => t.TicketNumber).DefaultIfEmpty(0).Max(); } response.pagesTotalRows = totalRows; float all_pages = (float)totalRows / search.pageSize; response.pagesTotalNumber = (int)Math.Ceiling(all_pages); response.pageSize = search.pageSize; response.pageNumber = search.pageNumber; response.data = dataListed; return(response); }