// Class Methods
        /// <summary>
        /// Gets a list of Addresses, and updates the list with Database info
        /// </summary>
        /// <param name="addresses"></param>
        public void fillAddressDropdown(List <Address> addresses)
        {
            using (var conn = new MySqlConnection(connecterString))
            {
                MySqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "SELECT * FROM address";
                MySqlDataReader reader1 = DataChanges.GetMySqlReader(conn, cmd.CommandText);
                //Use this to see if the country exists, and to count the number of countries
                while (reader1.Read())
                {
                    var     AddressId    = (int)reader1["addressId"];
                    var     Address1     = reader1["address"].ToString();
                    var     Address2     = reader1["address2"].ToString();
                    var     CityId       = (int)reader1["cityId"];
                    var     PostalCode   = reader1["postalCode"].ToString();
                    var     Phone        = reader1["phone"].ToString();
                    var     CreatedBy    = reader1["createdBy"].ToString();
                    var     LastUpdateBy = reader1["lastUpdateBy"].ToString();
                    Address myAddress    = new Address(AddressId, Address1, Address2, CityId, PostalCode, Phone, CreatedBy, LastUpdateBy);
                    addresses.Add(myAddress);
                }
                conn.Close();
                cmd.Connection.Close();

                foreach (var addr in addresses)
                {
                    // Populate a new row on the combobox
                    comboBox_AddressPopulate.Items.Add(addr.address.ToString() + ", " + addr.address2.ToString());
                    // fill the city object for the address object
                    addr.cityObject = new City(addr.cityId, loggedInUser, conn);
                }
                //Set the list equal to the class list
                Addresses = addresses;
            }
        }
 /// <summary>
 /// Notifies the data change.
 /// </summary>
 public void NotifyDataChange()
 {
     DataChanges.OnNext(new DataChange()
     {
         SizeChanged = false
     });
 }
Ejemplo n.º 3
0
        public async System.Threading.Tasks.Task TestDeletingClassSchedule()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemSchedule()
            {
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = base.CurrentClassId,
                StartTime       = new DateTime(2015, 1, 1, 8, 00, 00, DateTimeKind.Utc),
                EndTime         = new DateTime(2015, 1, 1, 8, 50, 00, DateTimeKind.Utc),
                Room            = "Modern Languages 201",
                ScheduleWeek    = Schedule.Week.BothWeeks,
                ScheduleType    = Schedule.Type.Normal,
                DayOfWeek       = DayOfWeek.Monday
            });

            await DataStore.ProcessLocalChanges(changes);

            var viewModel = await ViewModelClass.LoadAsync(base.LocalAccountId, base.CurrentClassId, new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc));

            Assert.AreEqual(1, viewModel.Class.Schedules.Count);

            var schedule = viewModel.Class.Schedules[0];


            changes = new DataChanges();

            changes.DeleteItem(schedule.Identifier);

            await DataStore.ProcessLocalChanges(changes);

            viewModel = await ViewModelClass.LoadAsync(base.LocalAccountId, base.CurrentClassId, new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc));

            Assert.AreEqual(0, viewModel.Class.Schedules.Count);
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        protected override async Task InitializeAfterAccount()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Freshman"
            });

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Sophomore"
            });

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Junior"
            });

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Senior"
            });

            await DataStore.ProcessLocalChanges(changes);

            await InitializeAfterYears();
        }
