private SelectedTask CreateSelectedTask(decimal noiseLevelMeasured, Task task)
        {
            var selectedTask = new SelectedTask
            {
                Title             = task.Title,
                Role              = task.Role.Title,
                NoiseProtection   = task.NoiseProtection.Title,
                Task              = task,
                CreatedBy         = string.IsNullOrEmpty(User.Identity.Name) ? Session.SessionID : User.Identity.Name,
                CreatedDate       = DateTime.Now.Date,
                NoiseProtectionId = task.NoiseProtection.Id
            };

            if (noiseLevelMeasured > task.NoiseLevelGuideline)
            {
                selectedTask.NoiseLevel       = noiseLevelMeasured;
                selectedTask.IsNoiseMeassured = true;
            }
            else
            {
                selectedTask.NoiseLevel       = task.NoiseLevelGuideline;
                selectedTask.IsNoiseMeassured = false;
            }

            return(selectedTask);
        }
        private void ViewTask()
        {
            SelectedTaskDraft = SelectedTask.Copy();

            SelectedTaskDraftIsNew = false;

            Messenger.Default.Send(new ViewTaskMessage());
        }
Beispiel #3
0
 protected override void OnItemActivate(EventArgs e)
 {
     if (this.FocusedItem != null)
     {
         System.Diagnostics.Debug.Assert(SelectedTask != null);
         SelectedTask.JumpToPosition();
     }
     base.OnItemActivate(e);
 }
        public override void OnEnter()
        {
            if (Settings.IsOfflineMode)
            {
                MessageBox.Show("Dit scherm is niet beschikbaar in offline mode.");

                _router.GoBack();
                return;
            }

            if (_isEditing)
            {
                _isEditing = false;
                return;
            }

            if (ViewBag?.Task != null)
            {
                SelectedTask = ViewBag.Task;
            }
            else
            {
                SelectedTask = new Task
                {
                    Inspections   = new List <Inspection>(),
                    TaskSchedules = new List <TaskSchedule>(),
                    DateTimeStart = DateTime.Today,
                    Hash          = MD5.Crypt($"{DateTime.Now.ToLongDateString()}-{SelectedTask?.GetHashCode()}")
                };

                EndDate          = DateTime.Today.AddDays(1);
                IsRepeating      = false;
                CanEditStartDate = true;
            }

            if (SelectedTask.Remarks == null)
            {
                SelectedTask.Remarks = "";
            }

            SelectedTask.TaskSchedules.ToList().ForEach(t => TaskSchedules.Add(t));

            Customers.Clear();
            ParkingLots.Clear();
            Checklists.Clear();

            StartDate = DateTime.Today;
            EndDate   = DateTime.Today.AddDays(1);

            _customerRepository.All().ForEach(Customers.Add);
            _checklistRepository.All().ForEach(Checklists.Add);
            _parkingLotRepository.All().ForEach(ParkingLots.Add);

            CalculateInspectionDates();
            SelectFirstComboBoxItem();
        }
Beispiel #5
0
        private void DrawInstructions()  // Отрисовка инструкций к текущему заданию
        {
            //Instructions.Clear();
            string instructions = SelectedTask
                                  .Element("description")
                                  .Value.Trim('\n', '\t');

            Instructions = ParseToStackPanel(instructions);
            //Instructions = .Add( instructions );
        }
Beispiel #6
0
 private void MarkSelectedTaskCompleted(bool value)
 {
     if (SelectedTask == null)
     {
         return;
     }
     SelectedTask.SetIsCompleted(value);
     ParentVM.AnyChangeHappened = true;
     NotifyAll();
 }
