示例#1
0
        /// <summary>
        /// <c>CreateFolder</c> member function
        /// create folder  with provided  folder name and its properties
        /// </summary>
        /// <param name="foldername"></param>
        /// <param name="xMLLogProperties"></param>
        public void CreateFolder(string foldername, XMLLogProperties xMLLogProperties)
        {
            try
            {
                string path = UserLogManagerUtility.GetFolderOutLookLocation(foldername);

                path = path.Remove(0, 2);
                string[] folderpath = path.Split('\\');

                Microsoft.Office.Interop.Outlook.Application outlookObj = Globals.ThisAddIn.Application;
                addinExplorer = outlookObj.ActiveExplorer();

                Microsoft.Office.Interop.Outlook.NameSpace outlookNameSpace = outlookObj.GetNamespace("MAPI");
                Microsoft.Office.Interop.Outlook.MAPIFolder oInBox = outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
                Microsoft.Office.Interop.Outlook.MAPIFolder parentFolder = (Microsoft.Office.Interop.Outlook.MAPIFolder)oInBox.Parent;
                foreach (Outlook.Folder item in addinExplorer.Session.Folders)
                {
                    if (item.Name.Trim() == folderpath[0])
                    {
                        parentFolder = item;
                    }
                }
                //Gte MAPI Name space

                for (int i = 1; i < folderpath.Length; i++)
                {

                    Microsoft.Office.Interop.Outlook.MAPIFolder f = MAPIFolderWrapper.GetChildFolder(parentFolder, folderpath[i]);
                    if (f != null)
                    {

                        parentFolder = f;
                    }
                    else
                    {

                        if (i < folderpath.Length - 1)
                        {
                            Outlook.MAPIFolder newfolder;
                            newfolder = parentFolder.Folders.Add(folderpath[i], Type.Missing);
                            parentFolder = newfolder;
                        }
                        else
                        {
                            ThisAddIn tad = new ThisAddIn();

                            tad.ReConnection(xMLLogProperties, parentFolder);
                        }
                    }

                }

            }
            catch (Exception ex)
            {

            }
        }
示例#2
0
        /// <summary>
        /// <c>ReConnection</c> member function
        /// this function recreates the deleted  folder in outlook 
        /// </summary>
        /// <param name="xLogProperties"></param>
        /// <param name="parentfolder"></param>
        /// <returns></returns>
        public bool ReConnection(XMLLogProperties xLogProperties, Outlook.MAPIFolder parentfolder)
        {
            bool result = false;
            try
            {

                Outlook.MAPIFolder newFolder = null;
                ////////////////////////updated by Joy on 25.07.2012/////////////////
                Outlook.MAPIFolder newBrokenUploadsFolder = null;
                ////////////////////////updated by Joy on 25.07.2012/////////////////
                //outlookObj = new Outlook.Application();
                OutlookObj = Globals.ThisAddIn.Application;

                //Gte MAPI Name space
                outlookNameSpace = OutlookObj.GetNamespace("MAPI");
                Outlook.MAPIFolder olInboxFolder = outlookNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

                Outlook.MAPIFolder Target = parentfolder;

                bool created = CreateFolderInOutLookSideMenu(xLogProperties.DisplayFolderName, xLogProperties.SiteURL, out newFolder, Target);

                if (created == true && newFolder != null)
                {

                    //Set new folder location
                    xLogProperties.OutlookFolderLocation = newFolder.FolderPath;
                    //Create node in xml file
                    //  UserLogManagerUtility.CreateXMLFileForStoringUserCredentials(xLogProperties);

                    MAPIFolderWrapper omapi = null;
                    if (string.IsNullOrEmpty(xLogProperties.DocumentLibraryName) == true)
                    {
                        //Doc name is empty means Folder is not mapped with Doc Lib
                        omapi = new MAPIFolderWrapper(ref  newFolder, addinExplorer, false);
                    }
                    else
                    {
                        omapi = new MAPIFolderWrapper(ref newFolder, addinExplorer, true);
                    }

                    newFolders.Add(omapi);

                }

            }
            catch (Exception ex)
            {

            }
            return result;
        }
