private string FindRedirectAddress()
 {
     using (StringReader stringReader = new StringReader(this.responseText))
     {
         AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, EmailAddress>((long)this.GetHashCode(), "{0}: Trying to find if there is any redirect address in the response for email {1}.", TraceContext.Get(), this.emailAddress);
         XPathDocument  xpathDocument  = SafeXmlFactory.CreateXPathDocument(stringReader);
         XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();
         xpathNavigator.MoveToChild(XPathNodeType.Element);
         XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xpathNavigator.NameTable);
         xmlNamespaceManager.AddNamespace("rs", "http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a");
         string          xpath           = string.Format("//{0}:RedirectAddr", "rs");
         XPathExpression xpathExpression = xpathNavigator.Compile(xpath);
         xpathExpression.SetContext(xmlNamespaceManager);
         XPathNodeIterator xpathNodeIterator = xpathNavigator.Select(xpathExpression);
         if (xpathNodeIterator != null && xpathNodeIterator.Count != 0)
         {
             while (xpathNodeIterator.MoveNext())
             {
                 string.Format("{0}:RedirectAddr", "rs");
                 XPathNavigator xpathNavigator2 = xpathNodeIterator.Current;
                 if (xpathNavigator2 != null)
                 {
                     AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, string, EmailAddress>((long)this.GetHashCode(), "{0}: Found redirect address {1} in the response for original email {2}.", TraceContext.Get(), xpathNavigator2.Value, this.emailAddress);
                     return(xpathNavigator2.Value);
                 }
             }
         }
     }
     AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, EmailAddress, string>((long)this.GetHashCode(), "{0}: Could not find any nodes containing redirection address for email {1} in the auto discovery response: {2}", TraceContext.Get(), this.emailAddress, this.responseText);
     return(null);
 }
Esempio n. 2
0
        internal static SharingMessage DeserializeFromStream(Stream stream)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(SharingMessage));
            XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(stream);

            xmlTextReader.WhitespaceHandling = WhitespaceHandling.Significant;
            xmlTextReader.Normalization      = true;
            return(xmlSerializer.Deserialize(xmlTextReader) as SharingMessage);
        }
Esempio n. 3
0
 public RBACContext(Stream inputStream)
 {
     if (inputStream == null)
     {
         throw new ArgumentNullException("inputStream");
     }
     using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(inputStream))
     {
         this.Deserialize(xmlTextReader);
     }
 }
 private WebServiceUri FindWebServiceUrlForProtocol(string protocol)
 {
     using (StringReader stringReader = new StringReader(this.responseText))
     {
         AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, string>((long)this.GetHashCode(), "{0}: Trying to find web service Url from auto-discover response for protocol '{1}'", TraceContext.Get(), protocol);
         XPathDocument  xpathDocument  = SafeXmlFactory.CreateXPathDocument(stringReader);
         XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();
         xpathNavigator.MoveToChild(XPathNodeType.Element);
         XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xpathNavigator.NameTable);
         xmlNamespaceManager.AddNamespace("rs", "http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a");
         string          xpath           = string.Format("//{0}:Protocol[{0}:Type='{1}']", "rs", protocol);
         XPathExpression xpathExpression = xpathNavigator.Compile(xpath);
         xpathExpression.SetContext(xmlNamespaceManager);
         XPathNodeIterator xpathNodeIterator = xpathNavigator.Select(xpathExpression);
         if (xpathNodeIterator == null || xpathNodeIterator.Count == 0)
         {
             AutoDiscoverRequest.AutoDiscoverTracer.TraceError <object, string, string>((long)this.GetHashCode(), "{0}: could not find any nodes of protocol type '{1}' in the auto discover response: {2}.", TraceContext.Get(), protocol, this.responseText);
             return(null);
         }
         while (xpathNodeIterator.MoveNext())
         {
             string         xpath2          = string.Format("{0}:ASUrl", "rs");
             XPathNavigator xpathNavigator2 = xpathNodeIterator.Current.SelectSingleNode(xpath2, xmlNamespaceManager);
             if (xpathNavigator2 != null)
             {
                 string value = xpathNavigator2.Value;
                 if (value != null)
                 {
                     int serverVersion = 0;
                     if ("EXCH".Equals(protocol, StringComparison.OrdinalIgnoreCase))
                     {
                         string         xpath3          = string.Format("{0}:ServerVersion", "rs");
                         XPathNavigator xpathNavigator3 = xpathNodeIterator.Current.SelectSingleNode(xpath3, xmlNamespaceManager);
                         if (xpathNavigator3 != null)
                         {
                             string value2 = xpathNavigator3.Value;
                             if (!int.TryParse(value2, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out serverVersion))
                             {
                                 AutoDiscoverRequest.AutoDiscoverTracer.TraceError <object, string>((long)this.GetHashCode(), "{0}: ServerVersion '{1}' cannot be parsed as a hex number.", TraceContext.Get(), value2);
                             }
                         }
                     }
                     return(new WebServiceUri(value, protocol, this.uriSource, serverVersion));
                 }
             }
         }
     }
     return(null);
 }
 public void Load()
 {
     this.entries.Clear();
     using (UserConfiguration userConfiguration = UserConfigurationUtilities.GetUserConfiguration(this.configurationAttribute.ConfigurationName, this.userContext))
     {
         using (Stream xmlStream = userConfiguration.GetXmlStream())
         {
             if (xmlStream != null && xmlStream.Length > 0L)
             {
                 this.reader = SafeXmlFactory.CreateSafeXmlTextReader(xmlStream);
                 this.Parse(this.reader);
             }
         }
     }
 }
 private string FindError()
 {
     using (StringReader stringReader = new StringReader(this.responseText))
     {
         AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, EmailAddress>((long)this.GetHashCode(), "{0}: Trying to find if there is any error in the response for email {1}.", TraceContext.Get(), this.emailAddress);
         XPathDocument  xpathDocument  = SafeXmlFactory.CreateXPathDocument(stringReader);
         XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();
         xpathNavigator.MoveToChild(XPathNodeType.Element);
         XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xpathNavigator.NameTable);
         xmlNamespaceManager.AddNamespace("rs", "http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006");
         XPathExpression xpathExpression = xpathNavigator.Compile(AutoDiscoverRequest.ErrorSearchString);
         xpathExpression.SetContext(xmlNamespaceManager);
         XPathNodeIterator xpathNodeIterator = xpathNavigator.Select(xpathExpression);
         if (xpathNodeIterator != null && xpathNodeIterator.Count != 0)
         {
             string text  = null;
             string text2 = null;
             if (xpathNodeIterator.MoveNext())
             {
                 XPathNavigator xpathNavigator2 = xpathNodeIterator.Current.SelectSingleNode(AutoDiscoverRequest.ErrorCodeString, xmlNamespaceManager);
                 if (xpathNavigator2 != null)
                 {
                     text = xpathNavigator2.Value;
                     AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, string, EmailAddress>((long)this.GetHashCode(), "{0}: Found error code {1} in the response for original email {2}.", TraceContext.Get(), text, this.emailAddress);
                 }
                 XPathNavigator xpathNavigator3 = xpathNodeIterator.Current.SelectSingleNode(AutoDiscoverRequest.ErrorMessageString, xmlNamespaceManager);
                 if (xpathNavigator3 != null)
                 {
                     text2 = xpathNavigator3.Value;
                     AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, string, EmailAddress>((long)this.GetHashCode(), "{0}: Found error message {1} in the response for original email {2}.", TraceContext.Get(), text2, this.emailAddress);
                 }
             }
             if (text != null)
             {
                 if (text2 != null)
                 {
                     return("ErrorCode=" + text + ", Message=" + text2);
                 }
                 return("ErrorCode=" + text);
             }
         }
     }
     AutoDiscoverRequest.AutoDiscoverTracer.TraceDebug <object, EmailAddress, string>((long)this.GetHashCode(), "{0}: Could not find any nodes containing erroremail {1} in the auto discovery response: {2}", TraceContext.Get(), this.emailAddress, this.responseText);
     return(null);
 }
        public ClassificationRulePackage GetRulePackage(string ruleString)
        {
            ClassificationRulePackage result = null;
            XmlReader reader = null;

            try
            {
                XmlReaderSettings settings = new XmlReaderSettings
                {
                    ConformanceLevel = ConformanceLevel.Auto,
                    IgnoreComments   = true,
                    DtdProcessing    = DtdProcessing.Prohibit,
                    XmlResolver      = null
                };
                using (StringReader stringReader = new StringReader(ruleString))
                {
                    using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(stringReader))
                    {
                        XmlReader xmlReader;
                        reader = (xmlReader = XmlReader.Create(xmlTextReader, settings));
                        try
                        {
                            result = this.ParseRule(reader);
                        }
                        finally
                        {
                            if (xmlReader != null)
                            {
                                ((IDisposable)xmlReader).Dispose();
                            }
                        }
                    }
                }
            }
            catch (XmlException e)
            {
                throw new ParserException(e);
            }
            catch (RulesValidationException e2)
            {
                throw new ParserException(e2, reader);
            }
            return(result);
        }