Ejemplo n.º 6
0
        public async Task TestAdding_DateCreated()
        {
            DataChanges changes = new DataChanges();

            // Add multiple at once
            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Freshman"
            });

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Sophomore"
            });

            await DataStore.ProcessLocalChanges(changes);


            ViewModelYearsAndSemesters viewModel = await ViewModelYearsAndSemesters.LoadAsync(LocalAccountId);

            var freshman  = viewModel.School.Years[0];
            var sophomore = viewModel.School.Years[1];

            Assert.AreEqual("Freshman", freshman.Name);
            Assert.AreEqual("Sophomore", sophomore.Name);

            // Make sure the second item is 1 tick after the first
            Assert.AreEqual(freshman.DateCreated.AddTicks(1), sophomore.DateCreated);
        }
        public void SetPercentComplete(double percentComplete)
        {
            ViewItemHomework homework = Item as ViewItemHomework;

            if (homework == null || homework.PercentComplete == percentComplete)
            {
                return;
            }

            TryStartDataOperationAndThenNavigate(delegate
            {
                DataChanges changes = new DataChanges();

                changes.Add(new DataItemMegaItem()
                {
                    Identifier      = homework.Identifier,
                    PercentComplete = percentComplete
                });

                return(PowerPlannerApp.Current.SaveChanges(changes));
            }, delegate
            {
                // Go back immediately before
                if (percentComplete == 1)
                {
                    this.GoBack();
                }
            });
        }
        public void DropGrade()
        {
            TryStartDataOperationAndThenNavigate(async delegate
            {
                if (IsInWhatIfMode)
                {
                    Grade.IsDropped  = true;
                    Grade.WasChanged = true;
                    Grade.WeightCategory.Class.ResetDream();
                }
                else
                {
                    var g       = Grade.CreateBlankDataItem();
                    g.IsDropped = true;

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

                    await PowerPlannerApp.Current.SaveChanges(changes);
                }
            }, delegate
            {
                this.RemoveViewModel();
            });
        }
Ejemplo n.º 9
0
        public async Task TestViewModelCalendar_EdgeCase()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemHomework()
            {
                Name            = "New Year 2016",
                Date            = new DateTime(2016, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = base.CurrentClassId,
                Details         = ""
            });

            await base.DataStore.ProcessLocalChanges(changes);

            // TODO
            //var viewModel = await ViewModelCalendar.LoadAsync(base.LocalAccountId, base.CurrentSemesterId);

            //Assert.AreEqual(0, viewModel.Items.Count, "Should start empty");

            //await viewModel.ApplyFilterAsync(new DateTime(2015, 10, 1, 0, 0, 0, DateTimeKind.Utc), new DateTime(2016, 1, 1, 0, 0, 0, DateTimeKind.Utc));

            //Assert.AreEqual(1, viewModel.Items.Count, "After first filter");

            //await viewModel.ApplyFilterAsync(new DateTime(2015, 11, 1, 0, 0, 0, DateTimeKind.Utc), new DateTime(2016, 2, 1, 0, 0, 0, DateTimeKind.Utc));

            //Assert.AreEqual(1, viewModel.Items.Count, "After second filter");
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        protected override void BeginWriteTransaction(DataChanges changes)
        {
            if (changes == null || changes.Shape == null)
            {
                return;
            }
            if (changes.Shape.Length != Rank)
            {
                throw new Exception("Changes has wrong shape");
            }

            copyArray           = null;
            recentChanges       = changes;
            getRecentDataCalled = false;

            bool needEnlarge = false;
            int  n           = Rank;

            int[] shape = array.GetShape();
            for (int i = 0; i < n; i++)
            {
                if (changes.Shape[i] > shape[i])
                {
                    needEnlarge = true;
                    break;
                }
            }

            if (needEnlarge)
            {
                copyArray      = new ArrayWrapper(n, TypeOfData);
                copyArray.Data = Array.CreateInstance(copyArray.DataType, changes.Shape);
            }
        }
