public ViewItemClass( DataItemClass dataItem, Func <DataItemMegaItem, BaseViewItemHomeworkExam> createHomeworkOrExamMethod = null, Func <DataItemSchedule, ViewItemSchedule> createScheduleMethod = null, Func <DataItemWeightCategory, ViewItemWeightCategory> createWeightMethod = null, Func <DataItemMegaItem, bool> isHomeworkOrExamChildMethod = null) : base(dataItem) { if (dataItem.Identifier == dataItem.UpperIdentifier) { IsNoClassClass = true; } if (createHomeworkOrExamMethod != null) { AddHomeworkAndExamChildrenHelper(createHomeworkOrExamMethod, isHomeworkOrExamChildMethod); } if (createScheduleMethod != null) { Schedules = new MyObservableList <ViewItemSchedule>(); AddChildrenHelper(new ViewItemChildrenHelper <DataItemSchedule, ViewItemSchedule>( isChild: IsChild, addMethod: Add, removeMethod: Remove, createChildMethod: createScheduleMethod, children: Schedules)); } if (createWeightMethod != null) { AddWeightChildrenHelper(createWeightMethod); } }
public async Task TestAddingClass_Defaults() { DataItemClass c = new DataItemClass() { Identifier = Guid.NewGuid(), UpperIdentifier = base.CurrentSemesterId, Credits = 3, Name = "Math", Details = "", RawColor = ColorTools.GetArray(Colors.Red, 3) }; DataChanges changes = new DataChanges(); changes.Add(c); await base.DataStore.ProcessLocalChanges(changes); var viewModel = await ViewModelClass.LoadAsync(base.LocalAccountId, c.Identifier, DateTime.Today); var viewClass = viewModel.Class; Assert.AreEqual("Math", viewClass.Name); Assert.AreEqual(3, viewClass.Credits); Assert.AreEqual("", viewClass.Details); Assert.AreEqual(Colors.Red, viewClass.Color); }
private async void Save() { try { IsEnabled = false; var changes = new DataChanges(); // Class changes var c = new DataItemClass() { Identifier = Class.Identifier, DoesRoundGradesUp = RoundGradesUp }; changes.Add(c); await TryHandleUserInteractionAsync("Save", async delegate { await PowerPlannerApp.Current.SaveChanges(changes); }, "Failed to save. Your error has been reported."); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); await new PortableMessageDialog("Error encountered while saving. Your error report has been sent to the developer.", "Error").ShowAsync(); } finally { IsEnabled = true; } }
private ViewItemClass CreateClass(DataItemClass c) { return(new ViewItemClass(c, createScheduleMethod: CreateSchedule, createWeightMethod: _includeWeightCategories ? new Func <DataItemWeightCategory, ViewItemWeightCategory>(CreateWeightCategory) : null) { Semester = Semester }); }
private ViewItemClass CreateClass(DataItemClass dataClass) { if (dataClass.Identifier == this.Class.Identifier) { return(this.Class); } return(new ViewItemClass(dataClass, createWeightMethod: CreateWeightForOtherClasses)); }
public MainWindow() { InitializeComponent(); Closing += OnWindowClosing; main_collection = new V2MainCollection(); dataitem = new DataItemClass(); this.PreviewKeyDown += new KeyEventHandler(HandleEsc); //FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false; UpdateBindings(); }
private DataItemClass CreateClassSavedInfoDataItem() { DataItemClass dataItem = new DataItemClass() { Identifier = Class.Identifier }; PopulateClassSavedInfo(dataItem); return(dataItem); }
private void PopulateClassInfo(DataItemClass c) { if (IncludesEditingDetails) { c.Details = Details; } if (IsPartialSemesterClass) { if (StartDate != null) { c.StartDate = DateTime.SpecifyKind(StartDate.Value.Date, DateTimeKind.Utc); if (!SqlDate.IsValid(c.StartDate)) { c.StartDate = SqlDate.MinValue; } } else { c.StartDate = SqlDate.MinValue; } if (EndDate != null) { c.EndDate = DateTime.SpecifyKind(EndDate.Value.Date, DateTimeKind.Utc); if (!SqlDate.IsValid(c.EndDate)) { c.EndDate = SqlDate.MinValue; } } else { c.EndDate = SqlDate.MinValue; } if (StartDate != null || EndDate != null) { TelemetryExtension.Current?.TrackEvent("UsedClassStartEndDates"); } } else { c.StartDate = SqlDate.MinValue; c.EndDate = SqlDate.MinValue; } }
private void PopulateClassSavedInfo(DataItemClass dataItem) { switch (Type) { case TaskOrEventType.Task: dataItem.LastTaskTimeOption = SelectedTimeOption; dataItem.LastTaskDueTime = StartTime; break; case TaskOrEventType.Event: dataItem.LastEventTimeOption = SelectedTimeOption; dataItem.LastEventStartTime = StartTime; dataItem.LastEventDuration = EndTime - StartTime; break; default: throw new NotImplementedException("Unknown item type"); } }
protected override void PopulateFromDataItemOverride(BaseDataItem dataItem) { base.PopulateFromDataItemOverride(dataItem); DataItemClass i = dataItem as DataItemClass; CourseNumber = i.CourseNumber; ShouldAverageGradeTotals = i.ShouldAverageGradeTotals; DoesRoundGradesUp = i.DoesRoundGradesUp; Color = i.RawColor; Position = i.Position; GradeScales = i.GetGradeScales() ?? GradeScale.GenerateDefaultScaleWithoutLetters(); Credits = i.Credits; StartDate = DateTime.SpecifyKind(i.StartDate, DateTimeKind.Local); EndDate = DateTime.SpecifyKind(i.EndDate, DateTimeKind.Local); GpaType = i.GpaType; PassingGrade = i.PassingGrade; _needsRecalc = true; }
public void Save() { TryStartDataOperationAndThenNavigate(delegate { string details = Details.Trim(); DataItemClass c = new DataItemClass() { Identifier = Class.Identifier, Details = details }; DataChanges editChanges = new DataChanges(); editChanges.Add(c); return(PowerPlannerApp.Current.SaveChanges(editChanges)); }, delegate { this.GoBack(); }); }
public async void Save() { try { if (!AreScalesValid()) { await new PortableMessageDialog(PowerPlannerResources.GetString("String_InvalidGradeScalesMessageBody"), PowerPlannerResources.GetString("String_InvalidGradeScalesMessageHeader")).ShowAsync(); return; } GradeScale[] newScales = GradeScales.ToArray(); DataChanges changes = new DataChanges(); // Class changes { var c = new DataItemClass() { Identifier = Class.Identifier }; c.SetGradeScales(newScales); changes.Add(c); } TryStartDataOperationAndThenNavigate(delegate { return(PowerPlannerApp.Current.SaveChanges(changes)); }, delegate { this.RemoveViewModel(); }); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); await new PortableMessageDialog("Error encountered while saving. Your error report has been sent to the developer.", "Error").ShowAsync(); } }
public void Save() { TryStartDataOperationAndThenNavigate(delegate { DataChanges changes = new DataChanges(); // Class changes var c = new DataItemClass() { Identifier = Class.Identifier, PassingGrade = PassingGrade / 100 }; changes.Add(c); return(PowerPlannerApp.Current.SaveChanges(changes)); }, delegate { this.RemoveViewModel(); }); }
public async void Save() { try { string name = Name.Trim(); if (string.IsNullOrWhiteSpace(name)) { await new PortableMessageDialog(PowerPlannerResources.GetString("String_NoClassNameMessageBody"), PowerPlannerResources.GetString("String_NoNameMessageHeader")).ShowAsync(); return; } if (IsPartialSemesterClass && EndDate != null && StartDate != null && EndDate.Value.Date < StartDate.Value.Date) { await new PortableMessageDialog(PowerPlannerResources.GetString("EditSemesterPage_String_StartDateGreaterThanEndExplanation"), PowerPlannerResources.GetString("EditSemesterPage_String_InvalidStartDate")).ShowAsync(); return; } await TryHandleUserInteractionAsync("SaveClass", async (cancellationToken) => { Action recordTelemetryAction = delegate { TelemetryExtension.Current?.TrackEvent("SavedClass", new Dictionary <string, string> { { "State", State.ToString() }, { "UsingCustomColor", (!ColorItem.DefaultColors.Any(i => i.Equals(Color))).ToString() } }); }; if (ClassToEdit != null) { DataItemClass c = new DataItemClass() { Identifier = ClassToEdit.Identifier, Name = name, RawColor = Color }; PopulateClassInfo(c); DataChanges editChanges = new DataChanges(); editChanges.Add(c); await PowerPlannerApp.Current.SaveChanges(editChanges); recordTelemetryAction(); cancellationToken.ThrowIfCancellationRequested(); } else { // Get current semester Guid semesterId = AddParams.SemesterIdentifier; if (semesterId == Guid.Empty) { throw new ArgumentException("CurrentSemesterId was empty"); } var newItems = AccountDataStore.GenerateNewDefaultClass(semesterId, name, Color); PopulateClassInfo(newItems.OfType <DataItemClass>().First()); DataChanges changes = new DataChanges(); foreach (var i in newItems) { changes.Add(i); } await PowerPlannerApp.Current.SaveChanges(changes); recordTelemetryAction(); cancellationToken.ThrowIfCancellationRequested(); AddParams.OnClassAddedAction?.Invoke((DataItemClass)newItems.First()); if (AddParams.NavigateToClassAfterAdd) { DataItemClass c = (DataItemClass)newItems.First(); var dontWait = MainScreenViewModel.SelectClass(c.Identifier); } } this.RemoveViewModel(); }, "Failed to save your class. Your error has been reported."); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } }
private static ViewItemClass CreateClass(DataItemClass dataClass) { return(new ViewItemClass( dataClass, createWeightMethod: CreateWeight)); }
private ViewItemClass CreateClass(DataItemClass dataItem) { return(new ViewItemClass(dataItem)); }
private bool IsChild(DataItemClass dataItem) { return(dataItem.UpperIdentifier == SemesterId); }
private ViewItemClass CreateClass(DataItemClass c) { return(new ViewItemClass(c, createScheduleMethod: CreateSchedule, createWeightMethod: CreateWeight)); }