Esempio n. 8
0
        // Token: 0x06003033 RID: 12339 RVA: 0x0011A5B0 File Offset: 0x001187B0
        private static List <DocumentLibrary> GetFavoritesList(UserContext userContext)
        {
            List <DocumentLibrary> list = new List <DocumentLibrary>();

            using (UserConfiguration userConfiguration = UserConfigurationUtilities.GetUserConfiguration("Owa.DocumentLibraryFavorites", userContext))
            {
                using (Stream xmlStream = userConfiguration.GetXmlStream())
                {
                    if (xmlStream != null && xmlStream.Length > 0L)
                    {
                        using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(xmlStream))
                        {
                            DocumentLibraryUtilities.ParseFavoritesList(xmlTextReader, list, userContext);
                        }
                    }
                }
            }
            return(list);
        }
 // Token: 0x06000925 RID: 2341 RVA: 0x00041CBC File Offset: 0x0003FEBC
 public void Load()
 {
     using (UserConfiguration userConfiguration = this.GetUserConfiguration())
     {
         using (Stream xmlStream = userConfiguration.GetXmlStream())
         {
             if (xmlStream != null && xmlStream.Length > 0L)
             {
                 using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(xmlStream))
                 {
                     this.Parse(xmlTextReader);
                     goto IL_3B;
                 }
             }
             this.ClearCache();
             IL_3B :;
         }
     }
 }
        internal static AirSyncUserSecurityContext Deserialize(Stream input)
        {
            XmlTextReader xmlTextReader = null;
            AirSyncUserSecurityContext result;

            try
            {
                xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(input);
                xmlTextReader.WhitespaceHandling = WhitespaceHandling.All;
                AirSyncUserSecurityContext airSyncUserSecurityContext = AirSyncUserSecurityContext.Deserialize(xmlTextReader);
                result = airSyncUserSecurityContext;
            }
            finally
            {
                if (xmlTextReader != null)
                {
                    xmlTextReader.Close();
                }
            }
            return(result);
        }
Esempio n. 11
0
 private XmlTextReader EndGetUsers(ICancelableAsyncResult asyncResult, out Exception exception)
 {
     try
     {
         exception = null;
         DownloadResult downloadResult = this.httpClient.EndDownload(asyncResult);
         if (!downloadResult.IsSucceeded)
         {
             WebException ex = downloadResult.Exception as WebException;
             if (ex != null)
             {
                 exception = new SharePointException((this.httpClient.LastKnownRequestedUri != null) ? this.httpClient.LastKnownRequestedUri.AbsoluteUri : string.Empty, ex, true);
             }
             else
             {
                 exception = downloadResult.Exception;
             }
         }
         else
         {
             if (downloadResult.ResponseStream == null)
             {
                 exception = new SharePointException((this.httpClient.LastKnownRequestedUri != null) ? this.httpClient.LastKnownRequestedUri.AbsoluteUri : string.Empty, ServerStrings.ErrorTeamMailboxGetUsersNullResponse);
                 return(null);
             }
             downloadResult.ResponseStream.Position = 0L;
             return(SafeXmlFactory.CreateSafeXmlTextReader(downloadResult.ResponseStream));
         }
     }
     finally
     {
         if (this.httpSessionConfig.RequestStream != null)
         {
             this.httpSessionConfig.RequestStream.Flush();
             this.httpSessionConfig.RequestStream.Dispose();
             this.httpSessionConfig.RequestStream = null;
         }
     }
     return(null);
 }
