// GET: Administrator public ActionResult Index(myFilteredIncidentRequestViewModel model) { if (model == null) { model = new myFilteredIncidentRequestViewModel(); } List <Request> requestsList = db.Requests.ToList(); string company = Request.Cookies["companyCookie"].Value; List <User> companyUsers = db.Users.Where(m => m.company == company).ToList(); requestsList = db.Requests.Where(m => db.Users.Any(l => m.createdBy == l.userId && l.company == company)).ToList(); //List<myIncidentRequestViewModel> myIncidentRequestViewModel = new List<myIncidentRequestViewModel>(); try { } catch { return(View()); } string statusString; if (model.orderVal == "1") { requestsList.Reverse(); } foreach (var req in requestsList) { List <RequestHistory> s = new List <RequestHistory>(); s = db.RequestHistories.Where(m => m.requestId == req.requestId).ToList(); //var lasts = s.Last().status; statusString = s.Last().status; //switch (s.Last().status) //{ // case 1: // statusString= //}; //de refacut intr o zi if (model.fm.isCheckedType[0] == false && req.type == false) { continue; } if (model.fm.isCheckedType[1] == false && req.type == true) { continue; } if (model.fm.isCheckedStatus[0] == false && statusString == "Pending") { continue; } if (model.fm.isCheckedStatus[1] == false && statusString == "In Progress") { continue; } if (model.fm.isCheckedStatus[2] == false && statusString == "Waiting for approval") { continue; } if (model.fm.isCheckedStatus[3] == false && statusString == "Done") { continue; } if (model.fm.isCheckedCategory[0] == false && req.departmentAssigned == "Hardware") { continue; } if (model.fm.isCheckedCategory[1] == false && req.departmentAssigned == "Software") { continue; } if (model.fm.isCheckedCategory[2] == false && req.departmentAssigned == "Finances") { continue; } model.myIncidents.Add(new myIncidentRequestViewModel { Id = req.requestId, IncidentRequest = req.type == false ? "Incident" : "Request", Title = req.title, CreatedBy = db.Users.Where(m => m.userId == req.createdBy).FirstOrDefault().username, DepartmentAssigned = req.departmentAssigned, Priority = req.priority == 0 ? "Low" : req.priority == 1 ? "Medium" : "High", Status = statusString }); } int count; count = model.myIncidents.Count(x => x.IncidentRequest == "Incident"); model.incidentrequestCount.Add("Incident", count); count = model.myIncidents.Count(x => x.IncidentRequest == "Request"); model.incidentrequestCount.Add("Request", count); count = model.myIncidents.Count(x => x.Status == "Pending"); model.statusCount.Add("Pending", count); count = model.myIncidents.Count(x => x.Status == "In Progress"); model.statusCount.Add("In Progress", count); count = model.myIncidents.Count(x => x.Status == "Waiting for approval"); model.statusCount.Add("Waiting for approval", count); count = model.myIncidents.Count(x => x.Status == "Done"); model.statusCount.Add("Done", count); count = model.myIncidents.Count(x => x.DepartmentAssigned == "Hardware"); model.depassignedCount.Add("Hardware", count); count = model.myIncidents.Count(x => x.DepartmentAssigned == "Software"); model.depassignedCount.Add("Software", count); count = model.myIncidents.Count(x => x.DepartmentAssigned == "Finances"); model.depassignedCount.Add("Finances", count); // var users=db.Requests.Where(m=>m.createdBy==companyUsers) //var requests = db.Requests.Where() // return View(await requests.ToListAsync()); return(View(model)); }
public ActionResult DownloadRaport(myFilteredIncidentRequestViewModel model) { List <Request> requestsList = db.Requests.ToList(); string company = Request.Cookies["companyCookie"].Value; List <User> companyUsers = db.Users.Where(m => m.company == company).ToList(); requestsList = db.Requests.Where(m => db.Users.Any(l => m.createdBy == l.userId && l.company == company)).ToList(); int[,] statusArray = new int[8, 3]; try { } catch { return(View()); } string statusString; if (model.orderVal == "1") { requestsList.Reverse(); } foreach (var req in requestsList) { List <RequestHistory> s = new List <RequestHistory>(); s = db.RequestHistories.Where(m => m.requestId == req.requestId).ToList(); statusString = s.Last().status; bool type = db.Requests.Where(m => m.requestId == req.requestId).FirstOrDefault().type; if (type == false) { if (statusString == "Pending") { if (req.departmentAssigned == "Hardware") { statusArray[0, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[0, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[0, 2]++; } } if (statusString == "In Progress") { if (req.departmentAssigned == "Hardware") { statusArray[1, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[1, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[1, 2]++; } } if (statusString == "Waiting for approval") { if (req.departmentAssigned == "Hardware") { statusArray[2, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[2, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[2, 2]++; } } if (statusString == "Done") { if (req.departmentAssigned == "Hardware") { statusArray[3, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[3, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[3, 2]++; } } } else { if (statusString == "Pending") { if (req.departmentAssigned == "Hardware") { statusArray[4, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[4, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[4, 2]++; } } if (statusString == "In Progress") { if (req.departmentAssigned == "Hardware") { statusArray[5, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[5, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[5, 2]++; } } if (statusString == "Waiting for approval") { if (req.departmentAssigned == "Hardware") { statusArray[6, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[6, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[6, 2]++; } } if (statusString == "Done") { if (req.departmentAssigned == "Hardware") { statusArray[7, 0]++; } else if (req.departmentAssigned == "Software") { statusArray[7, 1]++; } else if (req.departmentAssigned == "Finances") { statusArray[7, 2]++; } } } if (!model.fm.isCheckedType[0] && !req.type) { continue; } if (!model.fm.isCheckedType[1] && req.type) { continue; } if (!model.fm.isCheckedStatus[0] && statusString == "Pending") { continue; } if (model.fm.isCheckedStatus[1] == false && statusString == "In Progress") { continue; } if (model.fm.isCheckedStatus[2] == false && statusString == "Waiting for approval") { continue; } if (model.fm.isCheckedStatus[3] == false && statusString == "Done") { continue; } if (model.fm.isCheckedCategory[0] == false && req.departmentAssigned == "Hardware") { continue; } if (model.fm.isCheckedCategory[1] == false && req.departmentAssigned == "Software") { continue; } if (model.fm.isCheckedCategory[2] == false && req.departmentAssigned == "Finances") { continue; } model.myIncidents.Add(new myIncidentRequestViewModel { Id = req.requestId, IncidentRequest = !req.type ? "Incident" : "Request", Title = req.title, CreatedBy = db.Users.Where(m => m.userId == req.createdBy).FirstOrDefault().username, DepartmentAssigned = req.departmentAssigned, Priority = req.priority == 0 ? "Low" : req.priority == 1 ? "Medium" : "High", Status = statusString }); } int count = model.myIncidents.Count(x => x.IncidentRequest == "Incident"); model.incidentrequestCount.Add("Incident", count); count = model.myIncidents.Count(x => x.IncidentRequest == "Request"); model.incidentrequestCount.Add("Request", count); var products = new System.Data.DataTable("Raport"); products.Columns.Add("/", typeof(string)); products.Columns.Add("Incident", typeof(string)); products.Columns.Add("Request", typeof(string));// typeof(string)); products.Columns.Add("|", typeof(string)); products.Columns.Add("Hardware", typeof(string)); products.Columns.Add("Software", typeof(string)); products.Columns.Add("Finances", typeof(string)); products.Rows.Add("Pending", statusArray[0, 0] + statusArray[0, 1] + statusArray[0, 2], statusArray[4, 0] + statusArray[4, 1] + statusArray[4, 2], "|", statusArray[0, 0] + statusArray[4, 0], statusArray[0, 1] + statusArray[4, 1], statusArray[0, 2] + statusArray[4, 2]); products.Rows.Add("In Progress", statusArray[1, 0] + statusArray[1, 1] + statusArray[1, 2], statusArray[5, 0] + statusArray[5, 1] + statusArray[5, 2], "|", statusArray[1, 0] + statusArray[5, 0], statusArray[1, 1] + statusArray[5, 1], statusArray[1, 2] + statusArray[5, 2]); products.Rows.Add("Waiting for approval", statusArray[2, 0] + statusArray[2, 1] + statusArray[2, 2], statusArray[6, 0] + statusArray[6, 1] + statusArray[6, 2], "|", statusArray[2, 0] + statusArray[6, 0], statusArray[2, 1] + statusArray[6, 1], statusArray[2, 2] + statusArray[6, 2]); products.Rows.Add("Done", statusArray[3, 0] + statusArray[3, 1] + statusArray[3, 2], statusArray[7, 0] + statusArray[7, 1] + statusArray[7, 2], "|", statusArray[3, 0] + statusArray[7, 0], statusArray[3, 1] + statusArray[7, 1], statusArray[3, 2] + statusArray[7, 2]); products.Rows.Add("Total", model.incidentrequestCount["Incident"], model.incidentrequestCount["Request"], "|"); //products.Rows.Add(model.incidentrequestCount["Incident"].ToString()); //products.Rows.Add(model.incidentrequestCount["Request"].ToString()); var grid = new GridView(); grid.DataSource = products; grid.DataBind(); var date = DateTime.Now; Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=raport" + date.ToString() + ".xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); grid.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); return(RedirectToAction("Raport", model)); }