public static string GetWorkorderEmailRow(WorkOrdersGridViewModel workorder) { return(@"<tr style=""text-align:left""> <td style=""border-right: 1px;""> " + workorder.DepartmentName + " " + @" </td> <td style=""border-right: 1px;""> " + workorder.Reported.ToShortDateString() + " " + @" </td> <td style=""border-right: 1px;""> " + workorder.Details + " " + @" </td> <td style=""border-right: 1px;""> " + workorder.Priority + " " + @" </td> <td style=""border-right: 1px;""> " + workorder.Due.ToShortDateString() + " " + @" </td> <td style=""border-right: 1px;""> " + workorder.DaysOverdue + " " + @" </td> <td> " + workorder.DaysOpen + " " + @" </td> </tr >"); }
public ActionResult Mobile() { WorkOrdersGridViewModel model = new WorkOrdersGridViewModel(); //fill dropdowns data. required for mobile view model.Departments = GetMobileFilterDepartmentsSelectList(); model.Areas = GetMobileFilterAreasSelectList(); model.Closers = GetMobileFilterClosersSelectList(); model.Priorities = GetPrioritiesSelectList(null); return(View(model)); }
// GET: AccessDenied public ActionResult Index() { //read selected company from cookie var selectedCompany = CompanyCookie.SelectedCompany; var model = new WorkOrdersGridViewModel { Companies = UserFunctions.GetCompaniesSelectList(selectedCompany), SelectedCompany = selectedCompany }; return(View(model)); }
public ActionResult SelectCompany(WorkOrdersGridViewModel model) { if (model != null && ModelState.IsValid) { CompanyCookie.SelectedCompany = model.SelectedCompany; } if (Request.UrlReferrer != null) { return(Redirect(Request.UrlReferrer.ToString())); } else { return(RedirectToAction("Index")); } }
//public JsonResult GetMobileGridData([DataSourceRequest]DataSourceRequest request, string workOrderType, string workOrderDueType) //{ // // JavaScriptSerializer class used by the Json method cannot serialize object graphs which contain circular references (refer to each other). // //The best solution is to use View Model objects and avoid the serializing the properties which create the circular reference. // var model = _db.Workorders.ToList() // .OrderBy(w => w.Department.AreaName) // .ThenBy(w => w.Department.Name) // .Select(m => new WorkOrdersGridViewModel // { // DepartmentAreaName = m.Department.AreaName, // DepartmentName = m.Department.Name, // Reported = m.Reported, // Details = m.Details, // Priority = m.Priority, // ConsumerName = m.Consumer != null ? m.Consumer.Name : string.Empty, // Closed = m.Closed, // Closer = m.Closer, // Id = m.Id, // Resolution = m.Resolution, // Estimate = m.Estimate, // //Approved = m.Approved ?? false // Approved=m.Approved // }); // //filter by workorder type // if (workOrderType != null) // { // if (workOrderType.Equals("Closed")) // { // model = model.Where(x => x.Closed != null); // } // else if (workOrderType.Equals("Open")) // { // //model = model.Where(x => x.Closed == null && x.Approved == true); // model = model.Where(x => x.Closed == null && x.Approved != null); // } // else if (workOrderType.Equals("Awaiting Approval")) // { // //model = model.Where(x => x.Closed == null && x.Approved == false); // model = model.Where(x => x.Closed == null && x.Approved == null && x.Rejected == null); // } // } // //filter by due (due or overdue) // if (workOrderDueType != null) // { // if (workOrderDueType.Equals("Overdue")) // { // model = model.Where(x => x.Overdue); // } // else if (workOrderDueType.Equals("Due")) // { // model = model.Where(x => x.Overdue == false); // } // } // var data = model; // var requestPageSize = request.PageSize; // request.PageSize = 0; // //get total records // var totalRecords = data.ToDataSourceResult(request).Data.AsQueryable().Count(); // request.PageSize = requestPageSize; // return this.Json(new { Data = model.ToDataSourceResult(request), TotalRecords = totalRecords }); //} public ActionResult Index() { var selectedCompany = CompanyCookie.SelectedCompany; //if (selectedCompany == null) // selectedCompany = SelectCompany(); WorkOrdersGridViewModel model = new WorkOrdersGridViewModel { //fill dropdowns data. required for mobile view Departments = GetMobileFilterDepartmentsSelectList(), Areas = GetMobileFilterAreasSelectList(), Closers = GetMobileFilterClosersSelectList(), Priorities = GetPrioritiesSelectList(null), Companies = UserFunctions.GetCompaniesSelectList(selectedCompany), SelectedCompany = selectedCompany }; return(View(model)); }
public static string GetReportEmailMessage(CompanyEnum company, string areaName, int areaId, AppDbContext _db) { var today = System.DateTime.UtcNow.ToCentralTime(); var yesterday = today.AddDays(-1); var thisWeekStart = today.AddDays(-(int)today.DayOfWeek).Date; var thisWeekEnd = thisWeekStart.AddDays(7).AddSeconds(-1); var lastWeekStart = thisWeekStart.AddDays(-7); var lastWeekEnd = thisWeekStart.AddSeconds(-1); var openedWorkOrderModels = new List <WorkOrdersGridViewModel>(); var closedWorkOrderModels = new List <WorkOrdersGridViewModel>(); //Add Awaiting Approval workorders var openedWorkOrders = _db.Workorders.Where(x => x.Reported >= lastWeekStart && x.Reported <= lastWeekEnd && x.Department.AreaID == areaId).ToList(); foreach (var workorder in openedWorkOrders) { var model = new WorkOrdersGridViewModel(); model.DepartmentName = workorder.Department != null ? workorder.Department.Name : null; model.DepartmentAreaName = workorder.Department != null ? workorder.Department.AreaName : null; model.Reported = workorder.Reported; model.Priority = workorder.Priority; model.Details = workorder.Details; model.Closed = workorder.Closed; model.Id = workorder.Id; openedWorkOrderModels.Add(model); } var message = @"<h2>" + company.ToString() + @" Weekly Maintenance Workorders Report</h2> <h2>" + areaName + @"</h2> <h5>Report created " + @DateTime.UtcNow.ToCentralTime() + @"</h5><br /> <h4 ><i>Workorders Opened over the past week</i> </h4> "; if (openedWorkOrderModels.Any() == false) { message += "No Workorders were opened for the specified reporting period."; } else { message += @" <table style=""border:1px""> <tr style=""text-align:left""> <th style=""border-bottom:1px; border-right: 1px;"">Department</th> <th style=""border-bottom:1px; border-right: 1px;"">Reported </th> <th style=""border-bottom:1px; border-right: 1px;"">Details</th> <th style=""border-bottom:1px; border-right: 1px;"">Priorty</th> <th style=""border-bottom:1px; border-right: 1px;"">Due</th> <th style=""border-bottom:1px; border-right: 1px;"">Days Overdue</th> <th style=""border-bottom:1px"">Days Open </th> </tr>"; foreach (var workorder in openedWorkOrderModels) { message += GetWorkorderEmailRow(workorder); } message += @"</table>"; } message += @"<h4><i>Workorders closed over the past week</i> </h4>"; var closedWorkOrders = _db.Workorders.Where(x => x.Closed != null && x.Closed >= lastWeekStart && x.Closed <= lastWeekEnd && x.Department.AreaID == areaId).ToList(); foreach (var workorder in closedWorkOrders) { var model = new WorkOrdersGridViewModel(); model.DepartmentName = workorder.Department != null ? workorder.Department.Name : null; model.DepartmentAreaName = workorder.Department != null ? workorder.Department.AreaName : null; model.Reported = workorder.Reported; model.Priority = workorder.Priority; model.Details = workorder.Details; model.Closed = workorder.Closed; model.Id = workorder.Id; closedWorkOrderModels.Add(model); } if (closedWorkOrderModels.Any() == false) { message += "No Workorders were closed during the specified reporting period."; } else { message += @" <table style=""border:1px""> <tr style=""text-align:left""> <th style=""border-bottom:1px; border-right: 1px;"">Department</th> <th style=""border-bottom:1px; border-right: 1px;"">Reported </th> <th style=""border-bottom:1px; border-right: 1px;"">Details</th> <th style=""border-bottom:1px; border-right: 1px;"">Priorty</th> <th style=""border-bottom:1px; border-right: 1px;"">Due</th> <th style=""border-bottom:1px; border-right: 1px;"">Days Overdue</th> <th style=""border-bottom:1px"">Days Open </th> </tr>"; foreach (var workorder in closedWorkOrderModels) { message += GetWorkorderEmailRow(workorder); } message += @"</table>"; } return(message); }