public async Task <string> GetTokens(string accessCode)
        {
            string tokenURL = serverURL + "getTokenRefreshToken.token?type=code&code=" +
                              accessCode;
            string tokenResponse = await WebRequestHelper.getResponseAsync(tokenURL);

            var details = JObject.Parse(tokenResponse);

            AccessToken  = details["access_token"].ToString();
            RefreshToken = details["refresh_token"].ToString();
            InstanceURL  = details["instance_url"].ToString();
            //EmailID = Globals.ThisAddIn.LoggedinUserID;
            return("");
        }
        //function for fetching LeadData and CaseData
        private async void CallLeadCaseDataBasedOnEmail(string emailId)
        {
            string MailDataURL = "";

            if (Globals.ThisAddIn.myCredentials != null)
            {
                MailDataURL = serverURL + "MailDataBasedOnEmail.getdata?email=" + emailId + "&to=" + Globals.ThisAddIn.myCredentials.EmailID;
                string EmailDataResponse = await WebRequestHelper.getResponseAsync(MailDataURL);

                if (EmailDataResponse != "")
                {
                    EmailBasedCaseData deserializedEmailBasedCaseData = JsonConvert.DeserializeObject <EmailBasedCaseData>(EmailDataResponse);
                    EmailBasedLeads = deserializedEmailBasedCaseData.LeadDataCollection;
                }
            }
        }
        public async void GetTokenViaRefreshToken(string refreshToken)
        {
            string tokenURL      = serverURL + "getTokenRefreshToken.token?type=re_tkn&re_tkn=" + refreshToken;
            string tokenResponse = await WebRequestHelper.getResponseAsync(tokenURL);

            var details = JObject.Parse(tokenResponse);

            try
            {
                AccessToken = details["access_token"].ToString();
                InstanceURL = details["instance_url"].ToString();
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Failed while fetching accesstoken using refresh token. " + ex.Message);
            }
        }
