private void ButtonDashboard_Click(object sender, RoutedEventArgs e) { TextblockPanelName.Text = "Dashboard"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); List <Resource> recs = ResourceCache.GetInstance().Resources; recs = ResourceCache.GetInstance().UpdateAllQSizes(); recs = recs.OrderByDescending(r => r.QSize).ToList <Resource>(); var emps = EmployeeCache.GetInstance().Employees; emps = EmployeeCache.GetInstance().UpdateAllQSizes(); emps = emps.OrderByDescending(e => e.QSize).ToList <Employee>(); DataContext = new DashboardViewModel { Resources = new ObservableCollection <Resource>(recs), SelectedResource = recs[0], Employees = new ObservableCollection <Employee>(emps), SelectedEmployee = emps[0] }; }
private void ProjectViewNewProjectClickHandler(ProjectsViewModel viewModel) { TextblockPanelName.Text = "Create New Project"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); var resources = ResourceCache.GetInstance().Resources; resources = ResourceCache.GetInstance().UpdateAllQSizes(); DataContext = new AddEditProjectViewModel { Project = new Project { Id = 0, Processes = new List <Process>(), StartDate = DateTimeOffset.UtcNow, PoDate = DateTimeOffset.UtcNow, Quantity = 1, OrderStatus = Project.ProjectOrderStatus.WaitingQuote, }, BackClickedHandler = AddEditProjectViewBackClickHandler, Customers = CustomerCache.GetInstance().Customers, Processes = new ObservableCollection <Process>(new List <Process>()), Resources = resources.OrderByDescending(r => r.QSize).ToList <Resource>(), Employees = EmployeeCache.GetInstance().Employees }; }
private void ButtonManageProjects_Click(object sender, RoutedEventArgs e) { TextblockPanelName.Text = "Manage Projects"; DataContext = new ProjectsViewModel { ProjectsToDisplay = new ObservableCollection <Project>(ProjectCache.GetInstance().Projects), NewProjectClickHandler = ProjectViewNewProjectClickHandler, ProjectOpenClickHandler = ProjectViewOpenProectClickHandler }; }
/// <summary> /// Get project by name /// </summary> /// <param name="name">name of project</param> /// <returns>default project if empty string, new project object if new project name, existing project if already there</returns> public Project GetProject(string name) { Project project = ProjectCache.GetInstance().GetProjectByName(name); if (project == null) { project = new Project(); project.ID = -1; project.Name = name; } return(project); }
public Project SyncProject(Project p) { if (ProjectCache.GetInstance().GetProjectById(p.ID) == null) { InsertNewProject(p); } else { ProjectCache.GetInstance().UpdateProject(p); } return(GetProject(p.Name)); }
public List <Project> RetrieveAllProjects() { if (ProjectCache.GetInstance().GetProjectByName(string.Empty) == null) { Project noProject = new Project(); noProject.Name = string.Empty; noProject.Status = Project.ProjectStatus.InProgress; noProject.StartDate = new DateTime(2000, 1, 1); noProject.EndDate = new DateTime(2099, 1, 1); noProject.Comment = string.Empty; ProjectCache.GetInstance().InsertProject(noProject); } return(ProjectCache.GetInstance().Projects); }
public void DeleteProject(int p) { TransactionManager tm = new TransactionManager(); //find all transactions under the project to be deleted List <Transaction> transactions = tm.GetTransactionsByProjectId(p); //replace the project of all the above transactions with the default project foreach (Transaction t in transactions) { t.ParentProject = GetProject(string.Empty); tm.SyncTransaction(t); } //now delete the project from db and cache ProjectCache.GetInstance().DeleteProject(p); }
internal void Refresh() { var projectId = Project?.Id; EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); Resources = ResourceCache.GetInstance().Resources; Resources = ResourceCache.GetInstance().UpdateAllQSizes(); Employees = EmployeeCache.GetInstance().Employees; if (projectId.Value > 0) { Project = ProjectCache.GetInstance().GetById(projectId.Value); Processes = new ObservableCollection <Process>(Project.Processes); } }
private void ProjectViewOpenProectClickHandler(ProjectsViewModel viewModel) { TextblockPanelName.Text = "Project Details"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); var resources = ResourceCache.GetInstance().Resources; resources = ResourceCache.GetInstance().UpdateAllQSizes(); DataContext = new AddEditProjectViewModel { Project = viewModel.SelectedProject, BackClickedHandler = AddEditProjectViewBackClickHandler, Customers = CustomerCache.GetInstance().Customers, Processes = new ObservableCollection <Process>(viewModel.SelectedProject.Processes), Resources = resources.OrderByDescending(r => r.QSize).ToList <Resource>(), Employees = EmployeeCache.GetInstance().Employees }; }
public Project GetProject(int id) { return(ProjectCache.GetInstance().GetProjectById(id)); }
private void InsertNewProject(Project p) { ProjectCache.GetInstance().InsertProject(p); }
internal void RefreshCache() { ProjectCache.GetInstance().Clear(); ProjectCache.GetInstance(); }
private void SaveClickHandler() { try { if (Project?.Customer == null) { MessageBox.Show("Please select a customer!", "Incomplete Data", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (!DeadlineDisplay.HasValue) { MessageBox.Show("Please enter a deadline date for this project!", "Incomplete Data", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } foreach (var process in Processes) { if (!double.TryParse(process.DurationHours, out double result)) { MessageBox.Show("Enter a valid duration for the process " + process.Name, "Incomplete Data", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (process.ExecutingEmployee == null) { MessageBox.Show("Select an employee for the process " + process.Name, "Incomplete Data", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (process.ExecutingResource == null) { MessageBox.Show("Select a resource for the process " + process.Name, "Incomplete Data", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } } if (Project.Id == 0) { Project = ProjectCache.GetInstance().Insert(Project); } else { ProjectCache.GetInstance().Update(Project); } var projectId = Project.Id; foreach (var process in Processes) { process.ProjectId = projectId; if (process.Id == 0) { _ = ProcessCache.GetInstance().Insert(process); } else { ProcessCache.GetInstance().Update(process); } } CommonFunctions.UpdateQs(); BackClickedHandler?.Invoke(this); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }