public static async System.Threading.Tasks.Task <AccountDataItem> CreateAndInitializeAccountAsync(string username, string localToken, string token, long accountId, int deviceId)
        {
            var account = await CreateAccountHelper.CreateAccountLocally(username, localToken, token, accountId, deviceId, needsInitialSync : false);

            if (account != null)
            {
                AccountsManager.SetLastLoginIdentifier(account.LocalAccountId);

                // Add the default year/semester
                try
                {
                    DataItemYear year = new DataItemYear()
                    {
                        Identifier = Guid.NewGuid(),
                        Name       = PowerPlannerResources.GetString("DummyFirstYear")
                    };

                    DataItemSemester semester = new DataItemSemester()
                    {
                        Identifier      = Guid.NewGuid(),
                        UpperIdentifier = year.Identifier,
                        Name            = PowerPlannerResources.GetString("DummyFirstSemester")
                    };

                    DataChanges changes = new DataChanges();
                    changes.Add(year);
                    changes.Add(semester);

                    await PowerPlannerApp.Current.SaveChanges(account, changes);

                    await account.SetCurrentSemesterAsync(semester.Identifier);

                    NavigationManager.MainMenuSelection = NavigationManager.MainMenuSelections.Schedule;

                    return(account);
                }
                catch (Exception ex)
                {
                    TelemetryExtension.Current?.TrackException(ex);
                }
            }

            return(null);
        }
        public void Save()
        {
            TryStartDataOperationAndThenNavigate(async delegate
            {
                string name = Name;

                if (string.IsNullOrWhiteSpace(name))
                {
                    new PortableMessageDialog(PowerPlannerResources.GetStringNoNameMessageBody(), PowerPlannerResources.GetStringNoNameMessageHeader()).Show();
                    return;
                }

                DataItemSemester semester;

                if (SemesterToEdit != null)
                {
                    semester = new DataItemSemester()
                    {
                        Identifier = SemesterToEdit.Identifier
                    }
                }
                ;

                else if (AddParams != null)
                {
                    semester = new DataItemSemester()
                    {
                        Identifier      = Guid.NewGuid(),
                        UpperIdentifier = AddParams.YearIdentifier
                    }
                }
                ;

                else
                {
                    throw new NullReferenceException("Either editing semester or add semester param must be initialized.");
                }

                semester.Name = name;

                if (SupportsStartEnd)
                {
                    if (StartDate != null)
                    {
                        semester.Start = DateTime.SpecifyKind(StartDate.Value.Date, DateTimeKind.Utc);

                        if (!SqlDate.IsValid(semester.Start))
                        {
                            semester.Start = DateTime.Today;
                        }
                    }

                    else
                    {
                        semester.Start = PowerPlannerSending.DateValues.UNASSIGNED;
                    }

                    if (EndDate != null)
                    {
                        semester.End = DateTime.SpecifyKind(EndDate.Value.Date, DateTimeKind.Utc);

                        if (!SqlDate.IsValid(semester.End))
                        {
                            semester.End = DateTime.Today;
                        }
                    }

                    else
                    {
                        semester.End = PowerPlannerSending.DateValues.UNASSIGNED;
                    }


                    if (!PowerPlannerSending.DateValues.IsUnassigned(semester.Start) &&
                        !PowerPlannerSending.DateValues.IsUnassigned(semester.End) &&
                        semester.Start > semester.End)
                    {
                        new PortableMessageDialog(PowerPlannerResources.GetString("EditSemesterPage_String_StartDateGreaterThanEndExplanation"), PowerPlannerResources.GetString("EditSemesterPage_String_InvalidStartDate")).Show();
                        return;
                    }
                }

                DataChanges changes = new DataChanges();
                changes.Add(semester);

                await PowerPlannerApp.Current.SaveChanges(changes);
            }, delegate
Esempio n. 3
0
 private static ViewItemSemester CreateSemester(DataItemSemester dataSemester)
 {
     return(new ViewItemSemester(
                dataSemester,
                createClassMethod: CreateClass));
 }
Esempio n. 4
0
 public bool IsChild(DataItemSemester dataSemester)
 {
     return(dataSemester.UpperIdentifier == Identifier);
 }