Ejemplo n.º 12
0
        public void Delete()
        {
            TryStartDataOperationAndThenNavigate(async delegate
            {
                if (IsInWhatIfMode)
                {
                    Grade.WeightCategory.Remove(Grade);
                    Grade.WeightCategory.Class.ResetDream();
                }
                else
                {
                    // Tasks/events don't actually get deleted, just excluded from grades
                    if (Grade is ViewItemTaskOrEvent taskOrEvent)
                    {
                        var dataItem = taskOrEvent.CreateBlankDataItem();
                        dataItem.WeightCategoryIdentifier = PowerPlannerSending.BaseHomeworkExam.WEIGHT_CATEGORY_EXCLUDED;

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

                        await PowerPlannerApp.Current.SaveChanges(changes);
                    }
                    else
                    {
                        await MainScreenViewModel.DeleteItem(Grade);
                    }
                }
            }, delegate
Ejemplo n.º 13
0
 protected override void CommitWrite(DataChanges proposedChanges)
 {
     if (proposedChanges != null && proposedChanges.HasData)
     {
         if (getRecentDataCalled)
         {
             array = copyArray;
         }
         else
         {
             int n = proposedChanges.Data.Count;
             if (copyArray != null)
             {
                 if (array.Data != null)
                 {
                     copyArray.PutData(null, array.Data);
                 }
                 array = copyArray;
             }
             for (int i = 0; i < n; i++)
             {
                 DataPiece piece = proposedChanges.Data[i];
                 array.PutData(piece.Origin, piece.Data);
             }
         }
     }
     recentChanges       = null;
     getRecentDataCalled = false;
 }
Ejemplo n.º 14
0
        public async Task TestAddingSemester()
        {
            ViewModelYearsAndSemesters viewModel = await ViewModelYearsAndSemesters.LoadAsync(LocalAccountId);

            var years = viewModel.School.Years;

            var freshman  = viewModel.School.Years[0];
            var sophomore = viewModel.School.Years[1];
            var junior    = viewModel.School.Years[2];
            var senior    = viewModel.School.Years[3];

            DataChanges changes = new DataChanges();

            changes.Add(new DataItemSemester()
            {
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = freshman.Identifier,
                Name            = "Fall (Freshman)"
            });

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(1, freshman.Semesters.Count);
            Assert.AreEqual(freshman.Identifier, freshman.Semesters.First().Year.Identifier);
            Assert.AreEqual("Fall (Freshman)", freshman.Semesters.First().Name);
        }
        public async void UndropGrade()
        {
            try
            {
                if (IsInWhatIfMode)
                {
                    Grade.IsDropped  = false;
                    Grade.WasChanged = true;
                    Grade.WeightCategory.Class.ResetDream();
                }
                else
                {
                    var g = Grade.CreateBlankDataItem();
                    g.IsDropped = false;

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

                    await PowerPlannerApp.Current.SaveChanges(changes);
                }
            }
            catch (Exception ex)
            {
                TelemetryExtension.Current?.TrackException(ex);
            }
        }
Ejemplo n.º 16
0
        public async Task DeleteItem(Guid identifier)
        {
            DataChanges changes = new DataChanges();

            changes.DeleteItem(identifier);

            await PowerPlannerApp.Current.SaveChanges(changes);
        }
Ejemplo n.º 17
0
        public async Task TestCascadeDeleteYear()
        {
            Guid freshmanId = Guid.NewGuid();
            Guid tempId;

            DataChanges changes = new DataChanges();

            changes.Add(new DataItemYear()
            {
                Identifier = freshmanId,
                Name       = "Freshman"
            });

            changes.Add(new DataItemSemester()
            {
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = changes.EditedItems.OfType <DataItemYear>().First().Identifier,
                Name            = "Fall"
            });

            changes.Add(new DataItemSemester()
            {
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = changes.EditedItems.OfType <DataItemYear>().First().Identifier,
                Name            = "Spring"
            });

            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Sophomore"
            });

            changes.Add(new DataItemSemester()
            {
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = changes.EditedItems.OfType <DataItemYear>().First(i => i.Name.Equals("Sophomore")).Identifier,
                Name            = "Fall - Sophomore"
            });

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(2, DataStore.TableYears.Count(), "Database count of years incorrect");
            Assert.AreEqual(3, DataStore.TableSemesters.Count(), "Database count of semesters incorrect");


            changes = new DataChanges();

            changes.DeleteItem(freshmanId);

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(1, DataStore.TableYears.Count(), "Database count of years incorrect");
            Assert.AreEqual(1, DataStore.TableSemesters.Count(), "Database count of semesters incorrect");
        }
