Example #1
0
        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
                        });
                    }
                }
            }
        }