예제 #1
0
        ///--------------------------------------------------------------------------------
        /// <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);
        }
예제 #2
0
        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
     });
 }
예제 #4
0
 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
     });
 }
예제 #5
0
 ///--------------------------------------------------------------------------------
 /// <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);
 }
예제 #6
0
        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);
        }
예제 #7
0
        ///--------------------------------------------------------------------------------
        /// <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();
        }