public IssueTimesheetRowModel(TimesheetDialog view, TimesheetRow timesheetRow, List<QuickIssue> quickIssues, List<TimesheetCode> adminCodes) { mMaxHoursInDay = CMS.AppSetting.TimesheetMaxHoursPerDay; mAdminCodes = adminCodes; mTimesheetRow = timesheetRow; QuickIssues = quickIssues; mView = view; SetDayIndexes(); GotFocusCommand = new DelegateCommand<object>(GotFocusHandler, (x) => true); if (mTimesheetRow.IssueId.HasValue) { mSystemReferenceNumbers = timesheetRow.Issue.SystemReferences.Where(x => x.SystemReferenceType.ShowInTimesheet).OrderBy(x => x.Number).ToList(); RaisePropertyChanged("SystemReferenceNumbers"); RaisePropertyChanged("SystemReferenceNumber"); } }
private void OpenTimesheetButtonHandler(object parameter) { var timesheet = parameter as Timesheet; if (timesheet != null) { CanExecuteOpenTimesheetButton = false; var timesheetDialog = new TimesheetDialog(timesheet.Id); timesheetDialog.Closed += (sender, args) => { CanExecuteOpenTimesheetButton = true; if (timesheetDialog.Timesheet != null) { timesheet.IsSubmitted = timesheetDialog.Timesheet.IsSubmitted; timesheet.LastModifiedByUserId = timesheetDialog.Timesheet.LastModifiedByUserId; timesheet.LastModifiedDate = timesheetDialog.Timesheet.LastModifiedDate; timesheet.RaisePropertyChanged("Status"); timesheet.RaisePropertyChanged("LastModifiedByUserDate"); } }; timesheetDialog.Show(); } }
public TimesheetViewModel(TimesheetDialog view, int timesheetId) { mView = view; //need this to update aggregates on RadGridView!!! var getPropertyListNames = DatabaseLoader.GetTimesheetCodes(); var getTimesheet = DatabaseLoader.GetTimesheet(timesheetId); var getQuickIssuesTask = DatabaseLoader.GetQuickIssues(new IssueFilterObject()); List<Task> tasks = new List<Task>(); tasks.Add(getPropertyListNames); tasks.Add(getTimesheet); tasks.Add(getQuickIssuesTask); Task.Factory.ContinueWhenAll(tasks.ToArray(), x => { mAdminCodes = getPropertyListNames.Result; mTimesheet = getTimesheet.Result; QuickIssues = getQuickIssuesTask.Result; if (!mTimesheet.TimesheetRows.Any()) { PopulateDefaultTimesheetRows(); } else { mIssueTimesheetRowModels.Clear(); foreach (var timesheetRow in mTimesheet.TimesheetRows) { var timesheetRowModel = new IssueTimesheetRowModel(mView, timesheetRow, QuickIssues, mAdminCodes); mIssueTimesheetRowModels.Add(timesheetRowModel); } CMS.UiFactory.StartNew(() => { mView.TelerikGrid.Rebind(); RaisePropertyChanged("IssueTimesheetRowModels"); RaisePropertyChanged("TotalHours"); RaisePropertyChanged("TotalMonday"); RaisePropertyChanged("TotalTuesday"); RaisePropertyChanged("TotalWednesday"); RaisePropertyChanged("TotalThursday"); RaisePropertyChanged("TotalFriday"); RaisePropertyChanged("TotalSaturday"); RaisePropertyChanged("TotalSunday"); RaisePropertyChanged("Week"); RaisePropertyChanged("User"); RaisePropertyChanged("LastModifiedBy"); OkButtonCommand.RaiseCanExecuteChanged(); SubmitButtonCommand.RaiseCanExecuteChanged(); AddIssueButtonCommand.RaiseCanExecuteChanged(); mView.IsBusyIndicator.IsBusy = false; }); } }); OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, CanExecuteCancelButtonHandler); SubmitButtonCommand = new DelegateCommand<object>(SubmitButtonHander, CanExecuteSubmitButtonHandler); AddIssueButtonCommand = new DelegateCommand<object>(AddIssueButtonHandler, CanExecuteOkButtonHandler); RemoveIssueButtonCommand = new DelegateCommand<object>(RemoveIssueButtonHandler, CanExecuteOkButtonHandler); }
private void Save(TimesheetDialog view) { if (!HasErrors()) { mTimesheet.LastModifiedByUserId = CMS.User.Id; mTimesheet.LastModifiedDate = DateTime.Now; mSavingTimesheet = true; OkButtonCommand.RaiseCanExecuteChanged(); SubmitButtonCommand.RaiseCanExecuteChanged(); var cee = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cee.SaveTimesheetCompleted += (s, e) => { if (e.Result.HasErrors) { var errorDialog = new PopupDialog(PopupDialogType.Error, Utils.DisplayErrorMessages(e.Result.ServerErrorMessages)); errorDialog.Show(); mSavingTimesheet = false; OkButtonCommand.RaiseCanExecuteChanged(); SubmitButtonCommand.RaiseCanExecuteChanged(); } else { view.Timesheet = mTimesheet; view.DialogResult = true; } }; cee.SaveTimesheetAsync(mTimesheet); } }