Ejemplo n.º 1
0
        public static XElement ToXml(this LocalizedResourceSet resourceSet)
        {
            if (resourceSet.Strings.Count == 0)
            {
                return(null);
            }

            return(new XElement(
                       EventManifestSchema.Namespace + "resources",
                       new XAttribute("culture", resourceSet.Culture.Name),
                       new XElement(EventManifestSchema.Namespace + "stringTable", resourceSet.Strings.Select(ToXml))));
        }
Ejemplo n.º 2
0
        private EventManifest ReadCrimBlock(BinaryReader r)
        {
            objectMap.Clear();
            strings.Clear();

            ReadMagic(r, CrimsonTags.CRIM);

            uint   length        = r.ReadUInt32();
            ushort major         = r.ReadUInt16();
            ushort minor         = r.ReadUInt16();
            uint   providerCount = r.ReadUInt32();

            var providerEntries = new List <Tuple <Guid, uint> >();

            for (uint i = 0; i < providerCount; ++i)
            {
                var providerGuid = r.ReadGuid();
                var wevtOffset   = r.ReadUInt32();
                providerEntries.Add(Tuple.Create(providerGuid, wevtOffset));
            }

            var manifest = new EventManifest();

            foreach (var offset in providerEntries)
            {
                r.BaseStream.Position = offset.Item2;
                var provider = ReadWevtBlock(offset.Item1, r);
                manifest.Providers.Add(provider);
            }

            var resourceSet = new LocalizedResourceSet(CultureInfo.GetCultureInfo("en-US"));

            resourceSet.Strings.AddRange(strings.Values);
            manifest.AddResourceSet(resourceSet);

            return(manifest);
        }
Ejemplo n.º 3
0
        private static Tuple <int, int> ResourceSortKey(LocalizedResourceSet resourceSet)
        {
            CultureInfo culture = resourceSet.Culture;

            return(Tuple.Create(culture.GetPrimaryLangId(), culture.GetSubLangId()));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Returns <see cref="Hashtable" /> containing culture-specific resources.
        /// </summary>
        /// <returns>
        /// A <see cref="Hashtable" /> containing culture-specific resources.
        /// </returns>
        /// <remarks>
        /// The key of the <see cref="Hashtable" /> is <see cref="CultureInfo" />
        /// and the value is an <see cref="LocalizedResourceSet" /> instance
        /// for that culture.
        /// </remarks>
        private Hashtable GetLocalizedResources()
        {
            Hashtable localizedResourceSets = new Hashtable();

            foreach (Resource resource in _localizedResources) {
                CultureInfo resourceCulture = resource.Culture;

                LocalizedResourceSet resourceSet = (LocalizedResourceSet)
                    localizedResourceSets[resourceCulture];
                if (resourceSet == null) {
                    resourceSet = new LocalizedResourceSet(resourceCulture);
                    localizedResourceSets.Add(resourceCulture, resourceSet);
                }

                resourceSet.Resources.Add(resource);
            }
            return localizedResourceSets;
        }