private void SyncCalendar(int InstructorID) { InstructorBusiness InsBO = new InstructorBusiness(); Instructor Ins = InsBO.GetInstructorByID(InstructorID); //Neu chua co teken thi ko lam gi het if (Ins.ApiToken == null) { return; } SimpleLog.Info("Begin Sync Calendar for Instructor " + Ins.Fullname + "."); try { String RefreshToken = Ins.ApiToken; var WrapperAPI = new GoogleCalendarAPIWrapper(RefreshToken); //Tim toan bo lich cua instructor var Calendars = WrapperAPI.GetCalendarList(); //Tim xem da co teaching calendar chua, chua co thi insert GoogleCalendar TeachingCalendar = Calendars.Items.SingleOrDefault(ca => ca.Summary.Equals("Teaching Calendar")); if (TeachingCalendar == null) { TeachingCalendar = WrapperAPI.InsertCalendar("Teaching Calendar"); } else { //Clear nhung ngay trong tuong lai WrapperAPI.ClearFutureDateCalendar(TeachingCalendar.ID); } //Bat dau lay event, ghi vao calendar. StudySessionBusiness StuSesBO = new StudySessionBusiness(); //Chi lay nhung event trong tuong lai, tiet kiem dung luong List <Event> Events = StuSesBO.GetCalendarEvent(InstructorID). Where(e => e.StartDate >= DateTime.Now).ToList(); foreach (var Event in Events) { WrapperAPI.InsertEvent(TeachingCalendar.ID, Event.title, Event.StartDate, Event.EndDate); } String Message = String.Format("Succesfull sync {0} events, from {1:dd-MM-yyyy} to {2:dd-MM-yyyy}", Events.Count, Events.First().StartDate, Events.Last().StartDate); SimpleLog.Info(Message); } catch (Exception e) { SimpleLog.Error("Error while trying to sync."); SimpleLog.Error(e.Message); } }
public ActionResult TeachingCalendar() { //Neu bam vao mon dang day, moi ra index //Tim instructor da dang nhạp vao string Username = this.HttpContext.User.Identity.Name; User User = AccBO.GetUserByUsername(Username); Instructor AuthorizedInstructor = InsBO.GetInstructorByUserID(User.UserID); //Tao Url var APIWrapper = new GoogleCalendarAPIWrapper(); APIWrapper.RedirectUri = @"http://localhost:35728/Instructor/Authorize"; ViewBag.AuthUrl = APIWrapper.GetAuthUrl(); ViewBag.Message = TempData["Message"]; return(View(AuthorizedInstructor)); }
public ActionResult Authorize(String code) { var APIWrapper = new GoogleCalendarAPIWrapper(); APIWrapper.RedirectUri = @"http://localhost:35728/Instructor/Authorize"; String RefreshToken = APIWrapper.GetRefreshToken(code); //Tim instructor da dang nhạp vao string Username = this.HttpContext.User.Identity.Name; User User = AccBO.GetUserByUsername(Username); Instructor AuthorizedInstructor = InsBO.GetInstructorByUserID(User.UserID); //Tu code, lay refresh token AuthorizedInstructor.ApiToken = RefreshToken; InsBO.UpdateExist(AuthorizedInstructor); TempData["Message"] = "Token received. Your calendar will be sync to Google Calendar later."; return(RedirectToAction("TeachingCalendar")); }