public void GetInvites() { ItemView iv = new ItemView(1000); var invites = service.FindItems(WellKnownFolderName.Calendar, iv).Result; if (invites.Count() > 0) { service.LoadPropertiesForItems(invites, PropertySet.FirstClassProperties); foreach (Appointment item in invites) { string externalId = item.Id.ToString(); string check = "SELECT COUNT(*) FROM Meeting WHERE externalId = @extId"; if (Database.NewConnection.ExecuteScalar <int>(check, new { extId = externalId }) > 0) { continue; } string name = item.Subject; string sender = service.ResolveName(item.Organizer.Address, ResolveNameSearchLocation.DirectoryOnly, true).Result[0].Mailbox.Address; var attendents = item.RequiredAttendees; string sql = "INSERT into Meeting (name, externalid, datetime, location) VALUES (@name, @extid, @dt, @loc);SELECT LAST_INSERT_ID();"; int newMeetingId = Database.NewConnection.Query <int>(sql, new { name = name, extid = externalId, dt = item.Start, loc = item.Location }).Single(); Business.Feedback feedbackBLL = new Business.Feedback(); Business.User userBLL = new Business.User(); int toUserId = userBLL.AddIfDoesntExist(sender); foreach (var attendent in attendents) { int fromUserId = userBLL.AddIfDoesntExist(attendent.Address); feedbackBLL.Add(new Models.FeedbackModel() { meetingId = newMeetingId, fromUserId = fromUserId, toUserId = toUserId }); } } } }