Ejemplo n.º 18
0
        /// <summary>
        /// The method is called at the commit stage of the variable.
        /// </summary>
        /// <remarks>
        /// <see cref="DataAccessVariable{DataType}"/>
        /// closes a write-transaction thus confirming its success.
        /// </remarks>
        internal protected override void OnCommit(Variable.Changes proposedChanges)
        {
            /* Committing written data */
            DataChanges dataChanges = proposedChanges as DataChanges;

            if (dataChanges != null && dataChanges.HasData)
            {
                CommitWrite(dataChanges);
            }
            writeTransactionOpened = false;
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Loads all the lists and variables needed to create reports
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Frm_Reports_Load(object sender, EventArgs e)
        {
            comboBox_SelectReport.Items.Add(reportAppointmentMonthOption);
            comboBox_SelectReport.Items.Add(reportConsultantScheduleOption);
            comboBox_SelectReport.Items.Add(reportCustomerAppointmentsOption);

            //Load all appointments into Lists to be able to search them quickly once this loads
            using (var conn = new MySqlConnection(connecterString))
            {
                string getAppointments = "SELECT * FROM appointment";
                var    reader          = DataChanges.GetMySqlReader(conn, getAppointments);
                while (reader.Read())
                {
                    //Fill Appointment Object Minus the Customer object
                    Appointment appointment = new Appointment();
                    appointment.appointmentId = (int)reader["appointmentId"];
                    appointment.customerId    = (int)reader["customerId"];
                    appointment.title         = reader["title"].ToString();
                    appointment.description   = reader["description"].ToString();
                    appointment.location      = reader["location"].ToString();
                    appointment.contact       = reader["contact"].ToString();
                    appointment.start         = Convert.ToDateTime(reader["start"]);
                    appointment.end           = Convert.ToDateTime(reader["end"]);
                    appointment.createDate    = Convert.ToDateTime(reader["createDate"]);
                    appointment.createdBy     = reader["createdBy"].ToString();
                    appointment.lastUpdate    = Convert.ToDateTime(reader["lastUpdate"]);
                    appointment.lastUpdateBy  = reader["lastUpdateBy"].ToString();
                    appointment.type          = reader["appointmentType"].ToString();
                    appointment.userId        = (int)reader["userId"];

                    //Add Appointment to list of Appointments one by one
                    appointments.Add(appointment);
                }
                reader.Close();
                foreach (var appointment in appointments)
                {
                    appointment.customerObject = customers.Where(i => i.customerID == appointment.customerId).First();
                }

                //Load all Users into a list to be able to search those quickly
                string getUsersQuery = "SELECT * FROM user";
                var    usersReader   = DataChanges.GetMySqlReader(conn, getUsersQuery);
                while (usersReader.Read())
                {
                    User readUser = new User();
                    readUser.userId   = (int)usersReader["userId"];
                    readUser.userName = usersReader["userName"].ToString();
                    users.Add(readUser);
                }
                usersReader.Close();
            }
            //Load all Customer Names and ID's (This is being done in Main Form when this form is created)
        }
Ejemplo n.º 20
0
        private void FlagFieldAsChanged(string fieldName, object previousValue)
        {
            if (fieldName.Equals("SuppressErrorNotification", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            if (!DataChanges.ContainsKey(fieldName))
            {
                DataChanges.Add(fieldName, previousValue);
                HasUnsavedChanges = true;
            }
        }
        protected override async Task InitializeAfterSemesters()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemClass()
            {
                Credits         = 3,
                Details         = "Some details about Math class",
                Identifier      = Guid.NewGuid(),
                Name            = "Math",
                RawColor        = ColorTools.GetArray(Colors.Blue, 3),
                UpperIdentifier = CurrentSemesterId
            });

            CurrentClassId = Guid.NewGuid();

            changes.Add(new DataItemClass()
            {
                Name            = "English",
                Details         = "The class where you write essays in.",
                Identifier      = CurrentClassId,
                Credits         = 4,
                RawColor        = ColorTools.GetArray(Colors.Red, 3),
                UpperIdentifier = CurrentSemesterId
            });

            changes.Add(new DataItemClass()
            {
                Name            = "Spanish",
                Details         = "Learn a foreign language",
                Identifier      = Guid.NewGuid(),
                Credits         = 4,
                RawColor        = ColorTools.GetArray(Colors.Green, 3),
                UpperIdentifier = base.CurrentSemesterId
            });

            changes.Add(new DataItemClass()
            {
                Name            = "Science",
                Details         = "Perform experiments",
                Identifier      = Guid.NewGuid(),
                Credits         = 4,
                RawColor        = ColorTools.GetArray(Colors.Purple, 3),
                UpperIdentifier = base.CurrentSemesterId
            });

            await DataStore.ProcessLocalChanges(changes);
        }
Ejemplo n.º 22
0
        public async Task TestViewModelCalendar_Normal()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemHomework()
            {
                Name            = "New Year 2016",
                Date            = new DateTime(2016, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Identifier      = Guid.NewGuid(),
                UpperIdentifier = base.CurrentClassId,
                Details         = ""
            });

            changes.Add(new DataItemHomework()
            {
                Identifier      = Guid.NewGuid(),
                Name            = "Birthday 2015",
                Date            = new DateTime(2015, 9, 25, 0, 0, 0, DateTimeKind.Utc),
                Details         = "Congrats!",
                UpperIdentifier = base.CurrentClassId
            });

            changes.Add(new DataItemHomework()
            {
                Identifier      = Guid.NewGuid(),
                Name            = "Afterparty 2015",
                Date            = new DateTime(2015, 9, 25, 0, 0, 0, DateTimeKind.Utc),
                Details         = "Celebrate!",
                UpperIdentifier = base.CurrentClassId
            });

            await base.DataStore.ProcessLocalChanges(changes);

            // TODO: Needs updating
            Assert.Fail("Needs updating");
            //var viewModel = await ViewModelCalendar.LoadAsync(base.LocalAccountId, base.CurrentSemesterId);

            //Assert.AreEqual(0, viewModel.Items.Count, "Should start empty");

            //await viewModel.ApplyFilterAsync(new DateTime(2015, 7, 1, 0, 0, 0, DateTimeKind.Utc), new DateTime(2015, 11, 1, 0, 0, 0, DateTimeKind.Utc));

            //Assert.AreEqual(2, viewModel.Items.Count, "After first filter");
            //Assert.IsTrue(viewModel.Items.Any(i => i.Name.Equals("Birthday 2015")));
            //Assert.IsTrue(viewModel.Items.Any(i => i.Name.Equals("Afterparty 2015")));
        }
