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); }
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(); }
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(); }