public ActionResult Add(int?toDoListPK) { ToDoListView toDoListView = new ToDoListView(); if (toDoListPK != null) { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); ToDoList toDoList = toDoListsRepository.GetToDoListByPK((int)toDoListPK); IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); toDoList.Finished = false; toDoListView.ConvertFrom(toDoList, toDoListView); var legalEntitiesSelectedValue = workDonesRepository.GetWorkDonesCreatedWithToDo((int)toDoListPK).Select(a => a.LegalEntityFK); ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); toDoListView.Companies = new MultiSelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("name ASC"), "LegalEntityPK", "Name", legalEntitiesSelectedValue); } else { ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); toDoListView.Companies = new MultiSelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("name ASC"), "LegalEntityPK", "Name"); } return(View(toDoListView)); }
public ActionResult Add(ToDoListView toDoListView, FormCollection form) { if (ModelState.IsValid) { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); ToDoList toDoList = new ToDoList(); toDoListView.ConvertTo(toDoListView, toDoList); toDoList.UserFK = SecurityHelper.GetUserPKFromCookie(); toDoList.CreationDate = DateTime.Now; toDoListsRepository.Add(toDoList); toDoListsRepository.SaveChanges(); string[] legalEntitiesSelectedValues = new string[500]; if (form["LegalEntityPK"] != null) { legalEntitiesSelectedValues = ((string)form["LegalEntityPK"]).Split(','); } else { legalEntitiesSelectedValues = null; } IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); if (legalEntitiesSelectedValues != null) { // Add work dones foreach (string legalEntity in legalEntitiesSelectedValues) { WorkDone workDone = new WorkDone(); workDone.ToDoListFK = toDoList.ToDoListPK; workDone.LegalEntityFK = Convert.ToInt32(legalEntity); workDone.CreatedWithToDo = true; workDonesRepository.Add(workDone); } workDonesRepository.SaveChanges(); } TempData["message"] = LayoutHelper.GetMessage("INSERT", toDoList.ToDoListPK); return(RedirectToAction("Index", "ToDoList")); } else { ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); toDoListView.Companies = new MultiSelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("name ASC"), "LegalEntityPK", "Name"); return(View(toDoListView)); } }
public ActionResult Edit(int?workDonePK) { if (workDonePK != null) { IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); WorkDone workDone = workDonesRepository.GetWorkDoneByPK((int)workDonePK); WorkDoneView workDoneView = new WorkDoneView(); workDoneView.ConvertFrom(workDone, workDoneView); IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db); IAttachmentsRepository attachmentsRepository = new AttachmentsRepository(db); IQueryable <WorkDoneAttachmentView> workDoneAttachments = WorkDoneAttachmentView.GetWorkDoneAttachmentView(workDoneAttachmentsRepository.GetValid(), attachmentsRepository.GetValid(), workDonesRepository.GetValid()) .Where(c => c.WorkDoneFK == workDonePK).OrderBy("WorkDoneAttachmentPK DESC"); ViewBag.Attachments = workDoneAttachments.ToList(); //to do list ddl IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); workDoneView.ToDoLists = new SelectList(toDoListsRepository.GetValid().ToList(), "ToDoListPK", "Name"); //legalEntities ddl ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); workDoneView.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").ToList(), "LegalEntityPK", "Name"); //service type ddl IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); workDoneView.ServiceTypes = new SelectList(serviceTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "ServiceTypePK", "Name"); //Work done ddl IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); workDoneView.WorkTypes = new SelectList(workTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkTypePK", "Name"); //worksubtypes ddl if (workDoneView.WorkTypeFK != null) { IWorkSubtypesRepository workSubtypesRepository = new WorkSubtypesRepository(db); workDoneView.WorkSubtypes = new SelectList(workSubtypesRepository.GetValidByWorkType(Convert.ToInt32(workDoneView.WorkTypeFK)), "WorkSubtypePK", "Name", workDoneView.WorkSubtypeFK); } else { workDoneView.WorkSubtypes = new SelectList(new List <County>(), "WorkSubtypePK", "Name"); } //hours and minutes ddl workDoneView.Hours = GeneratorView.GenerateHours(); workDoneView.Minutes = GeneratorView.GenerateMinutes(); return(View(workDoneView)); } else { return(RedirectToAction("Index", "WorkDone")); } }
public ActionResult Finish(int?toDoListPK) { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); if (toDoListPK != null) { ToDoList toDoList = toDoListsRepository.GetToDoListByPK((int)toDoListPK); toDoList.Finished = true; toDoListsRepository.SaveChanges(); } return(Redirect(Request.UrlReferrer.AbsoluteUri)); }
public ActionResult Delete(int?toDoListPK) { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); if (toDoListPK != null) { ToDoList toDoList = toDoListsRepository.GetToDoListByPK((int)toDoListPK); toDoList.Deleted = true; toDoListsRepository.SaveChanges(); TempData["message"] = LayoutHelper.GetMessage("DELETE", toDoList.ToDoListPK); } return(Redirect(Request.UrlReferrer.AbsoluteUri)); }
public ActionResult Add(int?toDoListFK) { WorkDoneView workDoneView = new WorkDoneView(); //to do list ddl IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); workDoneView.ToDoLists = new SelectList(toDoListsRepository.GetNotFinished().OrderBy("Name ASC").ToList(), "ToDoListPK", "Name"); //legalEntities ddl ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); workDoneView.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").ToList(), "LegalEntityPK", "Name"); //service type ddl IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); workDoneView.ServiceTypes = new SelectList(serviceTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "ServiceTypePK", "Name"); //Work type ddl IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); workDoneView.WorkTypes = new SelectList(workTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkTypePK", "Name"); //worksubtypes ddl workDoneView.WorkSubtypes = new SelectList(new List <County>(), "WorkSubtypePK", "Name"); //hours and minutes ddl workDoneView.Hours = GeneratorView.GenerateHours(); workDoneView.Minutes = GeneratorView.GenerateMinutes(); if (toDoListFK != null) { workDoneView.ToDoListFK = toDoListFK; } workDoneView.ServiceTypeFK = 1; return(View(workDoneView)); }
public ActionResult Index() { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); IUsersRepository usersRepository = new UsersRepository(db); int page = !String.IsNullOrWhiteSpace(Request.QueryString["page"]) ? Convert.ToInt32(Request.QueryString["page"]) : 1; int pageSize = !String.IsNullOrWhiteSpace(Request.QueryString["pageSize"]) ? Convert.ToInt32(Request.QueryString["pageSize"]) : Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["ResultsPerPage"]); string sortOrder = !String.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "ASC"; string sortColumn = !String.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "Deadline"; string ordering = sortColumn + " " + sortOrder; ordering = ordering.Trim(); IQueryable <ToDoListView> toDoLists = ToDoListView.GetToDoListView(toDoListsRepository.GetValid(), workDonesRepository.GetValid(), usersRepository.GetValid()) .OrderBy(ordering); string status = "obligations"; if (!String.IsNullOrWhiteSpace(Request.QueryString["Status"])) { status = Request.QueryString["Status"]; } ViewBag.dateFrom = Request.QueryString["dateFrom"] != null ? Request.QueryString["dateFrom"] : DateTime.Now.AddDays(-30).ToString("dd.MM.yyyy."); ViewBag.dateTo = Request.QueryString["dateTo"] != null ? Request.QueryString["dateTo"] : DateTime.Now.AddDays(30).ToString("dd.MM.yyyy."); ViewBag.FinishedStatuses = new SelectList(GeneratorView.GenerateFinishedStauses(), "Value", "Text", status); if (!String.IsNullOrWhiteSpace(Request.QueryString["searchString"])) { string searchString = Request.QueryString["searchString"].ToString(); toDoLists = toDoLists.Where(c => c.Name.Contains(searchString)); } if (status == "obligations") { toDoLists = toDoLists.Where(c => c.Finished == false || c.Finished == null); } else { if (status == "finished") { toDoLists = toDoLists.Where(c => c.Finished == true); } if (Request.QueryString["dateFrom"] != "") { DateTime dateFromDate = new DateTime(); dateFromDate = DateTime.ParseExact(ViewBag.dateFrom, "dd.MM.yyyy.", null); toDoLists = toDoLists.Where(c => c.Deadline >= dateFromDate); } if (Request.QueryString["dateTo"] != "") { DateTime dateToDate = new DateTime(); dateToDate = DateTime.ParseExact(ViewBag.dateTo, "dd.MM.yyyy.", null); toDoLists = toDoLists.Where(c => c.Deadline <= dateToDate); } } toDoLists = toDoLists.Page(page, pageSize); ViewData["numberOfRecords"] = toDoLists.Count(); int numberOfPages = ((int)ViewData["numberOfRecords"] + pageSize - 1) / pageSize; if (page > numberOfPages) { string url = LinkHelper.getQueryStringArray(new string[] { "page" }); return(Redirect("ToDoList?" + url + "page=" + numberOfPages)); } else { return(View("Index", toDoLists.ToList())); } }
public ActionResult Edit(ToDoListView toDoListView, FormCollection form) { if (ModelState.IsValid) { IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); ToDoList toDoList = toDoListsRepository.GetToDoListByPK((int)toDoListView.ToDoListPK); toDoListView.ConvertTo(toDoListView, toDoList); toDoListsRepository.SaveChanges(); string[] legalEntitiesSelectedValues = new string[500]; if (form["LegalEntityPK"] != null) { legalEntitiesSelectedValues = ((string)form["LegalEntityPK"]).Split(','); } else { legalEntitiesSelectedValues = null; } IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); var legalEntitiesValueFromDB = workDonesRepository.GetWorkDonesCreatedWithToDo((int)toDoListView.ToDoListPK).Select(a => a.LegalEntityFK); if (legalEntitiesSelectedValues != null) { // Add work dones foreach (string legalEntity in legalEntitiesSelectedValues) { int legalEntityFK = Convert.ToInt32(legalEntity); if (!legalEntitiesValueFromDB.Contains(legalEntityFK)) { WorkDone workDone = new WorkDone(); workDone.ToDoListFK = toDoList.ToDoListPK; workDone.LegalEntityFK = legalEntityFK; workDone.CreatedWithToDo = true; workDonesRepository.Add(workDone); } } workDonesRepository.SaveChanges(); List <WorkDone> workDones = workDonesRepository.GetWorkDonesCreatedWithToDo((int)toDoListView.ToDoListPK).ToList(); // delete existing foreach (WorkDone workDone in workDones) { int legalEntityFK = (int)workDone.LegalEntityFK; if (!legalEntitiesSelectedValues.ToList().Contains(legalEntityFK.ToString())) { workDone.Deleted = true; workDonesRepository.SaveChanges(); } } } TempData["message"] = LayoutHelper.GetMessage("UPDATE", toDoList.ToDoListPK); return(RedirectToAction("Index", "ToDoList")); } else { IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); var legalEntitiesSelectedValue = workDonesRepository.GetWorkDonesCreatedWithToDo((int)toDoListView.ToDoListPK).Select(a => a.LegalEntityFK); ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); toDoListView.Companies = new MultiSelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("name ASC"), "LegalEntityPK", "Name", legalEntitiesSelectedValue); return(View(toDoListView)); } }
public ActionResult Edit(WorkDoneView workDoneView, FormCollection form, IEnumerable <HttpPostedFileBase> files) { if (ModelState.IsValid) { string sessionToken = Audit.GenerateNewSessionToken(); IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); WorkDone workDone = workDonesRepository.GetWorkDoneByPK((int)workDoneView.WorkDonePK); // set last user as entry creator if (workDone.UserFK == null) { workDone.UserFK = SecurityHelper.GetUserPKFromCookie(); } if (workDone.CreationDate == null) { workDone.CreationDate = DateTime.Now; } workDoneView.ConvertTo(workDoneView, workDone); workDonesRepository.SaveChanges(sessionToken); TempData["message"] = LayoutHelper.GetMessage("UPDATE", workDone.WorkDonePK); int workDoneFK = workDone.WorkDonePK; foreach (var file in files) { if (file != null && file.ContentLength > 0) { // save attachment to local drive string originalFileName = Path.GetFileName(file.FileName); string fileExtension = Path.GetExtension(originalFileName); string newFileName = System.Guid.NewGuid().ToString(); var path = Path.Combine(Path.GetDirectoryName(Server.MapPath("~")) + "\\Attachments", newFileName + fileExtension); file.SaveAs(path); // save attachment to database IAttachmentsRepository attachmentsRepository = new AttachmentsRepository(db); Attachment attachment = new Attachment(); attachment.Name = originalFileName; attachment.Filename = newFileName; attachment.Extension = fileExtension; attachment.ContentType = "text/plain"; attachmentsRepository.Add(attachment); attachmentsRepository.SaveChanges(sessionToken); int attachmentFK = attachment.AttachmentPK; // save attachment to work done attachments IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db); WorkDoneAttachment workDoneAttachment = new WorkDoneAttachment(); workDoneAttachment.AttachmentFK = attachmentFK; workDoneAttachment.WorkDoneFK = workDoneFK; workDoneAttachmentsRepository.Add(workDoneAttachment); workDoneAttachmentsRepository.SaveChanges(sessionToken); } } return(RedirectToAction("Index", "WorkDone")); } else { //to do list ddl IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); workDoneView.ToDoLists = new SelectList(toDoListsRepository.GetValid().OrderBy("Name ASC").ToList(), "ToDoListPK", "Name"); //legalEntities ddl ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); workDoneView.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").ToList(), "LegalEntityPK", "Name"); //service type ddl IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); workDoneView.ServiceTypes = new SelectList(serviceTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "ServiceTypePK", "Name"); //Work done ddl IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); workDoneView.WorkTypes = new SelectList(workTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkTypePK", "Name"); //worksubtypes ddl if (!String.IsNullOrWhiteSpace(form["WorkTypeFK"])) { IWorkSubtypesRepository workSubtypesRepository = new WorkSubtypesRepository(db); workDoneView.WorkSubtypes = new SelectList(workSubtypesRepository.GetValidByWorkType(Convert.ToInt32(form["WorkTypeFK"])), "WorkSubtypePK", "Name", form["WorkSubtypeFK"]); } else { workDoneView.WorkSubtypes = new SelectList(new List <County>(), "WorkSubtypePK", "Name"); } //hours and minutes ddl workDoneView.Hours = GeneratorView.GenerateHours(); workDoneView.Minutes = GeneratorView.GenerateMinutes(); return(View(workDoneView)); } }
public ActionResult Index() { IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db); WorkDoneView workDoneView = new WorkDoneView(); IContractsRepository contractsRepository = new ContractsRepository(db); ILegalEntityBranchesRepository legalEntityBranchesRepository = new LegalEntityBranchesRepository(db); IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); IWorkSubtypesRepository workSubtypesRepository = new WorkSubtypesRepository(db); IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); IUsersRepository usersRepository = new UsersRepository(db); ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); int page = !String.IsNullOrWhiteSpace(Request.QueryString["page"]) ? Convert.ToInt32(Request.QueryString["page"]) : 1; int pageSize = !String.IsNullOrWhiteSpace(Request.QueryString["pageSize"]) ? Convert.ToInt32(Request.QueryString["pageSize"]) : Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["ResultsPerPage"]); string sortOrder = !String.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC"; string sortColumn = !String.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "WorkDonePK"; string ordering = sortColumn + " " + sortOrder; ordering = ordering.Trim(); IQueryable <WorkDoneView> workDones = WorkDoneView.GetWorkDoneView(workDonesRepository.GetValid(), toDoListsRepository.GetValid(), workDoneAttachmentsRepository.GetValid(), legalEntitiesRepository.GetValidLegalEntities(), workTypesRepository.GetValid(), workSubtypesRepository.GetValid(), serviceTypesRepository.GetValid(), usersRepository.GetValid()) .OrderBy(ordering); //grid filters ddl ViewBag.ToDoLists = new SelectList(toDoListsRepository.GetValid().OrderBy("Name ASC").ToList(), "ToDoListPK", "Name", Request.QueryString["toDoListFK"]); ViewBag.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").OrderBy("name").ToList(), "LegalEntityPK", "Name", Request.QueryString["legalEntityFK"]); ViewBag.WorkTypes = new SelectList(workTypesRepository.GetValid().OrderBy("name").OrderBy("Name ASC").ToList(), "WorkTypePK", "Name", Request.QueryString["workTypeFK"]); if (!String.IsNullOrWhiteSpace(Request.QueryString["workTypeFK"])) { int workTypeFK = Convert.ToInt32(Request.QueryString["workTypeFK"]); ViewBag.WorkSubtypes = new SelectList(workSubtypesRepository.GetValidByWorkType(workTypeFK).OrderBy("name").ToList(), "WorkSubtypePK", "Name", Request.QueryString["workSubtypeFK"]); } else { ViewBag.WorkSubtypes = new SelectList(new List <County>(), "WorkSubtypePK", "Name"); } ViewBag.Users = new SelectList(usersRepository.GetValid().OrderBy("username").ToList(), "UserPK", "Username", Request.QueryString["userFK"]); // search construct if (!String.IsNullOrWhiteSpace(Request.QueryString["searchString"])) { string searchString = Request.QueryString["searchString"].ToString(); workDones = workDones.Where(c => c.Description.Contains(searchString) || c.Comment.Contains(searchString)); } if (!String.IsNullOrWhiteSpace(Request.QueryString["createdWithToDo"])) { bool createdWithToDo = Convert.ToBoolean(Request.QueryString["createdWithToDo"]); workDones = workDones.Where(c => c.CreatedWithToDo == createdWithToDo); } else { workDones = workDones.Where(c => c.Description != null && c.WorkTypeName != null && c.WorkSubtypeName != null && c.ServiceTypeName != null && c.TimeSpent != null); } if (!String.IsNullOrWhiteSpace(Request.QueryString["toDoListFK"])) { int toDoListFK = Convert.ToInt32(Request.QueryString["toDoListFK"]); workDones = workDones.Where(c => c.ToDoListFK == toDoListFK); } if (!String.IsNullOrWhiteSpace(Request.QueryString["legalEntityFK"])) { int legalEntityFK = Convert.ToInt32(Request.QueryString["legalEntityFK"]); workDones = workDones.Where(c => c.LegalEntityFK == legalEntityFK); } if (!String.IsNullOrWhiteSpace(Request.QueryString["workTypeFK"])) { int workTypeFK = Convert.ToInt32(Request.QueryString["workTypeFK"]); workDones = workDones.Where(c => c.WorkTypeFK == workTypeFK); } if (!String.IsNullOrWhiteSpace(Request.QueryString["workSubtypeFK"])) { int workSubtypeFK = Convert.ToInt32(Request.QueryString["workSubtypeFK"]); workDones = workDones.Where(c => c.WorkSubtypeFK == workSubtypeFK); } if (!String.IsNullOrWhiteSpace(Request.QueryString["userFK"])) { int userFK = Convert.ToInt32(Request.QueryString["userFK"]); workDones = workDones.Where(c => c.UserFK == userFK); } if (!String.IsNullOrWhiteSpace(Request.QueryString["date"])) { DateTime Date = DateTime.ParseExact(Request.QueryString["date"], "dd.MM.yyyy.", null); workDones = workDones.Where(c => c.Date == Date); } workDones = workDones.Page(page, pageSize); ViewData["numberOfRecords"] = workDones.Count(); int numberOfPages = ((int)ViewData["numberOfRecords"] + pageSize - 1) / pageSize; if (page > numberOfPages) { string url = LinkHelper.getQueryStringArray(new string[] { "page" }); return(Redirect("WorkDone?" + url + "page=" + numberOfPages)); } else { return(View("Index", workDones.ToList())); } }
public ActionResult WorkDoneExportToExcel( int?toDoListFK, int?legalEntityFK, int?workTypeFK, int?workSubtypeFK, int?serviceTypeFK, int?userFK, string dateFrom, string dateTo, int?timeSpentFrom, int?timeSpentTo, int?numberOfAttachmentsFrom, int?numberOfAttachmentsTo, string description, bool ShowBasicInfo, bool ShowOrdinal, bool ShowID, bool ShowToDoList, bool ShowLegalEntity, bool ShowWorkType, bool ShowWorkSubtype, bool ShowServiceType, bool ShowDate, bool ShowUsername, bool ShowDescription, bool ShowTimeSpent, bool ShowComment, bool ShowAttachments) { IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db); WorkDoneView workDoneView = new WorkDoneView(); IContractsRepository contractsRepository = new ContractsRepository(db); ILegalEntityBranchesRepository legalEntityBranchesRepository = new LegalEntityBranchesRepository(db); IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); IWorkSubtypesRepository workSubtypesRepository = new WorkSubtypesRepository(db); IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); IUsersRepository usersRepository = new UsersRepository(db); string sortOrder = !string.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC"; string sortColumn = !string.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "WorkDonePK"; string ordering = sortColumn + " " + sortOrder; ordering = ordering.Trim(); if (legalEntityFK != null) { ViewBag.LegalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name; } if (toDoListFK != null) { ViewBag.ToDoList = toDoListsRepository.GetToDoListByPK((int)toDoListFK).Name; } if (workTypeFK != null) { ViewBag.WorkType = workTypesRepository.GetWorkTypeByPK((int)workTypeFK).Name; } if (workSubtypeFK != null) { ViewBag.WorkSubtype = workSubtypesRepository.GetWorkSubtypeByPK((int)workSubtypeFK).Name; } if (userFK != null) { ViewBag.User = usersRepository.GetUserByUserID((int)userFK).Username; } DateTime?dateFromTime = null; DateTime?dateToTime = null; if (dateFrom != null && dateFrom != "") { dateFromTime = DateTime.ParseExact(dateFrom, "dd.MM.yyyy.", null); } if (dateTo != null && dateTo != "") { dateToTime = DateTime.ParseExact(dateTo, "dd.MM.yyyy.", null); } // Applying filters IQueryable <WorkDone> workDonesFiltered = WorkDoneView.GetWorkDonesReport(db, toDoListFK, legalEntityFK, workTypeFK, workSubtypeFK, serviceTypeFK, userFK, dateFromTime, dateToTime, timeSpentFrom, timeSpentTo, numberOfAttachmentsFrom, numberOfAttachmentsTo, description); IQueryable <WorkDoneView> workDones = WorkDoneView.GetWorkDoneView(workDonesFiltered, toDoListsRepository.GetValid(), workDoneAttachmentsRepository.GetValid(), legalEntitiesRepository.GetValidLegalEntities(), workTypesRepository.GetValid(), workSubtypesRepository.GetValid(), serviceTypesRepository.GetValid(), usersRepository.GetValid()) .OrderBy(ordering); var workDonesList = workDones.ToList(); var columns = new Dictionary <string, int>(); var ms = new MemoryStream(); using (var package = new ExcelPackage(ms)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Izvršeni posao"); var columnPosition = 1; Action <bool, string> setColumnHeader = (columnVisible, columnName) => { if (columnVisible) { worksheet.Cells[1, columnPosition].Value = columnName; worksheet.Cells[1, columnPosition].Style.Font.Bold = true; columns.Add(columnName, columnPosition++); } }; setColumnHeader(ShowOrdinal, "#"); setColumnHeader(ShowID, "ID"); setColumnHeader(ShowToDoList, "Obaveza"); setColumnHeader(ShowLegalEntity, "Tvrtka"); setColumnHeader(ShowWorkType, "Vrsta rada"); setColumnHeader(ShowWorkSubtype, "Vrsta posla"); setColumnHeader(ShowServiceType, "Vrsta usluge"); setColumnHeader(ShowDate, "Datum izvršenja"); setColumnHeader(ShowUsername, "Korisnik"); setColumnHeader(ShowDescription, "Opis"); setColumnHeader(ShowTimeSpent, "Utrošeno vrijeme"); setColumnHeader(ShowComment, "Važna napomena"); setColumnHeader(ShowAttachments, "Prilozi"); Action <int, bool, string, object> setRowValue = (ri, columnVisible, columnName, value) => { if (columnVisible) { worksheet.Cells[ri, columns[columnName]].Value = value; } }; var rowIndex = 2; foreach (var item in workDonesList) { setRowValue(rowIndex, ShowOrdinal, "#", rowIndex - 1); setRowValue(rowIndex, ShowID, "ID", item.WorkDonePK); setRowValue(rowIndex, ShowToDoList, "Obaveza", item.ToDoListName); setRowValue(rowIndex, ShowLegalEntity, "Tvrtka", item.LegalEntityName); setRowValue(rowIndex, ShowWorkType, "Vrsta rada", item.WorkTypeName); setRowValue(rowIndex, ShowWorkSubtype, "Vrsta posla", item.WorkSubtypeName); setRowValue(rowIndex, ShowServiceType, "Vrsta usluge", item.ServiceTypeName); setRowValue(rowIndex, ShowDate, "Datum izvršenja", item.Date?.ToString("dd.MM.yyyy.")); setRowValue(rowIndex, ShowUsername, "Korisnik", item.UserUsername); setRowValue(rowIndex, ShowDescription, "Opis", item.Description); setRowValue(rowIndex, ShowTimeSpent, "Utrošeno vrijeme", LinkHelper.calculateTimeSpent(item.TimeSpent)); setRowValue(rowIndex, ShowComment, "Važna napomena", item.Comment); setRowValue(rowIndex, ShowAttachments, "Prilozi", item.WorkDoneAttachmentsCount); rowIndex++; } worksheet.Calculate(); worksheet.Cells.AutoFitColumns(0); package.Save(); } ms.Seek(0, SeekOrigin.Begin); return(new FileStreamResult(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"Izvršeni posao {DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss")}.xlsx" }); }
public ActionResult WorkDone(int?toDoListFK, int?legalEntityFK, int?workTypeFK, int?workSubtypeFK, int?serviceTypeFK, int?userFK, string dateFrom, string dateTo, int?timeSpentFrom, int?timeSpentTo, int?numberOfAttachmentsFrom, int?numberOfAttachmentsTo, string description) { IWorkDonesRepository workDonesRepository = new WorkDonesRepository(db); IWorkDoneAttachmentsRepository workDoneAttachmentsRepository = new WorkDoneAttachmentsRepository(db); WorkDoneView workDoneView = new WorkDoneView(); IContractsRepository contractsRepository = new ContractsRepository(db); ILegalEntityBranchesRepository legalEntityBranchesRepository = new LegalEntityBranchesRepository(db); IToDoListsRepository toDoListsRepository = new ToDoListsRepository(db); ILegalEntitiesRepository legalEntitiesRepository = new LegalEntitiesRepository(db); IWorkTypesRepository workTypesRepository = new WorkTypesRepository(db); IWorkSubtypesRepository workSubtypesRepository = new WorkSubtypesRepository(db); IServiceTypesRepository serviceTypesRepository = new ServiceTypesRepository(db); IUsersRepository usersRepository = new UsersRepository(db); string sortOrder = !string.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC"; string sortColumn = !string.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "WorkDonePK"; string ordering = sortColumn + " " + sortOrder; ordering = ordering.Trim(); //grid filters ddl ViewBag.ToDoLists = new SelectList(toDoListsRepository.GetValid().OrderBy("Name ASC").ToList(), "ToDoListPK", "Name", toDoListFK); ViewBag.LegalEntities = new SelectList(legalEntitiesRepository.GetValidLegalEntities().OrderBy("Name ASC").ToList(), "LegalEntityPK", "Name", legalEntityFK); ViewBag.WorkTypes = new SelectList(workTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkTypePK", "Name", workTypeFK); ViewBag.WorkSubtypes = new SelectList(workSubtypesRepository.GetValid().OrderBy("Name ASC").ToList(), "WorkSubtypePK", "Name", workSubtypeFK); ViewBag.ServiceTypes = new SelectList(serviceTypesRepository.GetValid().OrderBy("Name ASC").ToList(), "ServiceTypePK", "Name", serviceTypeFK); ViewBag.Users = new SelectList(usersRepository.GetValid().OrderBy("Username ASC").ToList(), "UserPK", "Username", userFK); if (legalEntityFK != null) { ViewBag.LegalEntity = legalEntitiesRepository.GetLegalEntityByPK((int)legalEntityFK).Name; } if (toDoListFK != null) { ViewBag.ToDoList = toDoListsRepository.GetToDoListByPK((int)toDoListFK).Name; } if (workTypeFK != null) { ViewBag.WorkType = workTypesRepository.GetWorkTypeByPK((int)workTypeFK).Name; } if (workSubtypeFK != null) { ViewBag.WorkSubtype = workSubtypesRepository.GetWorkSubtypeByPK((int)workSubtypeFK).Name; } if (userFK != null) { ViewBag.User = usersRepository.GetUserByUserID((int)userFK).Username; } DateTime?dateFromTime = null; DateTime?dateToTime = null; if (dateFrom != null && dateFrom != "") { dateFromTime = DateTime.ParseExact(dateFrom, "dd.MM.yyyy.", null); } if (dateTo != null && dateTo != "") { dateToTime = DateTime.ParseExact(dateTo, "dd.MM.yyyy.", null); } // Applying filters IQueryable <WorkDone> workDonesFiltered = WorkDoneView.GetWorkDonesReport(db, toDoListFK, legalEntityFK, workTypeFK, workSubtypeFK, serviceTypeFK, userFK, dateFromTime, dateToTime, timeSpentFrom, timeSpentTo, numberOfAttachmentsFrom, numberOfAttachmentsTo, description); IQueryable <WorkDoneView> workDones = WorkDoneView.GetWorkDoneView(workDonesFiltered, toDoListsRepository.GetValid(), workDoneAttachmentsRepository.GetValid(), legalEntitiesRepository.GetValidLegalEntities(), workTypesRepository.GetValid(), workSubtypesRepository.GetValid(), serviceTypesRepository.GetValid(), usersRepository.GetValid()) .OrderBy(ordering); // Excluding temporary deleted items from view workDonesPKPKsToExclude = new List <int>(); // Empty session on first request if (Request.QueryString.Count == 0) { Session["workDonesPKPKsToExclude"] = null; } if (Session["workDonesPKPKsToExclude"] != null) { workDonesPKPKsToExclude = (List <int>)Session["workDonesPKPKsToExclude"]; workDones = workDones.Where(c => !workDonesPKPKsToExclude.Contains(c.WorkDonePK)); } return(View("WorkDone", workDones.ToList())); }