Beispiel #1
0
        /// <inheritdoc/>
        public IQuik Create(QuikClientOptions options)
        {
            var pendingResultContainer = new PendingResultContainer();
            var eventTypeProvider      = new EventTypeProvider();
            var serializer             = new QuikJsonSerializer(pendingResultContainer, eventTypeProvider);
            var typeConverter          = new CachingQuikTypeConverter();
            var idProvider             = new UniqueIdProvider();
            var dateTimeProvider       = new CurrentDateTimeProvider();
            var messageFactory         = new MessageFactory(idProvider, dateTimeProvider);

            var quikEvents   = new QuikEvents();
            var eventHandler = new EventInvoker(quikEvents);
            var quikClient   = new QuikClient(eventHandler, serializer, pendingResultContainer, options,
                                              _loggerFactory.CreateLogger <QuikClient>());

            var quik = new Quik(
                quikClient,
                new Functions.QuikFunctions(
                    new ServiceFunctions(messageFactory, quikClient, typeConverter),
                    new TableRowFunctions(messageFactory, quikClient, typeConverter),
                    new ClassFunctions(messageFactory, quikClient, typeConverter),
                    new WorkstationFunctions(messageFactory, quikClient, typeConverter),
                    new CandleFunctions(messageFactory, quikClient, typeConverter),
                    new LabelFunctions(messageFactory, quikClient, typeConverter),
                    new OrderBookFunctions(messageFactory, quikClient, typeConverter),
                    new QuotesTableParametersFunctions(messageFactory, quikClient, typeConverter),
                    new DebugFunctions(messageFactory, quikClient, typeConverter),
                    new CustomFunctions(messageFactory, quikClient, typeConverter)),
                quikEvents);

            quikClient.SetEventSender(quik);
            quikEvents.SetEventSender(quik);

            return(quik);
        }
Beispiel #2
0
        public override void Initialize()
        {
            m_emblems       = Database.Query <EmblemRecord>(EmblemRelator.FetchQuery).ToDictionary(x => x.Id);
            m_guildsMembers = Database.Fetch <GuildMemberRecord, CharacterRecord, GuildMemberRecord>(new GuildMemberRelator().Map,
                                                                                                     GuildMemberRelator.FetchQuery).ToDictionary(x => x.CharacterId, x => new GuildMember(x));

            var membersByGuilds = m_guildsMembers.Values.GroupBy(x => x.Record.GuildId).ToDictionary(x => x.Key);

            m_guilds =
                Database.Query <GuildRecord>(GuildRelator.FetchQuery)
                .Select(
                    x =>
                    new Guild(x,
                              membersByGuilds.ContainsKey(x.Id)
                                        ? membersByGuilds[x.Id]
                                        : Enumerable.Empty <GuildMember>()))
                .ToDictionary(x => x.Id);
            m_idProvider = m_guilds.Any()
                ? new UniqueIdProvider(m_guilds.Select(x => x.Value.Id).Max())
                : new UniqueIdProvider(1);


            foreach (var guild in m_guilds.Where(x => x.Value.Members.Count == 0).ToList())
            {
                DeleteGuild(guild.Value);
            }
            m_cachedGuilds          = new ObjectValidator <GuildInformations[]>(BuildCachedGuilds, TimeSpan.FromMinutes(15));
            m_cachedGuildsVersatile = new ObjectValidator <GuildVersatileInformations[]>(BuildCachedGuildsVersatile, TimeSpan.FromMinutes(15));
            World.Instance.RegisterSaveableInstance(this);
        }
Beispiel #3
0
        public override void Initialize()
        {
            m_taxCollectorSpawns     = Database.Query <TaxCollectorSpawn>(WorldMapTaxCollectorRelator.FetchQuery).ToDictionary(entry => entry.Id);
            m_idProvider             = m_taxCollectorSpawns.Any() ? new UniqueIdProvider(m_taxCollectorSpawns.Select(x => x.Value.Id).Max()) : new UniqueIdProvider(1);
            m_taxCollectorNames      = Database.Query <TaxCollectorNamesRecord>(TaxCollectorNamesRelator.FetchQuery).ToDictionary(x => x.Id);
            m_taxCollectorFirstnames = Database.Query <TaxCollectorFirstnamesRecord>(TaxCollectorFirstnamesRelator.FetchQuery).ToDictionary(x => x.Id);

            World.Instance.RegisterSaveableInstance(this);
            World.Instance.SpawnTaxCollectors();
        }
        public static void InitIdPoper()
        {
            List <uint> uids = CharacterItemRecord.CharactersItems.ConvertAll <uint>(x => x.UId);

            uids.AddRange(BankItemRecord.BankItems.ConvertAll <uint>(x => x.UId));
            uids.Sort();
            uint lastId = uids.Count == 0 ? 1 : uids.Last();

            UIDPoper = new UniqueIdProvider((int)lastId);
        }
        public override long GetItemId(int position)
        {
            if (UniqueIdProvider == null)
            {
                throw new InvalidOperationException($"You have to assing {nameof(UniqueIdProvider)} property to use AdvancedRecyclerView Adapter");
            }

            var item = GetItem(position);

            return(UniqueIdProvider.GetUniqueId(item));
        }
