Пример #1
0
        protected virtual List <SpecsDeliveryTypeSettings> GenerateDeliveryTypes(
            GeneratorContext genContext, SubscriberWithMissingData subscriber)
        {
            int[] deliveryTypes = new[] { 101, 102 };

            subscriber.DeliveryTypes = deliveryTypes
                                       .Select((deliveryType, i) => new SpecsDeliveryTypeSettings
            {
                SubscriberDeliveryTypeSettingsId = ObjectId.GenerateNewId(),
                SubscriberId = subscriber.SubscriberId,
                DeliveryType = deliveryType,
                Address      = subscriber.HasAddress ? $"subscriber{genContext.CurrentCount + i}@mail.mail" : null,
                IsEnabled    = subscriber.HasDeliveryTypeSettings,
                Language     = "en",
                TimeZoneId   = "+3",
                LastVisitUtc = subscriber.HasVisitDateFuture ? (DateTime?)DateTime.UtcNow : null
            })
                                       .ToList();

            if (subscriber.HasVisitDatePast)
            {
                subscriber.DeliveryTypes.ForEach(x => x.LastVisitUtc = DateTime.UtcNow.AddDays(-1));
            }

            return(subscriber.DeliveryTypes);
        }
Пример #2
0
        //generators
        protected override List <SpecsDeliveryTypeSettings> GenerateDeliveryTypes(
            GeneratorContext genContext, SubscriberWithMissingData subscriber)
        {
            List <SpecsDeliveryTypeSettings> deliveryTypes = base.GenerateDeliveryTypes(genContext, subscriber);

            deliveryTypes.ForEach(dt =>
            {
                dt.SubscriberCategorySettings = GenerateCategories(genContext, dt, subscriber);
            });

            return(deliveryTypes);
        }
Пример #3
0
        //generators
        protected override List <SubscriberTopicSettings <ObjectId> > GenerateTopics(GeneratorContext genContext,
                                                                                     SubscriberCategorySettings <ObjectId> category, SubscriberWithMissingData subscriber)
        {
            EntityContext subscriberContext     = genContext.EntityContexts[typeof(SubscriberWithMissingData)];
            long          subscriberNumber      = subscriberContext.EntityProgress.CurrentCount;
            int           subscribersPerTopic   = 1000;
            long          subscribersTopicGroup = subscriberNumber / subscribersPerTopic;

            string[] topics = new[]
            {
                "3011" + subscribersTopicGroup,
                "3012" + subscribersTopicGroup
            };

            var categoryTopics = topics
                                 .Select((topic, i) => new SubscriberTopicSettings <ObjectId>
            {
                SubscriberTopicSettingsId = ObjectId.GenerateNewId(),
                SubscriberId    = category.SubscriberId,
                DeliveryType    = category.DeliveryType,
                CategoryId      = category.CategoryId,
                TopicId         = topic,
                IsEnabled       = subscriber.HasTopicsSettingsEnabled,
                AddDateUtc      = DateTime.UtcNow,
                LastSendDateUtc = subscriber.HasTopicLastSendDate
                        ? (DateTime?)DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(5))
                        : null
            })
                                 .ToList();

            subscriber.Topics = subscriber.Topics ?? new List <SubscriberTopicSettings <ObjectId> >();
            subscriber.Topics.AddRange(categoryTopics);

            return(categoryTopics);
        }
Пример #4
0
        protected virtual List <SubscriberTopicSettings <ObjectId> > GenerateTopicsForDeliveryTypeSettings(GeneratorContext genContext,
                                                                                                           SpecsDeliveryTypeSettings dt, SubscriberWithMissingData subscriber)
        {
            string[] topics = new[]
            {
                "301a",
                "302a"
            };

            var categoryTopics = dt.SubscriberCategorySettings.SelectMany(category =>
                                                                          topics.Select((topic, i) => new SubscriberTopicSettings <ObjectId>
            {
                SubscriberTopicSettingsId = ObjectId.GenerateNewId(),
                SubscriberId    = dt.SubscriberId,
                DeliveryType    = dt.DeliveryType,
                CategoryId      = category.CategoryId,
                TopicId         = topic,
                IsEnabled       = subscriber.HasTopicsSettingsEnabled,
                AddDateUtc      = DateTime.UtcNow,
                LastSendDateUtc = subscriber.HasTopicLastSendDate
                        ? (DateTime?)DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(5))
                        : null
            })
                                                                          ).ToList();

            subscriber.Topics = subscriber.Topics ?? new List <SubscriberTopicSettings <ObjectId> >();
            subscriber.Topics.AddRange(categoryTopics);

            return(categoryTopics);
        }
Пример #5
0
        protected virtual List <SubscriberCategorySettings <ObjectId> > GenerateCategories(GeneratorContext genContext,
                                                                                           SpecsDeliveryTypeSettings deliverySettings, SubscriberWithMissingData subscriber)
        {
            int[] categories = new[] { 201, 202 };

            var deliveryTypeCategories = categories
                                         .Select((category, i) => new SubscriberCategorySettings <ObjectId>
            {
                SubscriberCategorySettingsId = ObjectId.GenerateNewId(),
                SubscriberId = deliverySettings.SubscriberId,
                DeliveryType = deliverySettings.DeliveryType,
                CategoryId   = category,
                IsEnabled    = subscriber.HasCategorySettingsEnabled
            })
                                         .ToList();

            subscriber.Categories = subscriber.Categories ?? new List <SubscriberCategorySettings <ObjectId> >();
            subscriber.Categories.AddRange(deliveryTypeCategories);

            deliverySettings.SubscriberCategorySettings = deliveryTypeCategories;

            return(deliveryTypeCategories);
        }