示例#3
0
        private void CreateDefaultAddEventOnFolders()
        {
            Outlook.MAPIFolder oInBox = outlookNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
            Outlook.MAPIFolder parentFolder = (Outlook.MAPIFolder)myTargetFolder; //oInBox.Parent;
            //Get all the folder information
            XmlNodeList xFolders = UserLogManagerUtility.GetDefaultFoldersDetails(UserStatus.Active);
            if (xFolders != null)
            {
                string folderName = string.Empty, DocLibName = string.Empty;
                if (addinExplorer == null)
                {
                    MessageBox.Show("In Main Forms");
                }

                foreach (XmlNode xNode in xFolders)
                {
                    try
                    {
                        folderName = xNode.ChildNodes[2].InnerText;
                        //Get Doc Lib Name
                        DocLibName = xNode.ChildNodes[3].InnerText;

                        Outlook.MAPIFolder oChildFolder = MAPIFolderWrapper.GetFolder(parentFolder, folderName); // parentFolder.Folders[folderName];

                        if (oChildFolder != null && oChildFolder.Name == folderName)
                        {

                            MAPIFolderWrapper omapi = null;
                            if (string.IsNullOrEmpty(DocLibName) == true)
                            {
                                //Doc name is empty means Folder is not mapped with Doc Lib
                                //omapi = new MAPIFolderWrapper(oChildFolder, addinExplorer, false);
                                omapi = new MAPIFolderWrapper(ref  oChildFolder, this.Application.ActiveExplorer(), false);

                            }
                            else
                            {
                                omapi = new MAPIFolderWrapper(ref  oChildFolder, this.Application.ActiveExplorer(), true);
                                //omapi = new MAPIFolderWrapper(oChildFolder, addinExplorer, true);

                            }

                            //
                            string returl = UserLogManagerUtility.GetSPSiteURL(omapi.AttachedFolder.Name);
                            //string relativepath = UserLogManagerUtility.GetRelativePath(omapi.AttachedFolder.Name);
                            //string rootpath = "";
                            //if (returl.LastIndexOf(relativepath)!=-1)
                            //{
                            //    rootpath = returl.Remove(returl.LastIndexOf(relativepath));
                            //}
                            // string virtualpath = ListWebClass.WebViewUrl(returl);

                            //  omapi.AttachedFolder.WebViewURL = rootpath + "/_layouts/OutlookIntegration/DisplayImage.aspx?Action=OLIssue&ReturnUrl=" + returl;
                            omapi.AttachedFolder.WebViewURL = ListWebClass.WebViewUrl(returl);
                            //
                            myFolders.Add(omapi);

                        }
                        else
                        {
                            //create mapi folder

                            XMLLogProperties xLogProperties = new XMLLogProperties();
                            xLogProperties.UserName = EncodingAndDecoding.Base64Decode(xNode.ChildNodes[0].InnerText);
                            xLogProperties.Password = EncodingAndDecoding.Base64Decode(xNode.ChildNodes[1].InnerText);
                            xLogProperties.DisplayFolderName = folderName;
                            xLogProperties.SiteURL = xNode.ChildNodes[4].InnerText;

                            xLogProperties.UsersStatus = UserStatus.Active;
                            xLogProperties.DocumentLibraryName = xNode.ChildNodes[3].InnerText;
                            xLogProperties.DroppedURLType = "";

                            if (xNode.ChildNodes[5].InnerText == "Manually Specified")
                            {
                                xLogProperties.FolderAuthenticationType = AuthenticationType.Manual;
                            }
                            else
                            {
                                xLogProperties.FolderAuthenticationType = AuthenticationType.Domain;

                            }

                            xLogProperties.SPSiteVersion = SPVersionClass.GetSPVersionFromUrl(xLogProperties.SiteURL, xLogProperties.UserName, xLogProperties.Password, xLogProperties.FolderAuthenticationType);
                            Microsoft.Office.Interop.Outlook.Application outlookObj = Globals.ThisAddIn.Application;
                            //Gte MAPI Name space
                            Microsoft.Office.Interop.Outlook.NameSpace outlookNameSpac = outlookObj.GetNamespace("MAPI");

                            oInBox = outlookNameSpac.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
                            parentFolder = (Microsoft.Office.Interop.Outlook.MAPIFolder)oInBox.Parent;
                            Microsoft.Office.Interop.Outlook.MAPIFolder f = MAPIFolderWrapper.GetFolder(parentFolder, folderName);
                            frmConnectionProperties frmconnection = new frmConnectionProperties();
                            if (parentFolder.Name.Trim() != folderName.Trim())
                            {
                                if (f.Name.Trim() != parentFolder.Name.Trim())
                                {
                                    if (f != null)
                                    {

                                        f.WebViewURL = frmSPSiteConfigurationObject.URL;
                                        if (f.FolderPath.Contains("\\Deleted Items\\"))
                                        {
                                            try
                                            {
                                                f.Delete();
                                            }
                                            catch (Exception)
                                            {

                                            }
                                            frmconnection.CreateFolder(folderName, xLogProperties);
                                        }
                                    }
                                }
                                else
                                {
                                    frmconnection.CreateFolder(folderName, xLogProperties);
                                }
                            }
                        }
                    }
                    catch (Exception ex) { }
                }

            }
        }
