///-------------------------------------------------------------------------------- /// <summary>This method resets the data.</summary> ///-------------------------------------------------------------------------------- protected override void OnReset() { EditParameter.TransformDataFromObject(Parameter, null, false); ResetItems(); #region protected RefreshProperties(); #endregion protected EditParameter.ResetModified(false); }
public static AddGradeViewModel CreateForEdit(BaseViewModel parent, EditParameter editParams) { ViewItemWeightCategory weight = editParams.Item.WeightCategory; ViewItemClass c; if (editParams.Item is ViewItemTaskOrEvent item) { c = item.Class; } else { if (weight == null) { throw new NullReferenceException("WeightCategory was null"); } c = weight.Class; } if (c == null) { throw new NullReferenceException("Class was null"); } if (weight == null || weight == ViewItemWeightCategory.UNASSIGNED || weight == ViewItemWeightCategory.EXCLUDED) { weight = c.WeightCategories.FirstOrDefault(i => i.Identifier == NavigationManager.SelectedWeightCategoryIdentifier); if (weight == null) { weight = c.WeightCategories.FirstOrDefault(); } if (weight == null) { throw new InvalidOperationException("No weight categories found for class"); } } return(new AddGradeViewModel(parent) { State = editParams.IsInWhatIfMode ? OperationState.EditingWhatIf : OperationState.Editing, Name = editParams.Item.Name, Date = editParams.Item.DateInSchoolTime, Details = editParams.Item.Details, WeightCategories = c.WeightCategories, SelectedWeightCategory = weight, IsDropped = editParams.Item.IsDropped, GradeReceived = editParams.Item.GradeReceived, GradeTotal = editParams.Item.GradeTotal, _editingGrade = editParams.Item, _onSaved = editParams.OnSaved, IsUnassignedItem = editParams.IsUnassignedItem, _originalDateOffset = editParams.Item.Date.TimeOfDay, _showViewGradeSnackbarAfterSaving = editParams.ShowViewGradeSnackbarAfterSaving }); }
public static AddClassTimeViewModel CreateForEdit(BaseViewModel parent, EditParameter editParams) { return(new AddClassTimeViewModel(parent) { State = OperationState.Editing, EditParams = editParams, StartTime = editParams.GroupedSchedules.First().StartTime.TimeOfDay, EndTime = editParams.GroupedSchedules.First().EndTime.TimeOfDay, Room = editParams.GroupedSchedules.First().Room, DayOfWeeks = new MyObservableList <DayOfWeek>(editParams.GroupedSchedules.Select(i => i.DayOfWeek).Distinct()), ScheduleWeek = editParams.GroupedSchedules.First().ScheduleWeek, ClassName = editParams.GroupedSchedules.First().Class.Name }); }
public static AddClassTimeViewModel CreateForEdit(BaseViewModel parent, EditParameter editParams) { return(new AddClassTimeViewModel(parent) { State = OperationState.Editing, EditParams = editParams, StartTime = editParams.GroupedSchedules.First().StartTimeInSchoolTime.TimeOfDay, EndTime = editParams.GroupedSchedules.First().EndTimeInSchoolTime.TimeOfDay, Room = editParams.GroupedSchedules.First().Room, DayOfWeeks = new MyObservableList <DayOfWeek>(editParams.GroupedSchedules.Select(i => i.DayOfWeek).Distinct()), ScheduleWeek = editParams.GroupedSchedules.First().ScheduleWeek, ClassName = editParams.GroupedSchedules.First().Class.Name, IsInDifferentTimeZone = parent.FindAncestorOrSelf <MainScreenViewModel>().CurrentAccount.IsInDifferentTimeZone }); }
///-------------------------------------------------------------------------------- /// <summary>This method sets the default values.</summary> ///-------------------------------------------------------------------------------- protected override void OnSetDefaults() { if (Parameter.ReverseInstance != null) { EditParameter.TransformDataFromObject(Parameter.ReverseInstance, null, false); } else if (Parameter.IsAutoUpdated == true) { EditParameter.TransformDataFromObject(Parameter, null, false); } else { Parameter newParameter = new Parameter(); newParameter.ParameterID = EditParameter.ParameterID; EditParameter.TransformDataFromObject(newParameter, null, false); } EditParameter.ResetModified(true); }
public static AddTaskOrEventViewModel CreateForEdit(BaseViewModel parent, EditParameter editParams) { var account = parent.FindAncestor <MainWindowViewModel>()?.CurrentAccount; if (account == null) { throw new NullReferenceException("CurrentAccount was null"); } ViewItemClass c = editParams.Item.Class; TaskOrEventType type = editParams.Item.Type; if (c == null) { throw new NullReferenceException("Class of the item was null. Item id " + editParams.Item.Identifier); } if (c.Semester == null) { throw new NullReferenceException("Semester of the class was null. Item id " + editParams.Item.Identifier); } if (c.Semester.Classes == null) { throw new NullReferenceException("Classes of the semester was null. Item id " + editParams.Item.Identifier); } var model = new AddTaskOrEventViewModel(parent) { Account = account, State = OperationState.Editing, EditParams = editParams, Name = editParams.Item.Name, Classes = GetClassesWithNoClassClass(c.Semester.Classes), Date = editParams.Item.DateInSchoolTime.Date, Details = editParams.Item.Details, Type = type, ImageNames = editParams.Item.ImageNames.ToArray(), IsInDifferentTimeZone = parent.FindAncestorOrSelf <MainScreenViewModel>().CurrentAccount.IsInDifferentTimeZone, Class = c // Assign class last, since it also assigns weight categories }; // Assign existing image attachments model.ImageAttachments = new ObservableCollection <BaseEditingImageAttachmentViewModel>(editParams.Item.ImageNames.Select(i => new EditingExistingImageAttachmentViewModel(model, i))); switch (editParams.Item.GetActualTimeOption()) { case DataItemMegaItem.TimeOptions.AllDay: model.SelectedTimeOption = model.TimeOption_AllDay; break; case DataItemMegaItem.TimeOptions.BeforeClass: model.SelectedTimeOption = model.TimeOption_BeforeClass; break; case DataItemMegaItem.TimeOptions.Custom: model._startTime = new TimeSpan(editParams.Item.DateInSchoolTime.Hour, editParams.Item.DateInSchoolTime.Minute, 0); model._endTime = editParams.Item.EndTimeInSchoolTime.TimeOfDay; model.SelectedTimeOption = model.TimeOption_Custom; break; case DataItemMegaItem.TimeOptions.DuringClass: model.SelectedTimeOption = model.TimeOption_DuringClass; break; case DataItemMegaItem.TimeOptions.EndOfClass: model.SelectedTimeOption = model.TimeOption_EndOfClass; break; case DataItemMegaItem.TimeOptions.StartOfClass: model.SelectedTimeOption = model.TimeOption_StartOfClass; break; } // We don't want to consider setting the initial time option as the user configuring the time option model._userChangedSelectedTimeOption = false; return(model); }
///-------------------------------------------------------------------------------- /// <summary>This method updates the view model data and sends update command back /// to the solution builder.</summary> ///-------------------------------------------------------------------------------- protected override void OnUpdate() { // set up reverse engineering instance if not present if (Parameter.ReverseInstance == null && Parameter.IsAutoUpdated == true) { Parameter.ReverseInstance = new Parameter(); Parameter.ReverseInstance.TransformDataFromObject(Parameter, null, false); // perform the update of EditParameter back to Parameter Parameter.TransformDataFromObject(EditParameter, null, false); Parameter.IsAutoUpdated = false; } else if (Parameter.ReverseInstance != null) { EditParameter.ResetModified(Parameter.ReverseInstance.IsModified); if (EditParameter.Equals(Parameter.ReverseInstance)) { // perform the update of EditParameter back to Parameter Parameter.TransformDataFromObject(EditParameter, null, false); Parameter.IsAutoUpdated = true; } else { // perform the update of EditParameter back to Parameter Parameter.TransformDataFromObject(EditParameter, null, false); Parameter.IsAutoUpdated = false; } } else { // perform the update of EditParameter back to Parameter Parameter.TransformDataFromObject(EditParameter, null, false); Parameter.IsAutoUpdated = false; } Parameter.ForwardInstance = null; if (ParameterNameCustomized || ReferencedEntityIDCustomized || ReferencedPropertyIDCustomized || OrderCustomized || DescriptionCustomized || TagsCustomized) { Parameter.ForwardInstance = new Parameter(); Parameter.ForwardInstance.ParameterID = EditParameter.ParameterID; Parameter.SpecSourceName = Parameter.DefaultSourceName; if (ParameterNameCustomized) { Parameter.ForwardInstance.ParameterName = EditParameter.ParameterName; } if (ReferencedEntityIDCustomized) { Parameter.ForwardInstance.ReferencedEntityID = EditParameter.ReferencedEntityID; } if (ReferencedPropertyIDCustomized) { Parameter.ForwardInstance.ReferencedPropertyID = EditParameter.ReferencedPropertyID; } if (OrderCustomized) { Parameter.ForwardInstance.Order = EditParameter.Order; } if (DescriptionCustomized) { Parameter.ForwardInstance.Description = EditParameter.Description; } if (TagsCustomized) { Parameter.ForwardInstance.Tags = EditParameter.Tags; } } EditParameter.ResetModified(false); OnUpdated(this, null); // send update back to solution builder SendEditParameterPerformed(); }