Beispiel #1
0
        private void FillBlocksProxyWithTasks(IEnumerable <TaskEntity> tasks, bool FilterNullTasks = true)
        {
            BlockProxies.Clear();
            foreach (Block block in AllBlocksFromTimeSheet)
            {
                bool BlockAdded = false;

                foreach (TaskEntity task in tasks)
                {
                    if (!FilterNullTasks || FilterNullTasks && task.ParentTask == null)
                    {
                        foreach (ProcessProxy processProxy in task.Processes)
                        {
                            Process process = AllProcessesFromTimeSheet.FirstOrDefault(i => i.id == processProxy.ProcessId);
                            if (process.Block_id == block.Id)
                            {
                                if (!BlockAdded)
                                {
                                    BlockProxies.Add(new BlockProxy
                                    {
                                        BlockId    = block.Id,
                                        BlockName  = block.BlockName,
                                        ChildTasks = new List <TaskEntity>()
                                    });
                                }
                                BlockAdded = true;
                                BlockProxies[BlockProxies.Count - 1].ChildTasks.Add(task);
                                break;
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void SelectBlockMethod(BlockProxy selectedBlock)
        {
            ChangeShownTask(SelectedTabTag);
            List <TaskEntity> exportValues = new List <TaskEntity>();

            foreach (TaskEntity task in _nullTask.ChildTasks)
            {
                foreach (ProcessProxy process in task.Processes)
                {
                    Process timeSheetProcess = AllProcessesFromTimeSheet.FirstOrDefault(i => i.id == process.ProcessId);
                    if (timeSheetProcess.Block_id == selectedBlock.BlockId)
                    {
                        exportValues.Add(task);
                        break;
                    }
                }
            }
            FillNullTask(exportValues);
            IsBlockSelectionActive = false;
        }
Beispiel #3
0
        private void EditTask(TaskEntity editedTask)
        {
            CurrentlyEditedTask = editedTask;
            if (CurrentlyEditedTask.ParentTask == null)
            {
                CurrentlyEditedTask.ParentTask = _nullTask;
            }
            NewTaskWindow taskWindow = new NewTaskWindow();

            taskWindow.Assignee.Visibility       = Visibility.Collapsed;
            taskWindow.AssigneeSingle.Visibility = Visibility.Visible;
            List <ProcessProxy> oldProcesses = new List <ProcessProxy>(CurrentlyEditedTask.Processes);

            AddedTaskAssigneeFIO = CurrentlyEditedTask.Assignee.Name;
            AddedTaskReporterFIO = CurrentlyEditedTask.Reporter?.Name;
            RaisePropertyChanged(nameof(AddedTaskAssigneeFIO));
            RaisePropertyChanged(nameof(AddedTaskReporterFIO));
            taskWindow.Reporter.IgnoreTextChange       = false;
            taskWindow.AssigneeSingle.IgnoreTextChange = false;

            taskWindow.Processes.SelectedItemsOverride.Clear();
            foreach (ProcessProxy process in CurrentlyEditedTask.Processes)
            {
                AddFormSelectedProcesses.Add(AllProcessesFromTimeSheet.FirstOrDefault(proc => proc.id == process.ProcessId));
            }
            if (taskWindow.ShowDialog() == true)
            {
                if (CurrentlyEditedTask.ParentTask == _nullTask)
                {
                    CurrentlyEditedTask.ParentTask = null;
                }
                else if (_nullTask.ChildTasks.Contains(CurrentlyEditedTask))
                {
                    _nullTask.ChildTasks.Remove(CurrentlyEditedTask);
                    RaisePropertyChanged(nameof(CurrentlyEditedTask.ParentTask));
                }

                if (_taskContext.Employees.Any(i => i.Name.Equals(AddedTaskAssigneeFIO)))
                {
                    CurrentlyEditedTask.Assignee = _taskContext.Employees.FirstOrDefault(i => i.Name.Equals(AddedTaskAssigneeFIO));
                }
                else
                {
                    CurrentlyEditedTask.Assignee = GetEmployeeByName(AddedTaskAssigneeFIO);
                }

                if (_taskContext.Employees.Any(i => i.Name.Equals(AddedTaskReporterFIO)))
                {
                    CurrentlyEditedTask.Reporter = _taskContext.Employees.FirstOrDefault(i => i.Name.Equals(AddedTaskReporterFIO));
                }
                else
                {
                    CurrentlyEditedTask.Reporter = GetEmployeeByName(AddedTaskReporterFIO);
                }

                foreach (ProcessProxy process in oldProcesses)
                {
                    _taskContext.Processes.Remove(process);
                }
                CurrentlyEditedTask.Processes = AddFormSelectedProcesses.Select(proc => new ProcessProxy {
                    ProcessId = proc.id
                }).ToList();
                _taskContext.SaveChanges();
            }
            RaisePropertyChanged(nameof(SelectedTask));
            taskWindow.Assignee.Visibility       = Visibility.Visible;
            taskWindow.AssigneeSingle.Visibility = Visibility.Collapsed;
            AddFormSelectedProcesses.Clear();
        }