示例#4
0
        internal static void AddDefaultMissingConnections()
        {
            try
            {
                XmlNodeList user_list = GetAllFoldersDetails(UserStatus.Active);
                XmlNodeList defa_list = GetDefaultFoldersDetails(UserStatus.Active);

                string userListfolderName = string.Empty;
                string userListurl = string.Empty;
                string defListfolderName = string.Empty;
                string defListurl = string.Empty;

                foreach (XmlNode xNode in defa_list)
                {
                    bool isFound = false;

                    defListfolderName = xNode.ChildNodes[2].InnerText;
                    defListurl = xNode.ChildNodes[4].InnerText;

                    foreach (XmlNode xNode1 in user_list)
                    {
                        userListfolderName = xNode1.ChildNodes[2].InnerText;
                        userListurl = xNode1.ChildNodes[4].InnerText;

                        if (defListfolderName.Equals(userListfolderName, StringComparison.OrdinalIgnoreCase)
                          && userListurl.Equals(defListurl, StringComparison.OrdinalIgnoreCase))
                        {
                            isFound = true;
                            break;
                        }

                    }

                    if (!isFound)
                    {
                        XMLLogProperties xLogProperties = new XMLLogProperties();

                        xLogProperties.DisplayFolderName = xNode.ChildNodes[2].InnerText;

                        xLogProperties.DocumentLibraryName = xNode.ChildNodes[3].InnerText;
                        xLogProperties.DroppedURLType = xNode.ChildNodes[11].InnerText;

                        if (xNode.ChildNodes[5].InnerText.Equals("Manually Specified", StringComparison.OrdinalIgnoreCase))
                            xLogProperties.FolderAuthenticationType = AuthenticationType.Manual;
                        else
                            xLogProperties.FolderAuthenticationType = AuthenticationType.Domain;

                        xLogProperties.OutlookFolderLocation = xNode.ChildNodes[8].InnerText;
                        xLogProperties.Password = xNode.ChildNodes[1].InnerText;
                        xLogProperties.SiteURL = xNode.ChildNodes[4].InnerText;
                        xLogProperties.SPSiteVersion = xNode.ChildNodes[12].InnerText;
                        xLogProperties.UserName = xNode.ChildNodes[0].InnerText;
                        xLogProperties.UsersStatus = UserStatus.Active;

                        CreateXMLFileForStoringUserCredentials(xLogProperties);
                    }
                }
            }
            catch (Exception ex)
            {
                ListWebClass.Log(ex.Message, true);
            }
        }
示例#5
0
        /// <summary>
        /// <c>UpdateFolderConfigDetails</c> member function
        /// Method to update xml node data in xml file
        /// </summary>
        /// <param name="updateNode">Update node as XmlNode</param>
        /// <param name="updateNodeName">Updating child node name as string. </param>
        /// <param name="updateNodeValue">Updating child node value as string.</param>
        /// <returns></returns>
        public static bool UpdateFolderConfigDetails(string oldFolderName, XMLLogProperties xLogProperties)
        {
            try
            {
                XmlNode xNode = null;
                UserLogManagerUtility.CheckItopiaDirectoryExits();
                XmlDocument xDoc = new XmlDocument();
                if (File.Exists(XMLFilePath))
                {
                    XmlNode root;
                    xDoc.Load(XMLFilePath);
                    //Get the root Elemet
                    root = xDoc.DocumentElement;
                    if (string.IsNullOrEmpty(oldFolderName))
                    {
                        oldFolderName = xLogProperties.DisplayFolderName;
                    }
                    //Get the Nodes contains with filename
                    XmlNodeList xlst = root.SelectNodes("descendant::Folder[FolderNameToCompare='" + oldFolderName.ToUpper() + "']");
                    if (xlst.Count > 0)
                    {
                        xNode = xlst[0];

                        if (xLogProperties.FolderAuthenticationType == AuthenticationType.Manual)
                        {
                            //, Folder name, site url, authentication mode and credentials.
                            xLogProperties.UserName = EncodingAndDecoding.Base64Encode(xLogProperties.UserName);
                            xLogProperties.Password = EncodingAndDecoding.Base64Encode(xLogProperties.Password);

                            xNode.ChildNodes[5].InnerText = "Manually Specified";

                        }
                        else
                        {
                            xNode.ChildNodes[5].InnerText = "Domain Credentials";

                            xLogProperties.UserName = string.Empty;
                            xLogProperties.Password = string.Empty;
                        }
                        xNode.ChildNodes[0].InnerText = xLogProperties.UserName;
                        xNode.ChildNodes[1].InnerText = xLogProperties.Password;
                        xNode.ChildNodes[2].InnerText = xLogProperties.DisplayFolderName;
                        xNode.ChildNodes[3].InnerText = xLogProperties.DocumentLibraryName;
                        xNode.ChildNodes[4].InnerText = xLogProperties.SiteURL;

                        //xNode.ChildNodes[5].InnerText = xLogProperties.FolderAuthenticationType;
                        //xNode.ChildNodes[6].InnerText = "Active"; //Active
                        //xNode.ChildNodes[7].InnerText = xLogProperties.DisplayFolderName.ToUpper();
                        //xNode.ChildNodes[8].InnerText = xLogProperties.OutlookFolderLocation;
                        //xNode.ChildNodes[9].InnerText = DateTime.Now;//Date Added
                        xNode.ChildNodes[10].InnerText = DateTime.Now.ToString();
                        xNode.ChildNodes[11].InnerText = xLogProperties.DroppedURLType;

                        xDoc.Save(UserLogManagerUtility.XMLFilePath);
                        return true;
                    }

                }
            }
            catch (Exception ex)
            { }
            return false;
        }
