protected void setManifest()
    {
        using (var api = GetServiceAPIProxy())
        {
            manifest = api.GetEventManifest(targetEvent.ID, registrantId, targetRegistrationFee.ID).ResultValue;

            // Now, let's clean up the fees so the event name doesn't show
            foreach (var session in manifest.Sessions)
            {
                if (session.Fees != null)
                {
                    foreach (var fee in session.Fees)
                    {
                        fee.ProductName = fee.ProductName.Replace(targetEvent.Name + " - ", "");
                    }
                }
            }

            foreach (var fee in manifest.GuestRegistrationFees)
            {
                fee.ProductName = fee.ProductName.Replace(targetEvent.Name + " - ", "");
            }

            foreach (var fee in manifest.Merchandise)
            {
                fee.ProductName = fee.ProductName.Replace(targetEvent.Name + " - ", "");
            }
        }
    }
        private void StripReservedMetadata(EventManifest manifest, IEventManifestMetadata metadata)
        {
            foreach (var provider in manifest.Providers)
            {
                var channelIds   = new HashSet <byte>(metadata.Channels.Select(x => x.Value.Value));
                var levelNames   = new HashSet <QName>(metadata.Levels.Select(x => x.Name.Value));
                var taskNames    = new HashSet <QName>(metadata.Tasks.Select(x => x.Name.Value));
                var opcodeNames  = new HashSet <QName>(metadata.Opcodes.Select(x => x.Name.Value));
                var keywordNames = new HashSet <QName>(metadata.Keywords.Select(x => x.Name.Value));

                var messageSet = new HashSet <LocalizedString>();
                messageSet.UnionWith(from x in provider.Channels
                                     where x.Message != null && channelIds.Contains(x.Value.Value)
                                     select x.Message);
                messageSet.UnionWith(from x in provider.Levels
                                     where x.Message != null && levelNames.Contains(x.Name)
                                     select x.Message);
                messageSet.UnionWith(from x in provider.Tasks
                                     where x.Message != null && taskNames.Contains(x.Name)
                                     select x.Message);
                messageSet.UnionWith(from x in provider.Opcodes
                                     where x.Task == null && x.Message != null && opcodeNames.Contains(x.Name)
                                     select x.Message);
                messageSet.UnionWith(from x in provider.Keywords
                                     where x.Message != null && keywordNames.Contains(x.Name)
                                     select x.Message);

                foreach (var resourceSet in manifest.Resources)
                {
                    resourceSet.Strings.RemoveAll(x => messageSet.Contains(x));
                }

                provider.Channels.RemoveAll(x => channelIds.Contains(x.Value.Value));
                provider.Levels.RemoveAll(x => levelNames.Contains(x.Name));
                provider.Tasks.RemoveAll(x => taskNames.Contains(x.Name));
                provider.Opcodes.RemoveAll(x => opcodeNames.Contains(x.Name));
                provider.Keywords.RemoveAll(x => keywordNames.Contains(x.Name));
            }
        }
Esempio n. 3
0
        public static void AssignMessageIds(
            IDiagnostics diags, EventManifest manifest,
            Func <IMessageIdGenerator> generatorFactory)
        {
            foreach (var provider in manifest.Providers)
            {
                var msgIdGen = generatorFactory();
                if (NeedsId(provider.Message))
                {
                    provider.Message.Id = msgIdGen.CreateId(provider);
                }

                foreach (var obj in provider.Channels.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var obj in provider.Levels.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var obj in provider.Tasks.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var obj in provider.GetAllOpcodes().Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var obj in provider.Keywords.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var obj in provider.Events.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
                foreach (var map in provider.Maps)
                {
                    foreach (var item in map.Items.Where(e => NeedsId(e.Message)))
                    {
                        item.Message.Id = msgIdGen.CreateId(item, map, provider);
                    }
                }
                foreach (var obj in provider.Filters.Where(e => NeedsId(e.Message)))
                {
                    obj.Message.Id = msgIdGen.CreateId(obj, provider);
                }
            }

            var primaryResourceSet = manifest.PrimaryResourceSet;

            if (primaryResourceSet == null)
            {
                return;
            }

            foreach (var @string in primaryResourceSet.Strings.Used())
            {
                foreach (var resourceSet in manifest.Resources)
                {
                    if (resourceSet == manifest.PrimaryResourceSet)
                    {
                        continue;
                    }

                    if (!resourceSet.ContainsName(@string.Name))
                    {
                        diags.Report(
                            DiagnosticSeverity.Warning,
                            resourceSet.Location,
                            "String table for culture '{0}' is missing string '{1}'.",
                            resourceSet.Culture.Name,
                            @string.Name);
                    }
                }
            }
        }