Esempio n. 12
0
 private static XmlReader InternalGetXmlReader(Stream stream)
 {
     return(SafeXmlFactory.CreateSafeXmlTextReader(stream));
 }
        // Token: 0x06000EBE RID: 3774 RVA: 0x0005D958 File Offset: 0x0005BB58
        protected override Hashtable ParseParameters()
        {
            Stream inputStream = base.EventHandler.HttpContext.Request.InputStream;

            if (inputStream.Length <= 0L)
            {
                return(base.ParameterTable);
            }
            try
            {
                this.reader = SafeXmlFactory.CreateSafeXmlTextReader(inputStream);
                this.reader.WhitespaceHandling = WhitespaceHandling.All;
                this.paramInfo = null;
                this.itemArray = null;
                this.state     = OwaEventXmlParser.XmlParseState.Start;
                while (this.state != OwaEventXmlParser.XmlParseState.Finished && this.reader.Read())
                {
                    switch (this.state)
                    {
                    case OwaEventXmlParser.XmlParseState.Start:
                        this.ParseStart();
                        break;

                    case OwaEventXmlParser.XmlParseState.Root:
                        this.ParseRoot();
                        break;

                    case OwaEventXmlParser.XmlParseState.Child:
                        this.ParseChild();
                        break;

                    case OwaEventXmlParser.XmlParseState.ChildText:
                        this.ParseChildText();
                        break;

                    case OwaEventXmlParser.XmlParseState.ChildEnd:
                        this.ParseChildEnd();
                        break;

                    case OwaEventXmlParser.XmlParseState.Item:
                        this.ParseItem();
                        break;

                    case OwaEventXmlParser.XmlParseState.ItemText:
                        this.ParseItemText();
                        break;

                    case OwaEventXmlParser.XmlParseState.ItemEnd:
                        this.ParseItemEnd();
                        break;
                    }
                }
            }
            catch (XmlException ex)
            {
                ExTraceGlobals.OehTracer.TraceDebug <string>(0L, "Parser threw an XML exception: {0}'", ex.Message);
                throw new OwaInvalidRequestException(ex.Message, ex, this);
            }
            finally
            {
                this.reader.Close();
            }
            return(base.ParameterTable);
        }
