Example #1
0
        public sealed override void RefreshData()
        {
            // get classes
            var currentSchool    = GetCurrentSchool();
            var classes          = ClassesRealm.GetAll(x => x.School == currentSchool).ToList();
            var classesContainer = new List <ViewModels.Controls.PrettyListViewItems.ClassDate>();

            var currentDate = SelectedDate;

            for (var i = 0; i < 7; i++)
            {
                // increase current date by one day
                currentDate = currentDate.AddDays(1);

                // loop through all classes
                foreach (var classModel in classes)
                {
                    // if class falls on the current date, add it to the list with the current date
                    if (classModel.Day == currentDate.DayOfWeek.ToString())
                    {
                        var classDate            = currentDate.UtcDateTime.Date;
                        var canceledClassesRealm = new Domain.Services.Realms.CanceledClasses();
                        var canceledClass        = canceledClassesRealm.GetRealmResults()
                                                   .Where(x => x.Class == classModel)
                                                   .FirstOrDefault(x => x.Date == classDate);
                        var canceledRecordExists = canceledClass != null;
                        var isCanceled           = canceledRecordExists && canceledClass.IsCanceled;
                        classesContainer.Add(new ViewModels.Controls.PrettyListViewItems.ClassDate(classModel, currentDate, isCanceled));
                    }
                }
            }

            ClassesList.Clear();
            ClassesList.AddRange(classesContainer);
        }
Example #2
0
        public override void RefreshData()
        {
            ClassModel = ClassesRealm.Get(ClassLocalId);

            var currentProfile = GetCurrentUser().Profile;

            AttendanceModel = AttendanceRealm.GetRealmResults()
                              .Where(x => x.Date == Date)
                              .FirstOrDefault(x => x.Profile == currentProfile);

            var canceledRealm = new Domain.Services.Realms.CanceledClasses();

            CanceledModel = canceledRealm.GetRealmResults().Where(x => x.Class == ClassModel).FirstOrDefault(x => x.Date == Date);
            if (CanceledModel != null)
            {
                IsCanceled = CanceledModel.IsCanceled;
            }

            GetAttendants();
        }
Example #3
0
        public async void HandleCanceledClass()
        {
            var canceledRealm   = new Domain.Services.Realms.CanceledClasses();
            var recordExists    = CanceledModel != null;
            var canceledLocalId = 0;

            if (recordExists)
            {
                canceledLocalId = CanceledModel.LocalId;
            }
            await canceledRealm.WriteAsync(realm =>
            {
                var record        = recordExists ? realm.Get(canceledLocalId) : realm.CreateObject();
                record.Date       = Date.UtcDateTime.Date;
                record.IsCanceled = IsCanceled;
                realm.Manage(record);
                record.Class  = ClassModel;
                record.Synced = false;
            });

            var synchronizer = new Domain.Services.Sync.Synchronizer();

            synchronizer.SyncPostsAndContinue();
        }