Beispiel #7
0
        public QuizEditorViewModel(IDialogService dialogService, IFileService fileService)
        {
            _dialogService = dialogService;
            _fileService   = fileService;

            NewCommand              = new Command(obj => CreateQuiz());
            OpenCommand             = new Command(obj => OpenQuiz());
            SaveCommand             = new Command(obj => SaveQuiz(), obj => CurrentQuiz != null);
            EditCommand             = new Command(obj => new SettingsWindow(CurrentQuiz).Show(), obj => CurrentQuiz != null);
            AddTaskCommand          = new Command(obj => CreateAndAddTask(obj as ICreatorTask), obj => CurrentQuiz != null);
            RemoveTaskCommand       = new Command(obj => CurrentQuiz.Tasks.Remove(SelectedTask), obj => SelectedTask != null);
            AddGradePointCommand    = new Command(obj => CurrentQuiz.AddNewGradePoint(), obj => CurrentQuiz != null);
            RemoveGradePointCommand = new Command(obj => CurrentQuiz.GradePoints.Remove(SelectedGradePoint), obj => SelectedGradePoint != null);
            AddAnswerCommand        = new Command(obj => SelectedTask.AddNewAnswer(), obj => SelectedTask != null);
            RemoveAnswerCommand     = new Command(obj => SelectedTask.RemoveAnswer(SelectedAnswer), obj => SelectedAnswer != null);
            CloseCommand            = new Command(obj => Close());
            MinimizeCommand         = new Command(obj => MinimizeAction());
            MaximizeCommand         = new Command(obj => MaximizeAction());
        }
        public SelectedTaskViewModel(SelectedTask selectedTask)
        {
            Id              = selectedTask.Id;
            Title           = selectedTask.Title;
            Role            = selectedTask.Role;
            NoiseProtection = selectedTask.NoiseProtection;
            TaskId          = selectedTask.Task.Id;
            Percentage      = selectedTask.Percentage.ToString();
            Hours           = selectedTask.Hours.ToString();
            Minutes         = selectedTask.Minutes.ToString();
            RoleType        = selectedTask.Task.Role.RoleType.ToString();
            ButtonPressed   = selectedTask.ButtonPressed.ToString();
            BackgroundNoise = selectedTask.BackgroundNoise.ToString();

            if (selectedTask.BackgroundNoise == 0)
            {
                BackgroundNoise = "<80";
            }

            if (selectedTask.HelicopterTaskId > 0)
            {
                NoiseLevel = TaskResources.SelectedTaskNoiseLevelNotApplicable;
            }
            else
            {
                var noiseLevelGuideLine = selectedTask.NoiseLevel.ToString(CultureInfo.InvariantCulture);

                if (noiseLevelGuideLine.IndexOf(".", System.StringComparison.Ordinal) > 0)
                {
                    noiseLevelGuideLine = noiseLevelGuideLine.Substring(0, noiseLevelGuideLine.IndexOf(".", System.StringComparison.Ordinal));
                }


                if (selectedTask.IsNoiseMeassured)
                {
                    NoiseLevel = string.Format("{0} dBA {1}", noiseLevelGuideLine, TaskResources.SelectedTaskNoiseMeasured);
                }
                else
                {
                    NoiseLevel = string.Format("{0} dBA", noiseLevelGuideLine);
                }
            }
        }
Beispiel #9
0
        public bool Save(string FileName)
        {
            if (!AnyTaskSelected || FileName == null)
            {
                return(false);
            }

            XDocument doc = new XDocument(new XElement("task", SelectedTask.Attribute("number"),
                                                       new XElement("table", DataTable
                                                                    .Skip(1)
                                                                    .Select(i =>
                                                                            new XElement("row", i
                                                                                         .Select(j =>
                                                                                                 new XElement("cell", new XAttribute("value", j.Text))
                                                                                                 ))))));

            doc.Save(FileName);
            return(true);
        }
Beispiel #10
0
        public void Add(string name, Category category)
        {
            Models.Task newTask = new Models.Task(name, category);
            Models.Task parent  = null;
            if (SelectedTask != null)
            {
                parent = SelectedTask;
            }
            if (parent == null)
            {
                ParentVM.File.Tasks.Add(newTask);
            }
            else
            {
                SelectedTask.AddChild(newTask);
            }
            newTask.SetIsCompleted(false);

            onChangeHappened();
        }
