コード例 #1
0
ファイル: SyncScheduleTask.cs プロジェクト: minas69/eios
        public async Task RunSyncSchedule()
        {
            Debug.WriteLine("TaskDebugger: SyncScheduleTask");

            try
            {
                var occupationsFromDB = await App.Database.GetOccupations(App.IdGroupCurrent);

                if (CrossConnectivity.Current.IsConnected)
                {
                    if (occupationsFromDB == null || App.LastDate == DateTime.MinValue || App.LastDate != App.DateNow)
                    {
                        var groups = await App.Database.GetGroups();

                        await App.Database.DropTable <Student>();

                        await App.Database.DropTable <Occupation>();

                        await App.Database.CreateTable <Student>();

                        await App.Database.CreateTable <Occupation>();

                        foreach (var group in groups)
                        {
                            await SyncOccupations(group.IdGroup);
                            await SyncStudents(group.IdGroup);
                        }
                    }
                }
                isSuccessful = true;
            }
            catch (HttpRequestException)
            {
                isSuccessful = false;
            }

            var message = new OnScheduleSyncronizedMessage()
            {
                IsSuccessful = isSuccessful,
            };

            Device.BeginInvokeOnMainThread(() =>
            {
                MessagingCenter.Send(message, "OnScheduleSyncronizedMessage");
            });

            App.IsScheduleSync = false;

            App.IsAttendanceSync = true;
            MessagingCenter.Send(new StartSyncAttendanceTaskMessage(), "StartSyncAttendanceTaskMessage");
        }
コード例 #2
0
ファイル: GetScheduleTask.cs プロジェクト: minas69/eios
        public async Task RunGetSchedule()
        {
            Debug.WriteLine("TaskDebugger: GetScheduleTask. New Date selected");

            MessagingCenter.Send(new StopSyncAttendanceTaskMessage(), "StopSyncAttendanceTaskMessage");
            try
            {
                isSuccessful = false;
                if (CrossConnectivity.Current.IsConnected)
                {
                    await App.Database.DropTable <Occupation>();

                    await App.Database.CreateTable <Occupation>();

                    foreach (var group in App.Groups)
                    {
                        await SyncOccupations(group.IdGroup);
                    }
                    isSuccessful = true;

                    await App.Current.SavePropertiesAsync();
                }
            }
            catch (HttpRequestException ex)
            {
                Debug.WriteLine("GetScheduleTask: " + ex.Message);
            }

            var message = new OnScheduleSyncronizedMessage()
            {
                IsSuccessful = isSuccessful,
            };

            Device.BeginInvokeOnMainThread(() =>
            {
                MessagingCenter.Send(message, "OnScheduleSyncronizedMessage");
            });

            App.IsScheduleSync = false;

            App.IsAttendanceSync = true;
            MessagingCenter.Send(new StartSyncAttendanceTaskMessage(), "StartSyncAttendanceTaskMessage");
        }