示例#6
0
        /// <summary>
        /// <c>CreateXMLFileForStoringUserCredentials</c>
        /// Method to save user credentionals
        /// </summary>
        /// <param name="xLogproperties"></param>
        /// <returns></returns>
        public static bool CreateXMLFileForStoringUserCredentials(XMLLogProperties xLogproperties)
        {
            try
            {
                //, Folder name, site url, authentication mode and credentials.
                xLogproperties.UserName = EncodingAndDecoding.Base64Encode(xLogproperties.UserName);
                xLogproperties.Password = EncodingAndDecoding.Base64Encode(xLogproperties.Password);
                XmlDocument xmlDoc = new XmlDocument();
                XmlElement elemRoot = null, elem = null;
                XmlNode root = null;
                bool isNewXMlFile = true;

                UserLogManagerUtility.CheckItopiaDirectoryExits();

                //Check file is existed or not
                if (System.IO.File.Exists(UserLogManagerUtility.XMLFilePath) == true)
                {
                    //Save the details in Xml file
                    xmlDoc.Load(UserLogManagerUtility.XMLFilePath);
                    //Get the root Elemet
                    root = xmlDoc.DocumentElement;
                    elemRoot = xmlDoc.CreateElement("Folder");
                    isNewXMlFile = false;
                }
                else
                {
                    XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
                    xmlDoc.PrependChild(xmlDec);
                    XmlElement docRoot = xmlDoc.CreateElement("UserCredentialsLog");
                    xmlDoc.AppendChild(docRoot);

                    //Create root node
                    elemRoot = xmlDoc.CreateElement("Folder");
                    docRoot.AppendChild(elemRoot);
                }
                elem = xmlDoc.CreateElement("UserName");
                elem.InnerText = xLogproperties.UserName;
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("Password");
                elem.InnerText = xLogproperties.Password;
                elemRoot.AppendChild(elem);
                //string strFolderName,string strSiteURL,string strAuthenticationType)
                elem = xmlDoc.CreateElement("DisplayName");
                elem.InnerText = xLogproperties.DisplayFolderName;
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("DocLibName");
                elem.InnerText = xLogproperties.DocumentLibraryName;
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("URL");
                elem.InnerText = xLogproperties.SiteURL;
                elemRoot.AppendChild(elem);
                elem = xmlDoc.CreateElement("AuthenticationType");
                if (xLogproperties.FolderAuthenticationType == AuthenticationType.Domain)
                {
                    elem.InnerText = "Domain Credentials";
                }
                else
                {
                    elem.InnerText = "Manually Specified";
                }
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("Status");
                if (xLogproperties.UsersStatus == UserStatus.Active)
                {
                    elem.InnerText = "Active";
                }
                else
                {
                    elem.InnerText = "Removed";
                }
                elemRoot.AppendChild(elem);

                //this will used to check the folder already existed or not
                elem = xmlDoc.CreateElement("FolderNameToCompare");
                elem.InnerText = xLogproperties.DisplayFolderName.ToUpper();
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("OutlookLocation");
                xLogproperties.OutlookFolderLocation = xLogproperties.OutlookFolderLocation.Replace("\\\\", "");
                elem.InnerText = xLogproperties.OutlookFolderLocation;
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("DateAdded");
                elem.InnerText = System.DateTime.Now.ToString();
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("LastUpload");
                elem.InnerText = System.DateTime.Now.ToString();
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("URLType");
                elem.InnerText = xLogproperties.DroppedURLType;
                elemRoot.AppendChild(elem);

                elem = xmlDoc.CreateElement("SPSiteVersion");
                elem.InnerText = xLogproperties.SPSiteVersion;
                elemRoot.AppendChild(elem);

                if (isNewXMlFile == false)
                {
                    //XML file already existed add the node to xml file
                    root.InsertBefore(elemRoot, root.FirstChild);
                }
                //Save xml file
                xmlDoc.Save(UserLogManagerUtility.XMLFilePath);

                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return false;
        }