Beispiel #11
0
        public TaskMainViewModel(IEventAggregator eventAggregator,
                                 IReportingService reportingService,
                                 ITaskService taskService)
            : base()
        {
            _eventAggregator  = eventAggregator;
            _reportingService = reportingService;
            _showAssigned     = false;
            _showComplete     = false;
            _taskService      = taskService;

            _eventAggregator.GetEvent <TaskListUpdateRequested>().Subscribe(() => RaisePropertyChanged("TaskList"));

            _eventAggregator.GetEvent <TaskCompleted>().Subscribe(
                task =>
            {
                RaisePropertyChanged("TaskList");
            });

            NewTaskCommand = new DelegateCommand(
                () =>
            {
                _taskService.CreateNewTask();
            },
                () => CanCreateTask);

            PrintTaskListCommand = new DelegateCommand <DataGrid>(
                grid =>
            {
                _reportingService.PrintTaskList(grid.ItemsSource as IEnumerable <Task>);
            });

            RemoveTaskCommand = new DelegateCommand(
                () =>
            {
                SelectedTask.Delete();
                SelectedTask = null;
                RaisePropertyChanged("TaskList");
            },
                () => CanDeleteTask);
        }
 private void tree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
 {
     try
     {
         jira_copy.IsEnabled = true;
         string   selectedString = ((TreeViewItem)e.NewValue).Header.ToString();
         string[] starr          = selectedString.Split('-');
         SelectedTask         = taskFinder(Convert.ToInt32(starr[0]));
         taskNameBox.Text     = SelectedTask.task_name;
         label_status.Content = "Task Status: " + SelectedTask.getStatusName();
         inJira_chBox_Handle();
         categoryBox.Content = SelectedTask.category.name;
         spBox.Content       = "SP:" + SelectedTask.category.SP + " x " + SelectedTask.multiplier + " = " + (SelectedTask.category.SP * SelectedTask.multiplier);
         statusButtonRefresh();
         commentsBoxRefresh();
         subTaskButtonHandler();
         sbar_main_message.Text = "Selected task: " + selectedString;
         task_edit.IsEnabled    = true;
     }
     catch (NullReferenceException) { }
 }
Beispiel #13
0
        private void DrawSolutionLines()                            // Отрисовка строк решения из текущего задания
        {
            var externalSolutionLines = SelectedTask
                                        .Element("solution")
                                        .Descendants("line");

            SolutionLines.Clear();
            SolutionsNames.Clear();

            foreach (var line in externalSolutionLines)
            {
                StackPanel sp = new StackPanel()
                {
                    Orientation = Orientation.Horizontal, Margin = new Thickness(5)
                };
                foreach (var item in line.Descendants())
                {
                    if (item.Name == "text")
                    {
                        sp.Children.Add(ParseToStackPanel(item.Value));
                    }
                    else if (item.Name == "field")
                    {
                        TextBox tb = new TextBox()
                        {
                            Width = 60, VerticalAlignment = VerticalAlignment.Center
                        };
                        sp.Children.Add(tb);
                        if (item.Attribute("name") != null)
                        {
                            SolutionsNames.Add(item.Attribute("name").Value, tb);
                        }
                    }
                }
                SolutionLines.Add(sp);
            }
            checker = SelectedTask.Element("solution").Element("checker");
            ButtonCheckerVisibility = checker == null ? Visibility.Collapsed : Visibility.Visible;
        }
 private void statusButtonRefresh()
 {
     if (SelectedTask.status == 1)
     {
         reopen.IsEnabled  = false;
         active.IsEnabled  = true;
         resolve.IsEnabled = true;
     }
     else if (SelectedTask.status == 2)
     {
         reopen.IsEnabled  = true;
         active.IsEnabled  = false;
         resolve.IsEnabled = true;
     }
     else
     {
         reopen.IsEnabled  = true;
         active.IsEnabled  = true;
         resolve.IsEnabled = false;
     }
     label_status.Content = SelectedTask.getStatusName();
 }