Exemplo n.º 4
0
        private async void FireSentimentsRequest()
        {
            string emailID       = Globals.ThisAddIn.myCredentials.EmailID;
            string SentimentsURL = "";

            if (Globals.ThisAddIn.myCredentials != null)
            {
                SentimentsURL = serverURL + "SentimentServlet.getdata?email=" + emailID;
                //+ "&access_token=" + Globals.ThisAddIn.myCredentials.AccessToken;
                //string PostData = "{"rm_email":}
                string sentimentsResponse = await WebRequestHelper.getResponseAsync(SentimentsURL);

                if (sentimentsResponse != "")
                {
                    formatJsonSentiments(sentimentsResponse);
                }
            }
        }
        private async void GetTemplates(string email)
        {
            try
            {
                string TemplateURL = "";
                if (Globals.ThisAddIn.myCredentials != null)
                {
                    TemplateURL = serverURL + "SelectTemplates.getdata?email=" + email;
                    string TemplateURLResponse = await WebRequestHelper.getResponseAsync(TemplateURL);

                    if (TemplateURLResponse != "")
                    {
                        //EmailBasedCaseData deserializedEmailBasedCaseData = JsonConvert.DeserializeObject<EmailBasedCaseData>(CaseBasedOnEmailURLResponse);
                        Templates = JsonConvert.DeserializeObject <Templates>(TemplateURLResponse);
                    }
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Exception Occured in SelectTemplates API. " + ex.Message);
            }
        }
Exemplo n.º 6
0
        private async void FireCaseRequest()
        {
            string emailID      = Globals.ThisAddIn.myCredentials.EmailID;
            string OpenCasesURL = "";

            if (Globals.ThisAddIn.myCredentials != null)
            {
                OpenCasesURL = serverURL + "displayCase.allcase?rm_email=" +
                               emailID + "&type=all&access_token=" + Globals.ThisAddIn.myCredentials.AccessToken
                               + "&instance_url=" + Globals.ThisAddIn.myCredentials.InstanceURL;

                string tokenResponse = await WebRequestHelper.getResponseAsync(OpenCasesURL);

                if (tokenResponse != "")
                {
                    formatJsonCases(tokenResponse);
                }
                else
                {
                    Globals.ThisAddIn.myCredentials.GetTokenViaRefreshToken(Globals.ThisAddIn.myCredentials.RefreshToken);
                    Globals.ThisAddIn.myCredentials.serializeCredentials(Globals.ThisAddIn.myCredentials);
                    tokenResponse = await WebRequestHelper.getResponseAsync(OpenCasesURL);

                    if (tokenResponse != "")
                    {
                        formatJsonCases(tokenResponse);
                    }
                    else
                    {
                        ShowLoginWindow();
                        if (OpenCases == null)
                        {
                            FireCaseRequest();
                        }
                    }
                }
            }
        }
        private async void items_ItemAdd(object Item)
        {
            try
            {
                string eventHandlerServletURL = "";
                if (Globals.ThisAddIn.myCredentials != null)
                {
                    Outlook.MailItem newMail = Item as Outlook.MailItem;
                    if (newMail != null)
                    {
                        eventHandlerServletURL = Properties.Settings.Default.ServerURL + "eventHandlerServlet.addnode?access_token="
                                                 + Globals.ThisAddIn.myCredentials.AccessToken + "&instance_url=" + Globals.ThisAddIn.myCredentials.InstanceURL;
                        string res = await WebRequestHelper.PostFormDataAsync(eventHandlerServletURL, newMail);

                        sendMail(res);
                    }
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Exception Occured in New Mail Handler,eventHandlerServlet.addnode API. " + ex.Message + "\n" + ex.StackTrace.ToString());
            }
        }
        private async void BtnOKClose_Click(object sender, RoutedEventArgs e)
        {
            BtnOKClose.IsEnabled = false;
            //Fire Case Close API and hide Popup
            string CaseCloseURL = "";

            if (Globals.ThisAddIn.myCredentials != null)
            {
                CaseCloseURL = serverURL + "closeCaseServlet.caseclose?access_token=" + Globals.ThisAddIn.myCredentials.AccessToken
                               + "&instance_url=" + Globals.ThisAddIn.myCredentials.InstanceURL + "&case_no="
                               + CloseCaseNumber + "&case_close_reason=" + CaseClosureReason.Text;
                string caseCloseResponse = await WebRequestHelper.getResponseAsync(CaseCloseURL);

                if (caseCloseResponse.Contains("Case closed and reason saved successfully"))
                {
                    var itemToRemove = EmailBasedCases.Single(r => r.CaseNumber == CloseCaseNumber);
                    EmailBasedCases.Remove(itemToRemove);
                    emailListBox.Items.Refresh();
                }
            }
            ShowPopup            = false;
            BtnOKClose.IsEnabled = true;
        }
        private async void CallGmailProfileAPI(string emailId)
        {
            string GmailURL = "";

            if (Globals.ThisAddIn.myCredentials != null)
            {
                GmailURL = serverURL + "getGmailProfile.gmailprofile?p_email=" + emailId;
                string gmailProfileResponse = await WebRequestHelper.getResponseAsync(GmailURL);

                if (gmailProfileResponse != "")
                {
                    var details = JObject.Parse(gmailProfileResponse);
                    UserName             = details["name"].ToString();
                    UserProfileImagePath = details["photo_link"].ToString();
                    UserEmail            = details["email"].ToString();
                }
                else
                {
                    UserName             = emailId.Substring(0, emailId.IndexOf('@'));
                    UserProfileImagePath = "https://i.stack.imgur.com/34AD2.jpg";
                    UserEmail            = emailId;
                }
            }
        }
Exemplo n.º 10
0
        private async void btnSubmitFeatures_Click(object sender, RoutedEventArgs e)
        {
            // string UserEmail = Globals.ThisAddIn.Application.Session.CurrentUser.AddressEntry.Address;
            string        UserEmail             = Globals.ThisAddIn.myCredentials.EmailID;
            StringBuilder featureAPIRequestData = new StringBuilder("rm_email=" + UserEmail);

            if (featureList.Contains("Email to Case Email Based"))
            {
                featureAPIRequestData.Append("&Email_to_Case_Email_Based=true");
            }
            else
            {
                featureAPIRequestData.Append("&Email_to_Case_Email_Based=false");
            }
            if (featureList.Contains("Email to Case Lead Based"))
            {
                featureAPIRequestData.Append("&Email_to_Case_Lead_Based=true");
            }
            else
            {
                featureAPIRequestData.Append("&Email_to_Case_Lead_Based=false");
            }
            if (featureList.Contains("Email to Case Content Based"))
            {
                featureAPIRequestData.Append("&Email_to_Case_Content_Based=true");
            }
            else
            {
                featureAPIRequestData.Append("&Email_to_Case_Content_Based=false");
            }

            if (featureList.Contains("Calendar Share"))
            {
                featureAPIRequestData.Append("&Calendar_Share=true");
            }
            else
            {
                featureAPIRequestData.Append("&Calendar_Share=false");
            }
            if (featureList.Contains("Mail Merge"))
            {
                featureAPIRequestData.Append("&Mail_Merge=true");
            }
            else
            {
                featureAPIRequestData.Append("&Mail_Merge=false");
            }
            if (featureList.Contains("Email Tracking"))
            {
                featureAPIRequestData.Append("&Email_Tracking=true");
            }
            else
            {
                featureAPIRequestData.Append("&Email_Tracking=false");
            }
            if (featureList.Contains("Smartphone Templates"))
            {
                featureAPIRequestData.Append("&Smartphone_Templates=true");
            }
            else
            {
                featureAPIRequestData.Append("&Smartphone_Templates=false");
            }

            if (featureList.Contains("Summarizer"))
            {
                featureAPIRequestData.Append("&Summarizer=true");
            }
            else
            {
                featureAPIRequestData.Append("&Summarizer=false");
            }
            if (featureList.Contains("Contact Detail Verification"))
            {
                featureAPIRequestData.Append("&Contact_Detail_Varification=true");
            }
            else
            {
                featureAPIRequestData.Append("&Contact_Detail_Varification=false");
            }
            if (featureList.Contains("Plug-ins for Gmail,Outlook,Office 365,Productivity Meter"))
            {
                featureAPIRequestData.Append("&plugins_for_gmail_outlook_office_365=true");
            }
            else
            {
                featureAPIRequestData.Append("&plugins_for_gmail_outlook_office_365=false");
            }
            if (featureList.Contains("Email Templates"))
            {
                featureAPIRequestData.Append("&email_templates=true");
            }
            else
            {
                featureAPIRequestData.Append("&email_templates=false");
            }
            if (featureList.Contains("Create SalesForce Records"))
            {
                featureAPIRequestData.Append("&Create_SalesForce_Records=true");
            }
            else
            {
                featureAPIRequestData.Append("&Create_SalesForce_Records=false");
            }
            if (featureList.Contains("Mailbox Inside SFDC"))
            {
                featureAPIRequestData.Append("&mail_box_inside_sfdc=true");
            }
            else
            {
                featureAPIRequestData.Append("&mail_box_inside_sfdc=false");
            }
            if (featureList.Contains("Lead to Case Content Based"))
            {
                featureAPIRequestData.Append("&lead_to_case_content_based=true");
            }
            else
            {
                featureAPIRequestData.Append("&lead_to_case_content_based=false");
            }

            if (featureList.Contains("Content Based Auto Case Type Assignment"))
            {
                featureAPIRequestData.Append("&content_based_auto_case_type_assignment=true");
            }
            else
            {
                featureAPIRequestData.Append("&content_based_auto_case_type_assignment=false");
            }
            if (featureList.Contains("Sentiment Analysis"))
            {
                featureAPIRequestData.Append("&sentiment_analysis=true");
            }
            else
            {
                featureAPIRequestData.Append("&sentiment_analysis=false");
            }
            if (featureList.Contains("Cognitive Autoreply"))
            {
                featureAPIRequestData.Append("&cognitive_auto_reply=true");
            }
            else
            {
                featureAPIRequestData.Append("&cognitive_auto_reply=false");
            }
            if (featureList.Contains("Lead Propensity to Buy Score Productivity Meter"))
            {
                featureAPIRequestData.Append("&lead_propensity_to_buy_score_productivity_meter=true");
            }
            else
            {
                featureAPIRequestData.Append("&lead_propensity_to_buy_score_productivity_meter=false");
            }
            if (featureList.Contains("Social Footprint"))
            {
                featureAPIRequestData.Append("&social_footprint=true");
            }
            else
            {
                featureAPIRequestData.Append("&social_footprint=false");
            }
            if (featureList.Contains("Productivity Meter"))
            {
                featureAPIRequestData.Append("&productivity_meter=true");
            }
            else
            {
                featureAPIRequestData.Append("&productivity_meter=false");
            }


            featureAPIRequestData.Append("&domain=" + InternalDomain.Text + "&emailid=" + EmailInternal.Text);
            try
            {
                var response = await WebRequestHelper.HttpPOST(featureAPIRequestData.ToString(), Properties.Settings.Default.ServerURL + "featureServletNew.addnode");

                //if (response=="feature saved")
                //{
                //    //Update Registry
                //    const string subkey = @"Software\MailTangy";
                //    string user = Environment.UserDomainName + "\\" + Environment.UserName;
                //    RegistryAccessRule rule = new RegistryAccessRule(user, RegistryRights.FullControl,
                //    AccessControlType.Allow);
                //    RegistrySecurity security = new RegistrySecurity();
                //    security.AddAccessRule(rule);

                //    using (var key = Registry.CurrentUser.OpenSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.FullControl))
                //    {
                //        if (key != null)
                //        {
                //            key.SetAccessControl(security);
                //            key.SetValue("HaveFeaturesSubmitted", "True");
                //            //close the custom Pane

                //        }

                //    }

                //}
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show("Failed while saving Features" + ex.Message);
            }
            finally
            {
                for (int i = 0; i < Globals.ThisAddIn.CustomTaskPanes.Count; i++)
                {
                    Microsoft.Office.Tools.CustomTaskPane pane = Globals.ThisAddIn.CustomTaskPanes[i];
                    pane.Visible = false;
                    //pane = null;
                }
                Globals.Ribbons.MailTangy.btnCases.Enabled = true;
            }
        }