Ejemplo n.º 23
0
        public void TestHomeworkExamSortingAll()
        {
            DataChanges changes = new DataChanges();

            changes.Add(new DataItemExam()
            {
                Name            = "Second item",
                Date            = new DateTime(2015, 1, 2, 0, 0, 0, DateTimeKind.Utc),
                UpperIdentifier = base.CurrentClassId
            });

            changes.Add(new DataItemHomework()
            {
                Name            = "First item",
                Date            = new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                UpperIdentifier = base.CurrentClassId
            });
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        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();
            });
        }
Ejemplo n.º 28
0
        public async Task MoveItem(BaseViewItemHomeworkExam item, DateTime toDate)
        {
            try
            {
                if (item.Date.Date == toDate.Date)
                {
                    return;
                }

                DataChanges changes = new DataChanges();

                var editedDataItem = item.CreateBlankDataItem();
                editedDataItem.Date = DateTime.SpecifyKind(toDate.Date.Add(item.Date.TimeOfDay), DateTimeKind.Utc);
                changes.Add(editedDataItem);

                await PowerPlannerApp.Current.SaveChanges(changes);
            }
            catch (Exception ex)
            {
                TelemetryExtension.Current?.TrackException(ex);
            }
        }
Ejemplo n.º 29
0
        /// <summary>
        /// The method is called at the precommit stage of the variable.
        /// </summary>
        /// <remarks>
        /// <see cref="DataAccessVariable{DataType}"/> opens a write-transaction and actually updates the related storage with
        /// accumulated changes.
        /// </remarks>
        internal protected override void OnPrecommit(Variable.Changes proposedChanges)
        {
            /* Changing state of the variable */
            DataChanges dataChanges = proposedChanges as DataChanges;

            if (dataChanges != null && dataChanges.HasData)
            {
                // Writing data
                BeginWriteTransaction(dataChanges);
                writeTransactionOpened = true;

                if (dataChanges.Data != null)
                {
                    int n = dataChanges.Data.Count;
                    for (int i = 0; i < n; i++)
                    {
                        DataPiece piece = dataChanges.Data[i];
                        WriteData(piece.Origin, piece.Data);
                    }
                }
            }
        }
Ejemplo n.º 30
0
        public void Save()
        {
            TryStartDataOperationAndThenNavigate(async delegate
            {
                string name = Name;

                if (string.IsNullOrWhiteSpace(name))
                {
                    new PortableMessageDialog(PowerPlannerResources.GetString("AddYearPage_MessageNoName_Body"), PowerPlannerResources.GetString("AddYearPage_MessageNoName_Title")).Show();
                    return;
                }

                DataItemYear year;

                if (YearToEdit != null)
                {
                    year = new DataItemYear()
                    {
                        Identifier = YearToEdit.Identifier
                    }
                }
                ;

                else
                {
                    year = new DataItemYear()
                    {
                        Identifier = Guid.NewGuid()
                    }
                };

                year.Name = name;

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

                await PowerPlannerApp.Current.SaveChanges(changes);
            }, delegate