public async Task <ActionResult> GoogleCalendarAsync(CancellationToken cancellationToken) { var result = await new AuthorizationCodeMvcApp(this, new Showcase.Util.ZenoFlowMetadata()). AuthorizeAsync(cancellationToken); if (result.Credential != null) { var service = new CalendarService(new BaseClientService.Initializer { HttpClientInitializer = result.Credential, ApplicationName = "ASP.NET MVC Sample" }); if (String.IsNullOrEmpty(Request.Form["CalendarID"])) { CalendarListResource.ListRequest request0 = service.CalendarList.List(); request0.MaxResults = 10; // List events. CalendarList calendars = request0.Execute(); string desc = string.Empty; Dictionary <string, string> calendarList = new Dictionary <string, string>(); if (calendars.Items != null && calendars.Items.Count > 0) { foreach (var calendarItem in calendars.Items) { calendarList.Add(calendarItem.Id, calendarItem.Summary); } } ViewBag.Message = "Please select which calendar you want to add."; return(View(calendarList)); } else { DateTime tomorrow = DateTime.Today.AddDays(1); string chineseDate = ChineseCalendar.GetChineseDate(tomorrow); var newEvent = new Google.Apis.Calendar.v3.Data.Event() { Summary = chineseDate, Start = new EventDateTime() { Date = tomorrow.ToString("yyyy-MM-dd"), }, End = new EventDateTime() { Date = tomorrow.ToString("yyyy-MM-dd"), }, Transparency = "transparent" }; EventsResource.InsertRequest request = service.Events.Insert(newEvent, Request.Form["CalendarID"]); Event createdEvent = request.Execute(); ViewBag.Message = "Google Calendar Event Added: URL = " + createdEvent.HtmlLink; return(View()); } /* * Showcase.ZenoService.ZenoServiceClient zeno = new Showcase.ZenoService.ZenoServiceClient(); * GoogleRequest request = new GoogleRequest(); * request.Type = ShowcaseService.Contract.GoogleRequestType.CalendarPush; * request.User = new ShowcaseService.Contract.GoogleUser(){ AccessToken = result.Credential.Token.AccessToken, RefreshToken = result.Credential.Token.RefreshToken}; * GoogleResponse response = zeno.InvokeGoogleService(request); * ViewBag.Message = response.Message; */ } else { return(new RedirectResult(result.RedirectUri)); } }