Beispiel #15
0
        private void DrawDiagrams()  // Построение и отрисовка диаграм
        {
            Diagrams.Clear();

            var Xdiagrams = SelectedTask
                            .Element("diagrams");

            if (Xdiagrams == null)
            {
                ButtonDiagramsVisibility = Visibility.Collapsed;
                return;
            }

            var diagrams = Xdiagrams.
                           Descendants("diagram")
                           .Select(i => new
            {
                x = int.Parse(i.Element("x").Attribute("column").Value),
                y = int.Parse(i.Element("y").Attribute("column").Value),
            })
                           .ToArray();

            foreach (var diagram in diagrams)
            {
                if (diagram.x > DataTable.First().Count || diagram.y > DataTable.First().Count || diagram.x < 0 || diagram.y < 0)
                {
                    throw new XMLValidationException("Diagram value is bigger than length if the table or less than 0");
                }

                StackPanel spA = ParseToStackPanel(DataTable[0][diagram.x].Text);
                StackPanel spB = ParseToStackPanel(DataTable[0][diagram.y].Text);

                Diagram d = new Diagram(diagram.x, diagram.y, spA, spB);
                Diagrams.Add(d);
            }

            ButtonDiagramsVisibility = Diagrams.Count > 0 ? Visibility.Visible : Visibility.Collapsed;
            UpdateDiagrams();
        }
Beispiel #16
0
        private void DrawTaskTable()  // Отрисовка таблицы из текущего задания
        {
            var tableHeaders = SelectedTask
                               .Element("table")
                               .Descendants("column")
                               .Select(i => new
            {
                value = i.Value,
                ai    = i.Attribute("ai") == null ? false : i.Attribute("ai").Value == "true"                   // Автоинкремент
            })
                               .ToArray();

            int length;

            int.TryParse(SelectedTask.Element("table").Attribute("tests").Value, out length);

            DataTable.Clear();

            for (int i = 0; i < length + 1; i++)
            {
                ObservableCollection <TableCell> column = new ObservableCollection <TableCell>();

                for (int j = 0; j < tableHeaders.Count(); j++)
                {
                    var tableHeader = tableHeaders[j];
                    if (i == 0)
                    {
                        column.Add(new TableCell(tableHeader.value, ParseToStackPanel(tableHeader.value)));
                    }
                    else
                    {
                        column.Add(new TableCell(tableHeader.ai ? i.ToString() : ""));
                    }
                }

                DataTable.Add(column);
            }
        }
Beispiel #17
0
        public ActionResult AddTaskHelideck(HelideckViewModel viewModel)
        {
            var task = _taskDAO.Get(viewModel.TaskId);

            var validationViewModel = ValidateInput(viewModel);

            if (validationViewModel.ValidationErrors.Count > 0)
            {
                Response.StatusCode = 500;
                return(PartialView("_ValidationErrorSummary", validationViewModel));
            }

            var noiseProtection = _noiseProtectionDAO.Get(viewModel.NoiseProtectionId);
            var helicopterTask  = _helicopterTaskDAO.Get(viewModel.HelicopterId, task.Id);

            var selectedTask = new SelectedTask
            {
                NoiseLevel        = task.NoiseLevelGuideline,
                ButtonPressed     = task.ButtonPressed,
                NoiseProtectionId = viewModel.NoiseProtectionId,
                Title             = string.Format("{0} - {1}", task.Title, helicopterTask.HelicopterType.Title),
                Role             = task.Role.Title,
                NoiseProtection  = noiseProtection.Title,
                Percentage       = (int)CalculatePercentage(helicopterTask.NoiseLevel, task.ButtonPressed, 0, noiseProtection, new TimeSpan(0, 0, task.AllowedExposureMinutes, 0)),
                Minutes          = task.AllowedExposureMinutes,
                Task             = task,
                HelicopterTaskId = helicopterTask.Id,
                CreatedBy        = string.IsNullOrEmpty(User.Identity.Name) ? Session.SessionID : User.Identity.Name,
                CreatedDate      = DateTime.Now.Date,
                IsNoiseMeassured = false
            };

            _selectedTaskDAO.Store(selectedTask);

            return(PartialView("_SelectedTask", new SelectedTaskViewModel(selectedTask)));
        }