Esempio n. 14
0
        private static Dictionary <Guid, StoreTagData> Deserialize(Stream xmlStream, IExchangePrincipal mailboxOwner, out List <Guid> deletedTags, out RetentionHoldData retentionHoldData, bool returnRetentionHoldData, out Dictionary <Guid, StoreTagData> defaultArchiveTagData, out bool fullCrawlRequired)
        {
            fullCrawlRequired = false;
            Dictionary <Guid, StoreTagData> dictionary = new Dictionary <Guid, StoreTagData>();

            defaultArchiveTagData = new Dictionary <Guid, StoreTagData>();
            retentionHoldData     = default(RetentionHoldData);
            deletedTags           = new List <Guid>();
            if (xmlStream.Length == 0L)
            {
                MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal>(0L, "Mailbox:{0} has empty config message.", mailboxOwner);
                return(dictionary);
            }
            using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(xmlStream))
            {
                Exception ex = null;
                try
                {
                    xmlTextReader.MoveToContent();
                    if (returnRetentionHoldData)
                    {
                        if (!xmlTextReader.ReadToFollowing("RetentionHold"))
                        {
                            MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal>(0L, "Mailbox:{0}. Config item exists, but there is no RetentionHold node in it.", mailboxOwner);
                        }
                        else
                        {
                            if (xmlTextReader.MoveToAttribute("Enabled"))
                            {
                                retentionHoldData.HoldEnabled = bool.Parse(xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("RetentionComment"))
                            {
                                retentionHoldData.Comment = xmlTextReader.Value;
                            }
                            if (xmlTextReader.MoveToAttribute("RetentionUrl"))
                            {
                                retentionHoldData.Url = xmlTextReader.Value;
                            }
                            MrmFaiFormatter.Tracer.TraceDebug(0L, "Mailbox:{0}. Config item exists, and there is a RetentionHold node in it. HoldEnabled: {1}. Comment: {2}. Url: {3}", new object[]
                            {
                                mailboxOwner,
                                retentionHoldData.HoldEnabled,
                                retentionHoldData.Comment,
                                retentionHoldData.Url
                            });
                        }
                    }
                    while (!MrmFaiFormatter.IsTagNode(xmlTextReader) && !MrmFaiFormatter.IsArchiveSyncNode(xmlTextReader) && xmlTextReader.Read())
                    {
                    }
                    if (string.CompareOrdinal(xmlTextReader.Name, "ArchiveSync") == 0)
                    {
                        if (xmlTextReader.MoveToAttribute("FullCrawlRequired"))
                        {
                            fullCrawlRequired = bool.Parse(xmlTextReader.Value);
                        }
                        while (!MrmFaiFormatter.IsTagNode(xmlTextReader))
                        {
                            if (!xmlTextReader.Read())
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal>(0L, "Mailbox:{0}. Config item exists, but there is no ArchiveSync node in it.", mailboxOwner);
                    }
                    for (;;)
                    {
                        bool flag  = string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") == 0;
                        bool flag2 = string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") == 0;
                        bool flag3 = string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") == 0;
                        bool flag4 = string.CompareOrdinal(xmlTextReader.Name, "DeletedTag") == 0;
                        if (!flag && !flag2 && !flag3 && !flag4)
                        {
                            break;
                        }
                        MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal>(0L, "Mailbox:{0}. Found at least 1 tag in Config item.", mailboxOwner);
                        if (flag4)
                        {
                            Guid empty = System.Guid.Empty;
                            if (xmlTextReader.MoveToAttribute("Guid"))
                            {
                                empty = new Guid(xmlTextReader.Value);
                            }
                            deletedTags.Add(empty);
                            xmlTextReader.Read();
                        }
                        else
                        {
                            StoreTagData storeTagData = new StoreTagData();
                            storeTagData.Tag = new RetentionTag();
                            storeTagData.Tag.IsArchiveTag = flag2;
                            if (xmlTextReader.MoveToAttribute("ObjectGuid"))
                            {
                                storeTagData.Tag.Guid = new Guid(xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("Guid"))
                            {
                                storeTagData.Tag.RetentionId = new Guid(xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("Name"))
                            {
                                storeTagData.Tag.Name = xmlTextReader.Value;
                            }
                            if (xmlTextReader.MoveToAttribute("Comment"))
                            {
                                storeTagData.Tag.Comment = xmlTextReader.Value;
                            }
                            if (xmlTextReader.MoveToAttribute("Type"))
                            {
                                storeTagData.Tag.Type = (ElcFolderType)Enum.Parse(typeof(ElcFolderType), xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("MustDisplayComment"))
                            {
                                storeTagData.Tag.MustDisplayCommentEnabled = bool.Parse(xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("IsVisible"))
                            {
                                storeTagData.IsVisible = bool.Parse(xmlTextReader.Value);
                            }
                            if (xmlTextReader.MoveToAttribute("OptedInto"))
                            {
                                storeTagData.OptedInto = bool.Parse(xmlTextReader.Value);
                            }
                            xmlTextReader.Read();
                            if (string.CompareOrdinal(xmlTextReader.Name, "LocalizedName") == 0)
                            {
                                storeTagData.Tag.LocalizedRetentionPolicyTagName = MrmFaiFormatter.ReadLocalizedStrings(xmlTextReader, "Name");
                            }
                            if (string.CompareOrdinal(xmlTextReader.Name, "LocalizedComment") == 0)
                            {
                                storeTagData.Tag.LocalizedComment = MrmFaiFormatter.ReadLocalizedStrings(xmlTextReader, "Comment");
                            }
                            MrmFaiFormatter.Tracer.TraceDebug(0L, "Mailbox:{0}. Done reading the tag. Name: {1}. Type: {2}. IsVisible: {3}. OptedInto: {4}", new object[]
                            {
                                mailboxOwner,
                                storeTagData.Tag.Name,
                                storeTagData.Tag.Type,
                                storeTagData.IsVisible,
                                storeTagData.OptedInto
                            });
                            while (string.CompareOrdinal(xmlTextReader.Name, "ContentSettings") == 0)
                            {
                                ContentSetting contentSetting = new ContentSetting();
                                Guid           key;
                                if (xmlTextReader.MoveToAttribute("Guid"))
                                {
                                    key = new Guid(xmlTextReader.Value);
                                }
                                else
                                {
                                    key = default(Guid);
                                }
                                if (xmlTextReader.MoveToAttribute("ExpiryAgeLimit"))
                                {
                                    contentSetting.AgeLimitForRetention = new EnhancedTimeSpan?(EnhancedTimeSpan.FromDays(double.Parse(xmlTextReader.Value)));
                                }
                                contentSetting.RetentionEnabled = true;
                                if (xmlTextReader.MoveToAttribute("MessageClass"))
                                {
                                    contentSetting.MessageClass = xmlTextReader.Value;
                                }
                                if (xmlTextReader.MoveToAttribute("RetentionAction"))
                                {
                                    contentSetting.RetentionAction = (RetentionActionType)Enum.Parse(typeof(RetentionActionType), xmlTextReader.Value, true);
                                }
                                storeTagData.ContentSettings[key] = contentSetting;
                                MrmFaiFormatter.Tracer.TraceDebug(0L, "Mailbox:{0}. Done reading the content setting. RetentionEnabled: {1}. MessageClass: {2}. RetentionAction: {3}", new object[]
                                {
                                    mailboxOwner,
                                    contentSetting.RetentionEnabled,
                                    contentSetting.MessageClass,
                                    contentSetting.RetentionAction
                                });
                                xmlTextReader.Read();
                            }
                            if (!flag3)
                            {
                                dictionary[storeTagData.Tag.RetentionId] = storeTagData;
                            }
                            else
                            {
                                defaultArchiveTagData[storeTagData.Tag.RetentionId] = storeTagData;
                            }
                        }
                        if ((string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "DeletedTag") == 0) && xmlTextReader.NodeType == XmlNodeType.EndElement)
                        {
                            xmlTextReader.Read();
                        }
                    }
                    MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal>(0L, "Mailbox:{0}. Found no MTA or retention or DefaultArchive or Deleted tag in Config item.", mailboxOwner);
                }
                catch (XmlException ex2)
                {
                    ex = ex2;
                }
                catch (ArgumentException ex3)
                {
                    ex = ex3;
                }
                catch (FormatException ex4)
                {
                    ex = ex4;
                }
                if (ex != null)
                {
                    xmlStream.Position = 0L;
                    string text = new StreamReader(xmlStream).ReadToEnd();
                    MrmFaiFormatter.Tracer.TraceDebug <IExchangePrincipal, string, Exception>(0L, "Mailbox:{0}. Config item is corrupt. Config item: '{1}'. Exception: '{2}'", mailboxOwner, text, ex);
                    Globals.ELCLogger.LogEvent(InfoWorkerEventLogConstants.Tuple_CorruptTagConfigItem, null, new object[]
                    {
                        mailboxOwner,
                        text,
                        ex.ToString()
                    });
                }
            }
            return(dictionary);
        }
        public ResultsLoaderProfile GetProfile(string profileName)
        {
            Stream        manifestResource = WinformsHelper.GetManifestResource(this.dataDrivenCategory);
            XmlTextReader reader           = SafeXmlFactory.CreateSafeXmlTextReader(manifestResource);
            XElement      po = XElement.Load(reader);
            DataTable     inputTable;
            var <>        f__AnonymousType = (from dataSource in po.Elements("ResultsLoader")
                                              where (string)dataSource.Attribute("Name") == profileName
                                              select new
            {
                Configuration = this.CreateUIPresentationProfile(po, dataSource.Element("Configuration")),
                DataTable = (from dataTable in dataSource.Elements("DataColumns")
                             select new
                {
                    DataColumns = dataTable.Elements("Column").Union(dataTable.Elements("RefColumns").SelectMany((XElement r) => (from c in po.Element("RefColumnsSection").Elements("RefColumns")
                                                                                                                                  where c.Attribute("Name").Value == r.Attribute("Name").Value
                                                                                                                                  select c).Elements("Column"))),
                    PrimaryKey = (this.HasValue(dataTable.Attribute("PrimaryKey")) ? dataTable.Attribute("PrimaryKey").Value.Split(new char[]
                    {
                        ','
                    }) : new string[0]),
                    NameProperty = (this.HasValue(dataTable.Attribute("NameProperty")) ? dataTable.Attribute("NameProperty").Value : "Name"),
                    DataColumnsCalculator = (IDataColumnsCalculator)(this.HasValue(dataTable.Attribute("DataColumnsCalculator")) ? ObjectPickerProfileLoader.CreateObject(dataTable.Attribute("DataColumnsCalculator").Value) : null),
                    WholeObjectProperty = (this.HasValue(dataTable.Attribute("WholeObjectProperty")) ? dataTable.Attribute("WholeObjectProperty").Value : string.Empty),
                    DistinguishIdentity = (this.HasValue(dataTable.Attribute("DistinguishIdentity")) ? dataTable.Attribute("DistinguishIdentity").Value : string.Empty)
                }).First(),
                InputTable = (this.HasValue(dataSource.Element("InputColumns")) ? (from inputTable in dataSource.Elements("InputColumns")
                                                                                   select new
                {
                    DataColumns = inputTable.Elements("Column").Union(inputTable.Elements("RefColumns").SelectMany((XElement r) => (from c in po.Element("RefColumnsSection").Elements("RefColumns")
                                                                                                                                    where c.Attribute("Name").Value == r.Attribute("Name").Value
                                                                                                                                    select c).Elements("Column"))),
                    PartialOrderComparer = (IPartialOrderComparer)(this.HasValue(inputTable.Attribute("PartialOrderComparer")) ? ObjectPickerProfileLoader.CreateObject(inputTable.Attribute("PartialOrderComparer").Value) : null)
                }).First() : null),
                DataReader = (from dataReader in dataSource.Elements("DataTableFillers")
                              select new
                {
                    DataTableFillers = dataReader.Elements(),
                    BatchSize = (this.HasValue(dataReader.Attribute("BatchSize")) ? dataReader.Attribute("BatchSize").Value : ResultsLoaderProfile.DefaultBatchSize.ToString()),
                    FillType = (this.HasValue(dataReader.Attribute("FillType")) ? ((FillType)Enum.Parse(typeof(FillType), dataReader.Attribute("FillType").Value)) : 0),
                    LoadableFromProfilePredicate = (ILoadableFromProfile)(this.HasValue(dataReader.Attribute("LoadableFromProfilePredicate")) ? ObjectPickerProfileLoader.CreateObject(dataReader.Attribute("LoadableFromProfilePredicate").Value) : null),
                    PostRefreshAction = (PostRefreshActionBase)(this.HasValue(dataReader.Attribute("PostRefreshAction")) ? ObjectPickerProfileLoader.CreateObject(dataReader.Attribute("PostRefreshAction").Value) : null)
                }).First()
            }).First();
            DataTable resultTable = this.GetTableSchema(< > f__AnonymousType.DataTable.DataColumns, true);

            resultTable.PrimaryKey = (from c in < > f__AnonymousType.DataTable.PrimaryKey
                                      select resultTable.Columns[c]).ToArray <DataColumn>();
            resultTable.TableName = profileName;
            inputTable            = ((< > f__AnonymousType.InputTable != null) ? this.GetTableSchema(< > f__AnonymousType.InputTable.DataColumns, false) : new DataTable());
            ResultsLoaderProfile resultsLoaderProfile = new ResultsLoaderProfile(< > f__AnonymousType.Configuration, inputTable, resultTable)
            {
                Name = profileName,
                InputTablePartialOrderComparer = ((< > f__AnonymousType.InputTable == null) ? null : < > f__AnonymousType.InputTable.PartialOrderComparer),
                WholeObjectProperty            = < > f__AnonymousType.DataTable.WholeObjectProperty,
                NameProperty                 = < > f__AnonymousType.DataTable.NameProperty,
                DataColumnsCalculator        = < > f__AnonymousType.DataTable.DataColumnsCalculator,
                LoadableFromProfilePredicate = < > f__AnonymousType.DataReader.LoadableFromProfilePredicate,
                PostRefreshAction            = < > f__AnonymousType.DataReader.PostRefreshAction,
                BatchSize           = ((string.Compare(< > f__AnonymousType.DataReader.BatchSize, "MaxValue", true) == 0) ? int.MaxValue : int.Parse(< > f__AnonymousType.DataReader.BatchSize)),
                DistinguishIdentity = < > f__AnonymousType.DataTable.DistinguishIdentity,
                FillType            = < > f__AnonymousType.DataReader.FillType
            };

            this.AddFillerCollection(resultsLoaderProfile, <> f__AnonymousType.DataReader.DataTableFillers);
            return(resultsLoaderProfile);
        }
        internal static void ParseProxyLanguagePostBody(Stream bodyStream, out CultureInfo culture, out string timeZoneKeyName, out bool isOptimized, out string destination, out SerializedClientSecurityContext serializedContext)
        {
            ExTraceGlobals.ProxyCallTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody");
            culture           = null;
            timeZoneKeyName   = string.Empty;
            isOptimized       = false;
            destination       = string.Empty;
            serializedContext = null;
            XmlTextReader xmlTextReader = null;

            try
            {
                xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(bodyStream);
                xmlTextReader.WhitespaceHandling = WhitespaceHandling.All;
                if (!xmlTextReader.Read() || XmlNodeType.Element != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0)
                {
                    ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node");
                }
                if (xmlTextReader.MoveToFirstAttribute())
                {
                    do
                    {
                        if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.timeZoneKeyNameAttributeName) == 0)
                        {
                            if (DateTimeUtilities.IsValidTimeZoneKeyName(xmlTextReader.Value))
                            {
                                timeZoneKeyName = xmlTextReader.Value;
                                ExTraceGlobals.ProxyDataTracer.TraceDebug <string>(0L, "Found timeZoneKeyName={0}", timeZoneKeyName);
                            }
                            else
                            {
                                ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid time zone id");
                            }
                        }
                        else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.localeIdAttributeName) == 0)
                        {
                            int num = -1;
                            if (int.TryParse(xmlTextReader.Value, out num) && Culture.IsSupportedCulture(num))
                            {
                                culture = Culture.GetCultureInfoInstance(num);
                                ExTraceGlobals.ProxyDataTracer.TraceDebug <int>(0L, "Found localeId={0}", num);
                            }
                            else
                            {
                                ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid locale id");
                            }
                        }
                        else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.isOptimizedAttributeName) == 0)
                        {
                            int num2 = -1;
                            if (int.TryParse(xmlTextReader.Value, out num2))
                            {
                                isOptimized = (num2 == 1);
                                ExTraceGlobals.ProxyDataTracer.TraceDebug <bool>(0L, "Found isOptimized={0}", isOptimized);
                            }
                            else
                            {
                                ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid is-optimized value");
                            }
                        }
                        else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.destinationAttributeName) == 0)
                        {
                            destination = xmlTextReader.Value;
                        }
                        else
                        {
                            ExTraceGlobals.ProxyTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody - Found invalid attribute, ignoring it.");
                        }
                    }while (xmlTextReader.MoveToNextAttribute());
                }
                ExTraceGlobals.ProxyTracer.TraceDebug(0L, "Deserializing client context...");
                serializedContext = SerializedClientSecurityContext.Deserialize(xmlTextReader);
                if (!xmlTextReader.Read() || XmlNodeType.EndElement != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0)
                {
                    ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node");
                }
            }
            catch (XmlException ex)
            {
                ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, string.Format("Parser threw an XML exception: {0}", ex.Message));
            }
            finally
            {
                xmlTextReader.Close();
            }
        }
 private static XmlReader InternalGetXmlReader(TextReader reader)
 {
     return(SafeXmlFactory.CreateSafeXmlTextReader(reader));
 }
