/// <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) { } }
/// <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; }
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) { } } } }
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); } }
/// <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; }
/// <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; }