Beispiel #18
0
        private void InitCommand()
        {
            TaskDone = new RelayCommand(() => {
                var result = service.MessageBoxShow(
                    $"現在実行中のタスク「{TaskTitle}」を完了しますか?",
                    "タスクを完了しますか?",
                    MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    model.Done();
                }
            });

            TaskPostpone = new RelayCommand(() => {
                model.Postpone();
            });

            TaskAdd = new RelayCommand(() => {
                var task = new TaskItem();
                service.ShowDialog(new TaskAddView(task));
                if (task.Title != null)
                {
                    model.AddTask(task);
                }
            });

            TaskRemove = new RelayCommand(() => {
                if (SelectedTask == null)
                {
                    return;
                }
                var result = service.MessageBoxShow(
                    $"選択中のタスク「{SelectedTask.Title}」を削除しますか?",
                    "確認",
                    MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    model.Remove(SelectedTask);
                }
            });

            TaskUpdate = new RelayCommand(() => {
                var task = SelectedTask.Clone();
                service.ShowDialog(new TaskAddView(task));
                if (task.Title != null)
                {
                    model.Update(SelectedTask, task);
                }
            });

            TaskCopy  = new RelayCommand(() => { service.ClipboardSet(SelectedTask.ToString()); });
            TaskPaste = new RelayCommand(() => {
                // クリップボードの中身を取得して整える
                var array = service.ClipboardGet()
                            .Replace("\r", "")
                            .Replace("\n", Environment.NewLine)
                            .Split(new string[] { Environment.NewLine }, 2, StringSplitOptions.None);
                var task = new TaskItem(array[0]);
                if (array.Length > 1)
                {
                    task.Description = array[1];
                }
                service.ShowDialog(new TaskAddView(task));
                if (task.Title != null)
                {
                    model.AddTask(task);
                }
            });

            TaskDoubleClick = new RelayCommand <TaskItem>(item => {
                model.Work(item);
            });

            TaskUp = new RelayCommand(() => { if (SelectedTask != null)
                                              {
                                                  model.Move(SelectedTask, -1);
                                              }
                                      });
            TaskDown = new RelayCommand(() => { if (SelectedTask != null)
                                                {
                                                    model.Move(SelectedTask, +1);
                                                }
                                        });
            TaskWork = new RelayCommand(() => { if (SelectedTask != null)
                                                {
                                                    model.Work(SelectedTask);
                                                }
                                        });

            TaskSave = new RelayCommand(() => { model.Save(); });
            service.AddClosing((sender, e) => { model.Save(); });
        }
        private SelectedTask CreateSelectedTaskRegular(RegularViewModel viewModel, Task task)
        {
            var selectedTask = new SelectedTask
            {
                Title             = task.Title,
                Role              = task.Role.Title,
                NoiseProtection   = task.NoiseProtection.Title,
                NoiseProtectionId = task.NoiseProtection.Id,
                ButtonPressed     = task.ButtonPressed,
                Task              = task,
                CreatedBy         = string.IsNullOrEmpty(User.Identity.Name) ? Session.SessionID : User.Identity.Name,
                CreatedDate       = DateTime.Now.Date
            };

            var noiseProtection = _noiseProtectionDAO.Get(viewModel.NoiseProtectionId);

            selectedTask.NoiseProtection   = noiseProtection.Title;
            selectedTask.NoiseProtectionId = noiseProtection.Id;

            selectedTask.ButtonPressed = viewModel.ButtonPressed;

            if (viewModel.BackgroundNoise != "<80")
            {
                int bNoise;
                int.TryParse(viewModel.BackgroundNoise, out bNoise);
                if (bNoise != 0)
                {
                    selectedTask.BackgroundNoise = bNoise;
                }
            }

            if (viewModel.NoiseLevelMeassured != task.NoiseLevelGuideline && viewModel.NoiseLevelMeassured != 0)
            {
                selectedTask.NoiseLevel       = viewModel.NoiseLevelMeassured;
                selectedTask.IsNoiseMeassured = true;
            }
            else
            {
                selectedTask.NoiseLevel       = task.NoiseLevelGuideline;
                selectedTask.IsNoiseMeassured = false;
            }

            if (string.IsNullOrEmpty(viewModel.Percentage))
            {
                var timeSpan = new TimeSpanFactory().CreateFromStrings(viewModel.Hours, viewModel.Minutes);

                selectedTask.Hours         = timeSpan.Hours;
                selectedTask.Minutes       = timeSpan.Minutes;
                selectedTask.Percentage    = (int)Math.Round(task.CalculatePercentage(task.TaskDefinition.RoleType.ToString(), selectedTask.NoiseLevel, selectedTask.ButtonPressed, selectedTask.BackgroundNoise, selectedTask.Task.Frequency, noiseProtection, timeSpan));
                selectedTask.UsePercentage = false;
            }
            else
            {
                selectedTask.Percentage = string.IsNullOrEmpty(viewModel.Percentage) ? 0 : int.Parse(viewModel.Percentage);
                var timeSpan = task.CalculateTimeSpan(task.TaskDefinition.RoleType.ToString(), selectedTask.NoiseLevel, selectedTask.ButtonPressed, selectedTask.BackgroundNoise, selectedTask.Task.Frequency, noiseProtection, selectedTask.Percentage);
                selectedTask.Hours         = timeSpan.Hours;
                selectedTask.Minutes       = timeSpan.Minutes;
                selectedTask.UsePercentage = true;
            }

            return(selectedTask);
        }
