Example #1
0
        public string AddLevel2Calendar(string strOppID, SLXapi.Opportunity slxOpp, SLXapi.OpportunitySolutions2 slxOppS2,string outlookid, int sessionIndex)
        {
            Microsoft.Office.Interop.Outlook.AppointmentItem appt = null;

            string strEntryID = string.Empty;
            if(sessionIndex == 1)
                strEntryID = slxOppS2.SESSION1OUTLOOKID;
            else if (sessionIndex == 2)
                strEntryID = slxOppS2.SESSION2OUTLOOKID;
            else if (sessionIndex == 3)
                strEntryID = slxOppS2.SESSION3OUTLOOKID;
            else if (sessionIndex == 4)
                strEntryID = slxOppS2.SESSION4OUTLOOKID;
            else if (sessionIndex == 5)
                strEntryID = slxOppS2.SESSION5OUTLOOKID;
            else if (sessionIndex == 6)
                strEntryID = slxOppS2.SESSION6OUTLOOKID;
            else if (sessionIndex == 7)
                strEntryID = slxOppS2.SESSION7OUTLOOKID;
            else if (sessionIndex == 8)
                strEntryID = slxOppS2.SESSION8OUTLOOKID;

            Microsoft.Office.Interop.Outlook._Application olApp = new Microsoft.Office.Interop.Outlook.Application();
            if (olApp == null)
            {
                return "Failed to create Outlook Application";
            }
            Microsoft.Office.Interop.Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");
            Microsoft.Office.Interop.Outlook.MAPIFolder calendarFolder = olNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders);
            Microsoft.Office.Interop.Outlook.MAPIFolder oPRICalendar = (Microsoft.Office.Interop.Outlook.MAPIFolder)calendarFolder.Folders["PRI Calendar"];

            bool apptExists = false;
            if (strEntryID.Length > 10)
            {
                try
                {
                    appt = olNS.GetItemFromID(strEntryID);
                    //if (appt.EntryID == strEntryID)
                    //    apptExists = true;

                    //appt.Delete();
                    //appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)oPRICalendar.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
                }
                catch (System.Exception)
                {
                    appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)oPRICalendar.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
                }
            }
            else
            {
                appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)oPRICalendar.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
            }
            string trainerInitials = string.Empty;
            try
            {
                List<SLXapi.Opportunity_Trainers> oppT = SLXapi.Opportunity_Trainers.GetByOpportunityID(slxOpp.OpportunityID);

                //create the opp trainer initial string

                if (oppT.Count > 0)
                    trainerInitials += "(";
                for (int i = 0; i < oppT.Count; ++i)
                {
                    SLXapi.Contact contact = SLXapi.Contact.GetByID(oppT[i].contactid);
                    string initials = contact.firstname[0].ToString().ToUpper() + contact.lastname[0].ToString().ToUpper();
                    trainerInitials += initials;
                    if (i + 1 < oppT.Count)
                        trainerInitials += ",";

                }
                if (oppT.Count > 0)
                    trainerInitials += ")";
            }
            catch (System.Exception e)
            {
                return "There was an exception adding the trainer initials " + e.Message;
            }
            string description = string.Empty;
            if (sessionIndex == 1)
            {
                description = slxOppS2.SESSION1DESC;
                appt.Start = slxOppS2.SESSION1DATE;
                appt.End = slxOppS2.SESSION1DATE;
            }

            if (sessionIndex == 2)
            {
                description = slxOppS2.SESSION2DESC;
                appt.Start = slxOppS2.SESSION2DATE;
                appt.End = slxOppS2.SESSION2DATE;
            }

            if (sessionIndex == 3)
            {
                description = slxOppS2.SESSION3DESC;
                appt.Start = slxOppS2.SESSION3DATE;
                appt.End = slxOppS2.SESSION3DATE;
            }

            if (sessionIndex == 4)
            {
                description = slxOppS2.SESSION4DESC;
                appt.Start = slxOppS2.SESSION4DATE;
                appt.End = slxOppS2.SESSION4DATE;
            }

            if (sessionIndex == 5)
            {
                description = slxOppS2.SESSION5DESC;
                appt.Start = slxOppS2.SESSION5DATE;
                appt.End = slxOppS2.SESSION5DATE;
            }

            if (sessionIndex == 6)
            {
                description = slxOppS2.SESSION6DESC;
                appt.Start = slxOppS2.SESSION6DATE;
                appt.End = slxOppS2.SESSION6DATE;
            }

            if (sessionIndex == 7)
            {
                description = slxOppS2.SESSION7DESC;
                appt.Start = slxOppS2.SESSION7DATE;
                appt.End = slxOppS2.SESSION7DATE;
            }

            if (sessionIndex == 8)
            {
                description = slxOppS2.SESSION8DESC;
                appt.Start = slxOppS2.SESSION8DATE;
                appt.End = slxOppS2.SESSION8DATE;
            }

            appt.Subject = slxOpp.Type + " - " + description + " " + trainerInitials ;
            if (!apptExists)
                slxOpp.OutlookBodyText = "http://fogbugz.askpri.org/default.asp?" + slxOpp.FogBugzMainTicket;
            appt.Body = slxOpp.OutlookBodyText;
            appt.Location = slxOpp.Location;

            appt.AllDayEvent = true;
            appt.ReminderSet = false;
            appt.ReminderMinutesBeforeStart = 0;
            appt.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceNormal;
            appt.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olFree;

            try
            {
                //oPRICalendar.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem
                appt.Save();
            }
            catch (COMException ex)
            {
                Console.WriteLine(ex.ToString());
                return "There was an exception when saving appointment " + ex.Message;
            }
            strEntryID = appt.EntryID;
            //slxOpp.OutlookID = appt.EntryID;
            //SLXapi.Opportunity.Save(slxOpp);
            if(sessionIndex == 1)
            {
                slxOppS2.SESSION1OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 2)
            {
                slxOppS2.SESSION2OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 3)
            {
                slxOppS2.SESSION3OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 4)
            {
                slxOppS2.SESSION4OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 5)
            {
                slxOppS2.SESSION5OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 6)
            {
                slxOppS2.SESSION6OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 7)
            {
                slxOppS2.SESSION7OUTLOOKID = appt.EntryID;
            }
            if(sessionIndex == 8)
            {
                slxOppS2.SESSION8OUTLOOKID = appt.EntryID;
            }

            SLXapi.OpportunitySolutions2.Save(slxOppS2);
            return "Successfully Added to Outlook Calendar";
        }
