public ActionResult PlayWithMail(PlayWithMailViewModel model) { if (!ModelState.IsValid) { return View("Index", model); } AntiForgery.Validate(); var folders = MailHelper.ListFolders(); // Here you can use whatever mailbox name that you like, instead of Inbox var messages = MailHelper.ListMessages(folders.FirstOrDefault(f => f.Name == "Posta in arrivo" || f.Name == "Inobx").Id); if (messages != null && messages.Count > 0) { var message = MailHelper.GetMessage(messages[0].Id, true); foreach (var attachment in message.Attachments) { // Download content only for attachments smaller than 100K if (attachment.Size < 100 * 1024) { attachment.EnsureContent(); } } } MailHelper.SendMessage(new Models.MailMessageToSend { Message = new Models.MailMessage { Subject = "Test message", Body = new Models.ItemBody { Content = "<html><body><h1>Hello from ASP.NET MVC calling Microsoft Graph API!</h1></body></html>", Type = Models.BodyType.Html, }, To = new List<Models.UserInfoContainer>( new Models.UserInfoContainer[] { new Models.UserInfoContainer { Recipient = new Models.UserInfo { Name = model.MailSendToDescription, Address = model.MailSendTo, } } }), }, SaveToSentItems = true, }); if (messages != null && messages.Count > 0) { MailHelper.Reply(messages[0].Id, "This a direct reply!"); MailHelper.ReplyAll(messages[0].Id, "This a reply all!"); MailHelper.Forward(messages[0].Id, new List<Models.UserInfoContainer>( new Models.UserInfoContainer[] { new Models.UserInfoContainer { Recipient = new Models.UserInfo { Name = model.MailSendToDescription, Address = model.MailSendTo, } }, new Models.UserInfoContainer { Recipient = new Models.UserInfo { Address = "*****@*****.**", Name = "Someone Else", } }, }), "Hey! Look at this!"); } return View("Index"); }
public ActionResult PlayWithCalendars(PlayWithMailViewModel model) { if (!ModelState.IsValid) { return View("Index", model); } AntiForgery.Validate(); var calendars = CalendarHelper.ListCalendars(); var calendar = CalendarHelper.GetCalendar(calendars[0].Id); var events = CalendarHelper.ListEvents(calendar.Id, 0); var eventsCalendarView = CalendarHelper.ListEvents(calendar.Id, DateTime.Now, DateTime.Now.AddDays(10), 0); if (events[0].ResponseStatus != null && events[0].ResponseStatus.Response == Models.ResponseType.NotResponded) { CalendarHelper.SendFeedbackForMeetingRequest( calendar.Id, events[0].Id, MeetingRequestFeedback.Accept, "I'm looking forward to meet you!"); } var singleEvent = CalendarHelper.CreateEvent(calendars[0].Id, new Models.Event { Attendees = new List<Models.UserInfoContainer>( new Models.UserInfoContainer[] { new Models.UserInfoContainer { Recipient = new Models.UserInfo { Name = model.MailSendToDescription, Address = model.MailSendTo, } }, new Models.UserInfoContainer { Recipient = new Models.UserInfo { Address = "*****@*****.**", Name = "Someone Else", } }, }), Start = new Models.TimeInfo { DateTime = DateTime.Now.AddDays(2).ToUniversalTime(), TimeZone = "UTC" }, OriginalStartTimeZone = "UTC", End = new Models.TimeInfo { DateTime = DateTime.Now.AddDays(2).AddHours(1).ToUniversalTime(), TimeZone = "UTC" }, OriginalEndTimeZone = "UTC", Importance = Models.ItemImportance.High, Subject = "Introducing the Microsoft Graph API", Body = new Models.ItemBody { Content = "<html><body><h2>Let's talk about the Microsoft Graph API!</h2></body></html>", Type = Models.BodyType.Html, }, Location = new Models.EventLocation { Name = "PiaSys.com Head Quarters", }, IsAllDay = false, IsOrganizer = true, ShowAs = Models.EventStatus.WorkingElsewhere, Type = Models.EventType.SingleInstance, }); var nextMonday = DateTime.Now.AddDays(((int)DayOfWeek.Monday - (int)DateTime.Now.DayOfWeek + 7) % 7); var nextMonday9AM = new DateTime(nextMonday.Year, nextMonday.Month, nextMonday.Day, 9, 0, 0); var lastDayOfMonth = new DateTime(nextMonday.AddMonths(1).Year, nextMonday.AddMonths(1).Month, 1).AddDays(-1); var eventSeries = CalendarHelper.CreateEvent(calendars[0].Id, new Models.Event { Start = new Models.TimeInfo { DateTime = nextMonday9AM.ToUniversalTime(), TimeZone = "UTC" }, OriginalStartTimeZone = "UTC", End = new Models.TimeInfo { DateTime = nextMonday9AM.AddHours(1).ToUniversalTime(), TimeZone = "UTC" }, OriginalEndTimeZone = "UTC", Importance = Models.ItemImportance.Normal, Subject = "Recurring Event about Microsoft Graph API", Body = new Models.ItemBody { Content = "<html><body><h2>Let's talk about the Microsoft Graph API!</h2></body></html>", Type = Models.BodyType.Html, }, Location = new Models.EventLocation { Name = "Paolo's Office", }, IsAllDay = false, IsOrganizer = true, ShowAs = Models.EventStatus.Busy, Type = Models.EventType.SeriesMaster, Recurrence = new Models.EventRecurrence { Pattern = new Models.EventRecurrencePattern { Type = Models.RecurrenceType.Weekly, DaysOfWeek = new DayOfWeek[] { DayOfWeek.Monday }, Interval = 1, }, Range = new Models.EventRecurrenceRange { StartDate = nextMonday9AM.ToUniversalTime(), Type = Models.RecurrenceRangeType.EndDate, EndDate = lastDayOfMonth.ToUniversalTime(), } } }); var seriesInstances = CalendarHelper.ListSeriesInstances( calendar.Id, eventSeries.Id, DateTime.Now, DateTime.Now.AddMonths(2)); var singleEventToUpdate = CalendarHelper.GetEvent(calendar.Id, events[0].Id); singleEventToUpdate.Attendees = new List<Models.UserInfoContainer>( new Models.UserInfoContainer[] { new Models.UserInfoContainer { Recipient = new Models.UserInfo { Name = model.MailSendToDescription, Address = model.MailSendTo, } }, }); var updatedEvent = CalendarHelper.UpdateEvent(calendar.Id, singleEventToUpdate); CalendarHelper.DeleteEvent(calendar.Id, singleEvent.Id); CalendarHelper.DeleteEvent(calendar.Id, eventSeries.Id); return View("Index"); }