Beispiel #20
0
        public bool Load(string FileName)
        {
            if (!AnyTaskSelected)
            {
                return(false);
            }

            if (!System.IO.File.Exists(FileName))
            {
                throw new XMLFileOpenSaveException("File doesn't exist!");
            }

            XDocument doc = XDocument.Load(FileName);

            #region Validation
            var task = doc.Element("task");
            if (task == null)
            {
                throw new XMLValidationException("XML file has no element <task>");
            }

            if (task.Attribute("number").Value != SelectedTask.Attribute("number").Value)
            {
                return(false);
            }

            var table = task.Element("table");
            if (table == null)
            {
                throw new XMLValidationException("XML file has no element <table> in <task> section");
            }

            var rows = table.Descendants("row").ToArray();
            if (rows.Length != DataTable.Count - 1)
            {
                throw new XMLValidationException("Element <table> doesn't match selected task table");
            }

            foreach (var row in rows)
            {
                var cells = row.Descendants("cell");
                if (cells.Count() != DataTable.First().Count)
                {
                    throw new XMLValidationException("Element <table> doesn't match selected task table");
                }

                foreach (var cell in cells)
                {
                    if (cell.Attribute("value") == null)
                    {
                        throw new XMLValidationException("Element <cell> has no attribute 'value'");
                    }
                }
            }
            #endregion

            for (int i = 0; i < rows.Length; i++)
            {
                var cells = rows[i].Descendants("cell").ToArray();
                for (int j = 0; j < cells.Length; j++)
                {
                    DataTable[i + 1][j].Text = cells[j].Attribute("value").Value;
                }
            }
            return(true);
        }