Esempio n. 18
0
        protected XPathDocument GetFederationMetadataXPathDocument(Uri partnerFederationMetadataEpr)
        {
            if (null == partnerFederationMetadataEpr)
            {
                throw new ArgumentNullException("PartnerFederationMetadataEpr");
            }
            this.WriteVerbose(Strings.RequestingFederationMetadataFromEndPoint(partnerFederationMetadataEpr.ToString()));
            Exception ex = null;
            string    s  = null;
            DateTime  t  = DateTime.UtcNow.Add(TimeSpan.FromMinutes(1.0));

            do
            {
                if (ex != null)
                {
                    this.WriteVerbose(Strings.FailedToRetrieveFederationMetadata(ex.ToString()));
                    Thread.Sleep(TimeSpan.FromSeconds(5.0));
                    ex = null;
                }
                using (PartnerFederationMetadata.TimeOutWebClient timeOutWebClient = new PartnerFederationMetadata.TimeOutWebClient(59000))
                {
                    timeOutWebClient.Credentials = CredentialCache.DefaultCredentials;
                    WebProxy webProxy = LiveConfiguration.GetWebProxy(this.WriteVerbose);
                    timeOutWebClient.Proxy = (webProxy ?? new WebProxy());
                    timeOutWebClient.Headers.Add(HttpRequestHeader.UserAgent, "MicrosoftExchangeFedTrustManagement");
                    try
                    {
                        s = timeOutWebClient.DownloadString(partnerFederationMetadataEpr);
                    }
                    catch (WebException ex2)
                    {
                        ex = ex2;
                    }
                    catch (IOException ex3)
                    {
                        ex = ex3;
                    }
                    catch (ProtocolViolationException ex4)
                    {
                        ex = ex4;
                    }
                }
            }while (ex != null && DateTime.UtcNow < t);
            if (ex != null)
            {
                throw new FederationMetadataException(Strings.ErrorAccessingFederationMetadata(ex.Message));
            }
            XPathDocument result = null;

            try
            {
                StringReader textReader = new StringReader(s);
                result = SafeXmlFactory.CreateXPathDocument(textReader);
            }
            catch (XmlException ex5)
            {
                throw new FederationMetadataException(Strings.ErrorInvalidFederationMetadata(ex5.Message));
            }
            catch (XPathException ex6)
            {
                throw new FederationMetadataException(Strings.ErrorInvalidFederationMetadata(ex6.Message));
            }
            return(result);
        }
