public async Task <ActionResult> LeadAppointment(string leadID) { var client = await GetExchangeClient(); LeadAppointmentViewModel vm = new LeadAppointmentViewModel(); vm.leadID = leadID; //look up lead information //get authorization token Authenticator authenticator = new Authenticator(); var authInfo = await authenticator.AuthenticateAsync(ExchangeResourceId); HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri(ExchangeResourceId); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", await authInfo.GetAccessToken()); var response = httpClient.GetAsync("/ews/odata/Me/Inbox/Messages('" + leadID + "')").Result; if (response.StatusCode == HttpStatusCode.OK) { var responseContent = await response.Content.ReadAsStringAsync(); var message = JObject.Parse(responseContent).ToObject <Message>(); vm.appointmentMessage = message.BodyPreview; } return(View(vm)); }
public async Task <ActionResult> LeadAppointment(LeadAppointmentViewModel vm) { var client = await GetExchangeClient(); Event appointment = new Event(); appointment.Subject = "Sales Lead Meeting"; appointment.Start = new DateTimeOffset(vm.appointmentDate); appointment.End = new DateTimeOffset(vm.appointmentDate.AddMinutes(30)); appointment.BodyPreview = vm.appointmentMessage; await client.Me.Events.AddEventAsync(appointment); return(RedirectToAction("Index")); }