public void Init(TaskLogApplicationService service, string title, PeriodViewModel period, TaskSpecifyViewModel taskSpecify, ObservableCollection <TaskReportItemViewModel> targets)
        {
            this.service     = service;
            this.TaskReports = targets;
            this.Title       = title;
            Periods          = new ObservableCollection <PeriodViewModel>();
            Periods.Add(ItselfOrDefault <WholePeriodViewModel>(period));
            Periods.Add(ItselfOrDefault <PartialPeriodViewModel>(period));
            Periods.Add(ItselfOrDefault <DatePeriodViewModel>(period));
            this.Period = period != null ? period : Periods[0];

            TaskSpecifies = new ObservableCollection <TaskSpecifyViewModel>();
            TaskSpecifies.Add(ItselfOrDefault <AllTaskSpecifyViewModel>(taskSpecify));
            TaskSpecifies.Add(ItselfOrDefault <AllTaskSpecifyByKeywordViewModel>(taskSpecify));
            TaskSpecifies.Add(ItselfOrDefault <IndividualTaskSpecifyViewModel>(taskSpecify));
            this.TaskSpecify = taskSpecify != null ? taskSpecify :TaskSpecifies[0];

            ReportCommand = new DelegateCommand(
                (_) =>
            {
                var report = service.CreateReport(Period.Create(), TaskSpecify.Create(CreateTaskSearhMethods()));
                Update(report);
            });
            AddRowCommand = new DelegateCommand(
                (_) =>
            {
                TaskReports.Add(new TaskReportItemViewModel());
            });
            //Update();
        }
 public void Update(TaskReport report)
 {
     TaskReports.Clear();
     foreach (var item in report.Items)
     {
         TaskReports.Add(new TaskReportItemViewModel(item.TaskSearchMethod.TaskKeyword, item.TaskSearchMethod.SearchMethod, item.TotalMinutes));
     }
     RaisePropertyChanged(nameof(TotalWorkingMinutes));
 }
 private List <TaskSearchMethod> CreateTaskSearhMethods()
 {
     return(TaskReports
            .Select(x => {
         return new TaskSearchMethod()
         {
             TaskKeyword = x.TaskName, SearchMethod = x.TaskSearchMethodType
         };
     })
            .ToList());
 }