Esempio n. 19
0
        internal void Load(Dictionary <string, StoreDriverParameterHandler> keyHandlerCollection)
        {
            if (keyHandlerCollection == null)
            {
                return;
            }
            Assembly executingAssembly = Assembly.GetExecutingAssembly();
            string   text = Path.Combine(Path.GetDirectoryName(executingAssembly.Location), "StoreDriver.config");

            if (!File.Exists(text))
            {
                StoreDriverParameters.diag.TraceError <string>(0L, "The config file {0} does not exist.", text);
                return;
            }
            XmlSchemaSet xmlSchemaSet = new XmlSchemaSet();

            try
            {
                using (Stream manifestResourceStream = executingAssembly.GetManifestResourceStream("StoreDriverParameters.xsd"))
                {
                    if (manifestResourceStream == null)
                    {
                        StoreDriverParameters.diag.TraceDebug <string>(0L, "The schema resource {0} does not exist.", "StoreDriverParameters.xsd");
                        return;
                    }
                    xmlSchemaSet.Add(null, SafeXmlFactory.CreateSafeXmlTextReader(manifestResourceStream));
                }
            }
            catch (FileLoadException arg)
            {
                StoreDriverParameters.diag.TraceError <string, FileLoadException>(0L, "Failed to load the manifest resource stream {0}. Error {1}", "StoreDriverParameters.xsd", arg);
                return;
            }
            catch (FileNotFoundException arg2)
            {
                StoreDriverParameters.diag.TraceError <string, FileNotFoundException>(0L, "Failed to find the manifest resource stream {0}.Error: {1}", text, arg2);
                return;
            }
            Exception ex = null;

            try
            {
                xmlSchemaSet.Compile();
                XmlDocument xmlDocument = new SafeXmlDocument();
                xmlDocument.Schemas = xmlSchemaSet;
                using (FileStream fileStream = new FileStream(text, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    xmlDocument.Load(fileStream);
                    XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/configuration/storeDriver/parameters/add");
                    foreach (object obj in xmlNodeList)
                    {
                        XmlNode xmlNode = (XmlNode)obj;
                        if (xmlNode != null && xmlNode is XmlElement)
                        {
                            this.currentNodeValid = true;
                            xmlDocument.Validate(delegate(object sender, ValidationEventArgs args)
                            {
                                StoreDriverParameters.diag.TraceDebug <string>(0L, "The parameter or value is invalid: {0}.", args.Message);
                                this.currentNodeValid = false;
                            }, xmlNode);
                            if (this.currentNodeValid)
                            {
                                string value  = xmlNode.Attributes.GetNamedItem("key").Value;
                                string value2 = xmlNode.Attributes.GetNamedItem("value").Value;
                                if (value != null && value2 != null && keyHandlerCollection.ContainsKey(value))
                                {
                                    keyHandlerCollection[value](value, value2);
                                }
                            }
                        }
                    }
                }
            }
            catch (XmlSchemaException ex2)
            {
                ex = ex2;
            }
            catch (SecurityException ex3)
            {
                ex = ex3;
            }
            catch (IOException ex4)
            {
                ex = ex4;
            }
            catch (XmlException ex5)
            {
                ex = ex5;
            }
            catch (XPathException ex6)
            {
                ex = ex6;
            }
            if (ex != null)
            {
                StoreDriverParameters.diag.TraceError <Exception>(0L, "Failed to load parameters from storedriver config. Will use default values. Error: {0}", ex);
            }
        }
Esempio n. 20
0
        internal static PolicyTagList GetPolicyTakListFromXmlStream(RetentionActionType type, Stream xmlStream, string sessionCultureName)
        {
            PolicyTagList policyTagList = new PolicyTagList();

            if (xmlStream.Length == 0L)
            {
                return(policyTagList);
            }
            using (XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(xmlStream))
            {
                try
                {
                    xmlTextReader.MoveToContent();
                    while ((xmlTextReader.NodeType != XmlNodeType.Element || (string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") != 0 && string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") != 0 && string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") != 0)) && xmlTextReader.Read())
                    {
                    }
                    for (;;)
                    {
                        bool flag  = string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") == 0;
                        bool flag2 = string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") == 0;
                        if (!flag && !flag2)
                        {
                            break;
                        }
                        PolicyTag policyTag = new PolicyTag();
                        policyTag.IsArchive = flag2;
                        if (xmlTextReader.MoveToAttribute("Guid"))
                        {
                            policyTag.PolicyGuid = new Guid(xmlTextReader.Value);
                        }
                        if (xmlTextReader.MoveToAttribute("Name"))
                        {
                            policyTag.Name = xmlTextReader.Value;
                        }
                        if (xmlTextReader.MoveToAttribute("Comment"))
                        {
                            policyTag.Description = xmlTextReader.Value;
                        }
                        if (xmlTextReader.MoveToAttribute("Type"))
                        {
                            string value;
                            switch (value = xmlTextReader.Value)
                            {
                            case "Calendar":
                                policyTag.Type = ElcFolderType.Calendar;
                                goto IL_341;

                            case "Contacts":
                                policyTag.Type = ElcFolderType.Contacts;
                                goto IL_341;

                            case "DeletedItems":
                                policyTag.Type = ElcFolderType.DeletedItems;
                                goto IL_341;

                            case "Drafts":
                                policyTag.Type = ElcFolderType.Drafts;
                                goto IL_341;

                            case "Inbox":
                                policyTag.Type = ElcFolderType.Inbox;
                                goto IL_341;

                            case "JunkEmail":
                                policyTag.Type = ElcFolderType.JunkEmail;
                                goto IL_341;

                            case "Journal":
                                policyTag.Type = ElcFolderType.Journal;
                                goto IL_341;

                            case "Notes":
                                policyTag.Type = ElcFolderType.Notes;
                                goto IL_341;

                            case "Outbox":
                                policyTag.Type = ElcFolderType.Outbox;
                                goto IL_341;

                            case "SentItems":
                                policyTag.Type = ElcFolderType.SentItems;
                                goto IL_341;

                            case "Tasks":
                                policyTag.Type = ElcFolderType.Tasks;
                                goto IL_341;

                            case "All":
                                policyTag.Type = ElcFolderType.All;
                                goto IL_341;

                            case "ManagedCustomFolder":
                                policyTag.Type = ElcFolderType.ManagedCustomFolder;
                                goto IL_341;

                            case "RssSubscriptions":
                                policyTag.Type = ElcFolderType.RssSubscriptions;
                                goto IL_341;

                            case "SyncIssues":
                                policyTag.Type = ElcFolderType.SyncIssues;
                                goto IL_341;

                            case "ConversationHistory":
                                policyTag.Type = ElcFolderType.ConversationHistory;
                                goto IL_341;
                            }
                            policyTag.Type = ElcFolderType.Personal;
                        }
IL_341:
                        if (xmlTextReader.MoveToAttribute("IsVisible"))
                        {
                            policyTag.IsVisible = bool.Parse(xmlTextReader.Value);
                        }
                        if (xmlTextReader.MoveToAttribute("OptedInto"))
                        {
                            policyTag.OptedInto = bool.Parse(xmlTextReader.Value);
                        }
                        while (string.CompareOrdinal(xmlTextReader.Name, "ContentSettings") != 0 && string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") != 0 && string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") != 0)
                        {
                            if (string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") == 0)
                            {
                                break;
                            }
                            if (!xmlTextReader.Read())
                            {
                                break;
                            }
                            if (!string.IsNullOrEmpty(sessionCultureName))
                            {
                                if (string.CompareOrdinal(xmlTextReader.Name, "LocalizedName") == 0)
                                {
                                    xmlTextReader.Read();
                                    bool flag3 = false;
                                    while (string.CompareOrdinal(xmlTextReader.Name, "LocalizedName") != 0)
                                    {
                                        if (!flag3 && !string.IsNullOrEmpty(xmlTextReader.Value))
                                        {
                                            string stringFromLocalizedStringPair = PolicyTagList.GetStringFromLocalizedStringPair(sessionCultureName, xmlTextReader.Value);
                                            if (stringFromLocalizedStringPair != null)
                                            {
                                                policyTag.Name = stringFromLocalizedStringPair;
                                                flag3          = true;
                                            }
                                        }
                                        if (!xmlTextReader.Read())
                                        {
                                            break;
                                        }
                                    }
                                }
                                if (string.CompareOrdinal(xmlTextReader.Name, "LocalizedComment") == 0)
                                {
                                    xmlTextReader.Read();
                                    bool flag4 = false;
                                    while (string.CompareOrdinal(xmlTextReader.Name, "LocalizedComment") != 0)
                                    {
                                        if (!flag4 && !string.IsNullOrEmpty(xmlTextReader.Value))
                                        {
                                            string stringFromLocalizedStringPair2 = PolicyTagList.GetStringFromLocalizedStringPair(sessionCultureName, xmlTextReader.Value);
                                            if (stringFromLocalizedStringPair2 != null)
                                            {
                                                policyTag.Description = stringFromLocalizedStringPair2;
                                                flag4 = true;
                                            }
                                        }
                                        if (!xmlTextReader.Read())
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        while (string.CompareOrdinal(xmlTextReader.Name, "ContentSettings") == 0)
                        {
                            if (xmlTextReader.MoveToAttribute("ExpiryAgeLimit"))
                            {
                                policyTag.TimeSpanForRetention = EnhancedTimeSpan.FromDays(double.Parse(xmlTextReader.Value));
                            }
                            if (xmlTextReader.MoveToAttribute("RetentionAction"))
                            {
                                policyTag.RetentionAction = (RetentionActionType)Enum.Parse(typeof(RetentionActionType), xmlTextReader.Value, true);
                            }
                            xmlTextReader.Read();
                        }
                        if (type == (RetentionActionType)0 || (type == RetentionActionType.MoveToArchive && flag2) || (type != (RetentionActionType)0 && type != RetentionActionType.MoveToArchive && flag))
                        {
                            policyTagList[policyTag.PolicyGuid] = policyTag;
                        }
                        if ((string.CompareOrdinal(xmlTextReader.Name, "PolicyTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "ArchiveTag") == 0 || string.CompareOrdinal(xmlTextReader.Name, "DefaultArchiveTag") == 0) && xmlTextReader.NodeType == XmlNodeType.EndElement)
                        {
                            xmlTextReader.Read();
                        }
                    }
                }
                catch (XmlException ex)
                {
                }
                catch (ArgumentException ex2)
                {
                }
                catch (FormatException ex3)
                {
                }
            }
            return(policyTagList);
        }
Esempio n. 21
0
        // Token: 0x060006D2 RID: 1746 RVA: 0x0003540C File Offset: 0x0003360C
        internal static void Initialize(string directory)
        {
            string text = directory + "\\customadproperties.xml";

            if (!File.Exists(text))
            {
                return;
            }
            XmlTextReader xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(text);

            xmlTextReader.WhitespaceHandling = WhitespaceHandling.None;
            ADCustomPropertyParser.customPropertyDictionary = new Dictionary <string, PropertyDefinition>();
            try
            {
                xmlTextReader.Read();
                if (xmlTextReader.NodeType == XmlNodeType.XmlDeclaration)
                {
                    xmlTextReader.Read();
                }
                if (!xmlTextReader.Name.Equals("CustomProperties") || xmlTextReader.NodeType != XmlNodeType.Element)
                {
                    OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesRootElementNotFound, string.Empty, new object[]
                    {
                        "customadproperties.xml",
                        xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture)
                    });
                }
                else
                {
                    while (xmlTextReader.Read())
                    {
                        if (xmlTextReader.NodeType == XmlNodeType.Element && xmlTextReader.Name.Equals("CustomProperty"))
                        {
                            if (xmlTextReader.AttributeCount != 2)
                            {
                                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_InvalidCustomPropertiesAttributeCount, string.Empty, new object[]
                                {
                                    "customadproperties.xml",
                                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture)
                                });
                                break;
                            }
                            if (!xmlTextReader.MoveToAttribute("DisplayName"))
                            {
                                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesAttributeNotFound, string.Empty, new object[]
                                {
                                    "DisplayName",
                                    "customadproperties.xml",
                                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture),
                                    "First"
                                });
                                break;
                            }
                            string value = xmlTextReader.Value;
                            if (string.IsNullOrEmpty(value))
                            {
                                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesInvalidAttibuteValue, string.Empty, new object[]
                                {
                                    "DisplayName",
                                    "customadproperties.xml",
                                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture)
                                });
                                break;
                            }
                            if (!xmlTextReader.MoveToAttribute("LdapDisplayName"))
                            {
                                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesAttributeNotFound, string.Empty, new object[]
                                {
                                    "LdapDisplayName",
                                    "customadproperties.xml",
                                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture),
                                    "Second"
                                });
                                break;
                            }
                            string value2 = xmlTextReader.Value;
                            if (string.IsNullOrEmpty(value2))
                            {
                                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesInvalidAttibuteValue, string.Empty, new object[]
                                {
                                    "LdapDisplayName",
                                    "customadproperties.xml",
                                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture)
                                });
                                break;
                            }
                            ADPropertyDefinition value3 = new ADPropertyDefinition(value, ExchangeObjectVersion.Exchange2003, typeof(string), value2, ADPropertyDefinitionFlags.None, string.Empty, PropertyDefinitionConstraint.None, PropertyDefinitionConstraint.None, null, null);
                            ADCustomPropertyParser.customPropertyDictionary.Add(value, value3);
                        }
                        else if (xmlTextReader.NodeType != XmlNodeType.EndElement || !xmlTextReader.Name.Equals("CustomProperties"))
                        {
                            OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_InvalidElementInCustomPropertiesFile, string.Empty, new object[]
                            {
                                "customadproperties.xml",
                                xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture),
                                xmlTextReader.LinePosition.ToString(CultureInfo.InvariantCulture)
                            });
                            break;
                        }
                    }
                }
            }
            catch (XmlException ex)
            {
                OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_CustomPropertiesParseError, string.Empty, new object[]
                {
                    "customadproperties.xml",
                    xmlTextReader.LineNumber.ToString(CultureInfo.InvariantCulture),
                    xmlTextReader.LinePosition.ToString(CultureInfo.InvariantCulture),
                    ex.Message
                });
            }
            finally
            {
                if (xmlTextReader != null)
                {
                    xmlTextReader.Close();
                }
            }
        }