Example #1
0
 public static UedWs.UedDate DateTimeToUedDate(DateTime date)
 {
     UedWs.UedDate uedDate = new UedWs.UedDate();
     uedDate.year   = date.Year.ToString();
     uedDate.month  = date.Month.ToString();
     uedDate.day    = date.Day.ToString();
     uedDate.hour   = date.Hour.ToString();
     uedDate.minute = date.Minute.ToString();
     uedDate.second = date.Second.ToString();
     return(uedDate);
 }
Example #2
0
        /// <summary>
        /// The recent modifications for a course
        /// </summary>
        /// <param name="account">With the account data to use on the query</param>
        private void GetRecentModificationsForAccount(Account account)
        {
            LinkedList <Frame> frames   = new LinkedList <Frame>();
            BackgroundWorker   bgWorker = new BackgroundWorker();

            this.workers.AddLast(bgWorker);

            bgWorker.WorkerReportsProgress      = true;
            bgWorker.WorkerSupportsCancellation = true;
            bgWorker.DoWork += new DoWorkEventHandler(delegate(object wsender, DoWorkEventArgs args)  {
                // Load the remote data
                try {
                    UedWs.UEDWSPortTypeClient client = new UedWs.UEDWSPortTypeClient();
                    client.Endpoint.Address          = new EndpointAddress(account.getOption(Properties.Settings.Default.MoodleServiceUrlSettingName));

                    UedWs.UedCredentials credentials = new UedWs.UedCredentials();
                    credentials.username             = account.getOption(Properties.Settings.Default.MoodleServiceUsernameSettingName);
                    credentials.autorizationKey      = account.getOption(Properties.Settings.Default.MoodleServiceAutorizationKeySettingName);

                    UedWs.UedDate beginDate = MoodleTimeline.DateTimeToUedDate(account.LastUpdate);

                    if (client.validateCredentials(credentials))
                    {
                        UedWs.UedCourse[] courses = client.getMyCourses(credentials);

                        int courseCount = 0;
                        bgWorker.ReportProgress(courseCount++);

                        foreach (UedWs.UedCourse course in courses)
                        {
                            UedWs.UedRecentModification[] recentModifications = client.getCourseRecentModifications(credentials, course.id, beginDate);

                            foreach (UedWs.UedRecentModification modification in recentModifications)
                            {
                                frames.AddLast(new Frame(account, "[" + account.Name + "] @" + course.fullName, modification.text + " " + modification.modulename, MoodleTimeline.UedDateToDateTime(modification.date), (modification.url.Equals("") ? null : new Uri(modification.url)), course.id));
                            }
                            bgWorker.ReportProgress(((courseCount++) * 100) / courses.Length);
                        }
                    }
                } catch (Exception) {
                    //MessageBox.Show(ex.Message+ ex.StackTrace);
                }
            });

            bgWorker.ProgressChanged += new ProgressChangedEventHandler(delegate(object s, ProgressChangedEventArgs args) {
                TimelineManager.ReportProgress(new Status(account.ID, "Checking for course events. " + args.ProgressPercentage + "% completed."));
            });

            bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object wsender, RunWorkerCompletedEventArgs args)  {
                this.CacheModificationsForAccount(account, frames);

                foreach (Frame frame in frames)
                {
                    this.AddFrame(frame);
                }
                this.workers.Remove(bgWorker);
                TimelineManager.RegisterEvent(account);
                ConfigurationManager.UpdateUserAccountLastUpdate(account.ID);
                TimelineManager.ReportProgress(new Status(account.ID, frames.Count + " account events loaded."));
            });
            bgWorker.RunWorkerAsync(account);
        }
Example #3
0
 public static DateTime UedDateToDateTime(UedWs.UedDate date)
 {
     return(new DateTime(int.Parse(date.year), int.Parse(date.month), int.Parse(date.day), int.Parse(date.hour), int.Parse(date.minute), int.Parse(date.second)));
 }