Example #2
0
        public string AddLevel2Calendar(ExchangeService service, string strOppID, SLXapi.Opportunity slxOpp, SLXapi.OpportunitySolutions2 slxOppS2, string outlookid, int sessionIndex)
        {
            string strEntryID = string.Empty;
             if (sessionIndex == 1)
                 strEntryID = slxOppS2.SESSION1OUTLOOKID;
             else if (sessionIndex == 2)
                 strEntryID = slxOppS2.SESSION2OUTLOOKID;
             else if (sessionIndex == 3)
                 strEntryID = slxOppS2.SESSION3OUTLOOKID;
             else if (sessionIndex == 4)
                 strEntryID = slxOppS2.SESSION4OUTLOOKID;
             else if (sessionIndex == 5)
                 strEntryID = slxOppS2.SESSION5OUTLOOKID;
             else if (sessionIndex == 6)
                 strEntryID = slxOppS2.SESSION6OUTLOOKID;
             else if (sessionIndex == 7)
                 strEntryID = slxOppS2.SESSION7OUTLOOKID;
             else if (sessionIndex == 8)
                 strEntryID = slxOppS2.SESSION8OUTLOOKID;

             //service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "*****@*****.**");

             var userMailbox = new Mailbox(CALENDAR_EMAIL);
             FolderId folderId = new FolderId(WellKnownFolderName.Calendar, userMailbox);

             //Folder calendarFolder = Folder.Bind(service, folderId);
             //var itemView = new ItemView(20);   // page size
             //var userItems = service.FindItems(folderId, itemView);

             bool apptExists = false;

             // Verify that the appointment was created by using the appointment's item ID.
             Appointment appt = null;
             try
             {
                 ItemId idObj = new ItemId(strEntryID);
                 appt = Appointment.Bind(service, idObj, new PropertySet(AppointmentSchema.Id, AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End));
                 if (appt.Id.UniqueId == strEntryID)
                     apptExists = true;
             }
             catch (Exception)
             {

             }
             string trainerInitials = string.Empty;
             try
             {
                 List<SLXapi.Opportunity_Trainers> oppT = SLXapi.Opportunity_Trainers.GetByOpportunityID(slxOpp.OpportunityID);

                 //create the opp trainer initial string

                 if (oppT.Count > 0)
                     trainerInitials += "(";
                 for (int i = 0; i < oppT.Count; ++i)
                 {
                     SLXapi.Contact contact = SLXapi.Contact.GetByID(oppT[i].contactid);
                     string initials = contact.firstname[0].ToString().ToUpper() + contact.lastname[0].ToString().ToUpper();
                     trainerInitials += initials;
                     if (i + 1 < oppT.Count)
                         trainerInitials += ",";

                 }
                 if (oppT.Count > 0)
                     trainerInitials += ")";
             }
             catch (System.Exception e)
             {
                 return "There was an exception adding the trainer initials " + e.Message;
             }
             if (appt == null)
                 appt = new Appointment(service);

             string description = string.Empty;
             if (sessionIndex == 1)
             {
                 description = slxOppS2.SESSION1DESC;
                 appt.Start = slxOppS2.SESSION1DATE;
                 appt.End = slxOppS2.SESSION1DATE;
             }

             if (sessionIndex == 2)
             {
                 description = slxOppS2.SESSION2DESC;
                 appt.Start = slxOppS2.SESSION2DATE;
                 appt.End = slxOppS2.SESSION2DATE;
             }

             if (sessionIndex == 3)
             {
                 description = slxOppS2.SESSION3DESC;
                 appt.Start = slxOppS2.SESSION3DATE;
                 appt.End = slxOppS2.SESSION3DATE;
             }

             if (sessionIndex == 4)
             {
                 description = slxOppS2.SESSION4DESC;
                 appt.Start = slxOppS2.SESSION4DATE;
                 appt.End = slxOppS2.SESSION4DATE;
             }

             if (sessionIndex == 5)
             {
                 description = slxOppS2.SESSION5DESC;
                 appt.Start = slxOppS2.SESSION5DATE;
                 appt.End = slxOppS2.SESSION5DATE;
             }

             if (sessionIndex == 6)
             {
                 description = slxOppS2.SESSION6DESC;
                 appt.Start = slxOppS2.SESSION6DATE;
                 appt.End = slxOppS2.SESSION6DATE;
             }

             if (sessionIndex == 7)
             {
                 description = slxOppS2.SESSION7DESC;
                 appt.Start = slxOppS2.SESSION7DATE;
                 appt.End = slxOppS2.SESSION7DATE;
             }

             if (sessionIndex == 8)
             {
                 description = slxOppS2.SESSION8DESC;
                 appt.Start = slxOppS2.SESSION8DATE;
                 appt.End = slxOppS2.SESSION8DATE;
             }

             appt.Subject = slxOpp.Type + " - " + description + " " + trainerInitials + "; Webinar";

             if (!apptExists)
                 slxOpp.OutlookBodyText = "http://fogbugz.askpri.org/default.asp?" + slxOpp.FogBugzMainTicket;

             appt.Body = slxOpp.OutlookBodyText;
             appt.Location = slxOpp.Location;
             //appt.Start = slxOpp.StartDate;

             //appt.End = slxOpp.EndDate;
             appt.IsAllDayEvent = true;
             appt.IsReminderSet = false;
             appt.ReminderMinutesBeforeStart = 0;
             appt.Importance = Importance.Normal;
             appt.LegacyFreeBusyStatus = LegacyFreeBusyStatus.Free;
             try
             {
                 if (apptExists)
                     appt.Update(ConflictResolutionMode.AutoResolve);
                 else
                     appt.Save(folderId);
             }
             catch (COMException ex)
             {
                 Console.WriteLine(ex.ToString());
                 return "There was an exception when saving appointment " + ex.Message;
             }

             Item item = Item.Bind(service, appt.Id, new PropertySet(ItemSchema.Subject));
             Console.WriteLine("Retrieved Appointment: " + item.Subject + "\n");

             //save the outlook appointment id to SLX Opportunity
             //slxOpp.OutlookID = appt.Id.UniqueId;
             strEntryID = appt.Id.UniqueId;
             //slxOpp.OutlookID = appt.EntryID;
             //SLXapi.Opportunity.Save(slxOpp);
             if (sessionIndex == 1)
             {
                 slxOppS2.SESSION1OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 2)
             {
                 slxOppS2.SESSION2OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 3)
             {
                 slxOppS2.SESSION3OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 4)
             {
                 slxOppS2.SESSION4OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 5)
             {
                 slxOppS2.SESSION5OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 6)
             {
                 slxOppS2.SESSION6OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 7)
             {
                 slxOppS2.SESSION7OUTLOOKID = strEntryID;
             }
             if (sessionIndex == 8)
             {
                 slxOppS2.SESSION8OUTLOOKID = strEntryID;
             }

             SLXapi.OpportunitySolutions2.Save(slxOppS2);
             return "Successfully Added to Outlook Calendar";
        }