Beispiel #6
0
        public override void Initialize()
        {
            this.m_prismSpawns = base.Database.Query <WorldMapPrismRecord>(WorldMapPrismRelator.FetchQuery, new object[0])
                                 .ToDictionary(entry => entry.Id);

            if (this.m_prismSpawns.Any())
            {
                this.m_idProvider = new UniqueIdProvider((from item in this.m_prismSpawns select item.Value.Id).Max());
            }
            else
            {
                this.m_idProvider = UniqueIdProvider.Default;
            }

            Singleton <World> .Instance.RegisterSaveableInstance(this);

            Singleton <World> .Instance.SpawnPrisms();
        }
Beispiel #7
0
        public override void Initialize()
        {
            this.m_emblems   = base.Database.Query <EmblemRecord>(EmblemRelator.FetchQuery, new object[0]).ToDictionary((EmblemRecord x) => x.Id);
            this.m_alliances = (from temp in base.Database.Query <AllianceRecord>(AllianceRelator.FetchQuery, new object[0]).ToList <AllianceRecord>()
                                select new Alliance(temp)).ToDictionary(entry => entry.Id);

            if (!this.m_alliances.Any())
            {
                this.m_idProvider = new UniqueIdProvider(1);
            }
            else
            {
                this.m_idProvider = new UniqueIdProvider((
                                                             from temp in this.m_alliances
                                                             select temp.Value.Id).Max());
            }

            Singleton <World> .Instance.RegisterSaveableInstance(this);
        }
        public RuntimeEntityService(IEventDispatcher eventDispatcher,
                                    ILogger logger, [CanBeNull] IEntityTemplateProvider templateProvider = null,
                                    [CanBeNull] ICollection <EngineEntity> entities = null)
        {
            _eventDispatcher = eventDispatcher;
            _logger          = logger;
            TemplateProvider = templateProvider;

            if (entities != null)
            {
                foreach (var entity in entities)
                {
                    _entityList.Add(entity);
                    _entityLookup.Add(entity.Id, entity);
                }
            }

            _idProvider = new UniqueIdProvider(_entityList.Count > 0 ? _entityList.Max(p => p.Id + 1) : 0);
        }
Beispiel #9
0
        public override void Initialize()
        {
            m_interactivesTemplates = Database.Query <InteractiveTemplate, InteractiveSkillTemplate, InteractiveTemplateSkills, InteractiveCustomSkillRecord, InteractiveTemplate>
                                          (new InteractiveTemplateRelator().Map, InteractiveTemplateRelator.FetchQuery).ToDictionary(entry => entry.Id);

            m_interactivesSpawns = Database.Query <InteractiveSpawn, InteractiveSpawnSkills, InteractiveCustomSkillRecord, InteractiveSpawn>
                                       (new InteractiveSpawnRelator().Map, InteractiveSpawnRelator.FetchQuery).ToDictionary(entry => entry.Id);
            m_skillsTemplates          = m_interactivesTemplates.SelectMany(x => x.Value.TemplateSkills).DistinctBy(x => x.Id).ToDictionary(entry => entry.Id);
            m_interactivesCustomSkills =
                Database.Query <InteractiveCustomSkillRecord>(InteractiveSkillRelator.FetchQuery).ToDictionary(entry => entry.Id);

            m_idProviderSpawn = m_interactivesSpawns.Any()
                ? new UniqueIdProvider(m_interactivesSpawns.Select(x => x.Value.Id).Max())
                : new UniqueIdProvider(0);
            m_idProviderSkill = m_interactivesCustomSkills.Any()
                ? new UniqueIdProvider(m_interactivesCustomSkills.Select(x => x.Value.Id).Max())
                : new UniqueIdProvider(0);

            GenerateInteractivePlot();
        }
Beispiel #10
0
        public override void Initialize()
        {
            m_idProvider    = new UniqueIdProvider(1);
            m_bidHouseItems = new ConcurrentList <BidHouseItem>(Database.Query <BidHouseItemRecord>(BidHouseItemRelator.FetchQuery).Select(x => new BidHouseItem(x)));

            foreach (var item in m_bidHouseItems)
            {
                var category = GetBidHouseCategory(item);

                if (category == null)
                {
                    category = new BidHouseCategory(m_idProvider.Pop(), item);
                    m_bidHouseCategories.Add(category);
                }

                category.Items.Add(item);
            }

            World.Instance.RegisterSaveableInstance(this);
        }
Beispiel #11
0
        public override void Initialize()
        {
            this.m_emblems = base.Database.Query <EmblemRecord>(EmblemRelator.FetchQuery, new object[0]).ToDictionary((EmblemRecord x) => x.Id);
            this.m_guilds  = (
                from x in base.Database.Query <GuildRecord>(GuildRelator.FetchQuery, new object[0]).ToList <GuildRecord>()
                select new Guild(x, this.FindGuildMembers(x.Id))).ToDictionary((Guild x) => x.Id);
            this.m_guildsMembers = this.m_guilds.Values.SelectMany((Guild x) => x.Members).ToDictionary((GuildMember x) => x.Id);
            UniqueIdProvider arg_12F_1;

            if (!this.m_guilds.Any <System.Collections.Generic.KeyValuePair <int, Guild> >())
            {
                arg_12F_1 = new UniqueIdProvider(1);
            }
            else
            {
                arg_12F_1 = new UniqueIdProvider((
                                                     from x in this.m_guilds
                                                     select x.Value.Id).Max());
            }
            this.m_idProvider = arg_12F_1;
            Singleton <World> .Instance.RegisterSaveableInstance(this);
        }