Exemple #1
0
        public async Task DoesExistAsyncTest()
        {
            var newRecord = new Models.UserSettings
            {
                Email       = "*****@*****.**",
                FirstName   = "Alex",
                Language    = LanguageName.Fr,
                LastName    = "Softeq",
                PhoneNumber = "123",
                UserId      = Guid.NewGuid().ToString(),
                Created     = DateTimeOffset.UtcNow,
                Updated     = DateTimeOffset.UtcNow,
                Id          = Guid.NewGuid()
            };

            using (var context = GetContext())
            {
                await context.UserSettings.AddAsync(newRecord);

                await context.SaveChangesAsync();
            }

            using (var context = GetContext())
            {
                var store  = new SettingsDataStore(context, DefaultMapper);
                var result = await store.DoesExistAsync(newRecord.UserId);

                Assert.True(result);
            }
        }
Exemple #2
0
        public void Run(
            VgcApis.Models.IServices.ISettingsService vgcSetting,
            VgcApis.Models.IServices.IServersService vgcServers)
        {
            this.vgcSetting = vgcSetting;
            this.vgcServers = vgcServers;

            userSettins = LoadUserSetting();
            bookKeeper  = new VgcApis.Libs.Tasks.LazyGuy(
                SaveUserSetting, VgcApis.Models.Consts.Intervals.LazySaveStatisticsDatadelay);
            StartBgStatsDataUpdateTimer();
            vgcServers.OnCoreClosing += OnCoreClosingHandler;
        }
Exemple #3
0
        public void Run(
            VgcApis.Models.IServices.ISettingService vgcSetting,
            VgcApis.Models.IServices.IServersService vgcServers)
        {
            this.vgcSetting = vgcSetting;
            this.vgcServers = vgcServers;

            userSettins = LoadUserSetting();
            bookKeeper  = new VgcApis.Libs.Sys.LazyGuy(
                SaveUserSetting, 1000 * 60 * 5);
            StartBgStatsDataUpdateTimer();
            vgcServers.OnCoreClosing += OnCoreClosingHandler;
        }
Exemple #4
0
        public async Task UpdateAsyncTest()
        {
            var user = new Models.UserSettings
            {
                Email       = "*****@*****.**",
                FirstName   = "Alex",
                Language    = LanguageName.Fr,
                LastName    = "Softeq",
                PhoneNumber = "123",
                UserId      = Guid.NewGuid().ToString(),
                Created     = DateTimeOffset.UtcNow,
                Updated     = DateTimeOffset.UtcNow,
                Id          = Guid.NewGuid()
            };

            using (var context = GetContext())
            {
                await context.UserSettings.AddAsync(user);

                await context.SaveChangesAsync();
            }

            var updates = new UserSettings
            {
                Email       = "*****@*****.**",
                FirstName   = "ben",
                Language    = LanguageName.Ru,
                LastName    = "ms",
                PhoneNumber = "456",
                UserId      = Guid.NewGuid().ToString(),
                Id          = user.Id,
                Created     = user.Created
            };

            using (var context = GetContext())
            {
                var store  = new SettingsDataStore(context, DefaultMapper);
                var result = await store.UpdateAsync(updates);

                Assert.NotNull(result);
                Assert.Equal(updates.Email, result.Email);
                Assert.Equal(updates.FirstName, result.FirstName);
                Assert.Equal(updates.Language, result.Language);
                Assert.Equal(updates.LastName, result.LastName);
                Assert.Equal(updates.PhoneNumber, result.PhoneNumber);
                Assert.Equal(updates.Id, result.Id);
                Assert.Equal(user.Created, result.Created);
                Assert.True(user.Updated < result.Updated);
            }
        }
Exemple #5
0
        public void Run(
            VgcApis.Interfaces.Services.ISettingsService vgcSetting,
            VgcApis.Interfaces.Services.IServersService vgcServers)
        {
            this.vgcSetting = vgcSetting;
            this.vgcServers = vgcServers;

            userSettins = LoadUserSetting();
            bookKeeper  = new VgcApis.Libs.Tasks.LazyGuy(
                SaveUserSetting,
                VgcApis.Models.Consts.Intervals.LazySaveStatisticsDatadelay,
                500)
            {
                Name = "Statistic.SaveUserSetting",
            };
            StartBgStatsDataUpdateTimer();
            vgcServers.OnCoreClosing += SaveStatDataBeforeCoreClosed;
        }
Exemple #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WheelOutcome"/> class.
 /// </summary>
 /// <param name="outcome">
 /// The outcome.
 /// </param>
 /// <param name="settings">
 /// The settings.
 /// </param>
 protected WheelOutcome(SlaveReportsExtension.Outcome outcome, Models.UserSettings settings, DiscordContext context)
 {
     // ReSharper disable once VirtualMemberCallInConstructor
     this.Outcome = outcome;
 }
Exemple #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Content"/> class.
        /// </summary>
        /// <param name="outcome">
        /// The outcome.
        /// </param>
        /// <param name="settings">
        /// The settings.
        /// </param>
        public Content(
            SlaveReportsExtension.Outcome outcome,
            Models.UserSettings settings, Models.DiscordContext context)
            : base(outcome, settings, context)
        {
            var denialtext = "please don't break the Bot";

            switch (outcome)
            {
            case SlaveReportsExtension.Outcome.Task:
                denialtext   = "then spin again";
                this.Outcome = SlaveReportsExtension.Outcome.Task;
                break;

            case SlaveReportsExtension.Outcome.Denial:
                denialtext      = "deny your o****m";
                this.DenialTime = new TimeSpan(8, 0, 0);
                this.Outcome    = SlaveReportsExtension.Outcome.Denial;
                break;

            case SlaveReportsExtension.Outcome.Ruin:
                denialtext   = "ruin your o****m";
                this.Outcome = SlaveReportsExtension.Outcome.Ruin;
                break;

            case SlaveReportsExtension.Outcome.O****m:
                denialtext   = "enjoy a full o****m";
                this.Outcome = SlaveReportsExtension.Outcome.O****m;
                break;

            case SlaveReportsExtension.Outcome.Denial | SlaveReportsExtension.Outcome.Task:
                var chance = Helpers.RandomGenerator.RandomInt(0, 9);
                if (chance < 5)
                {
                    denialtext      = "deny your o****m";
                    this.DenialTime = new TimeSpan(8, 0, 0);
                    this.Outcome    = SlaveReportsExtension.Outcome.Denial;
                }
                else
                {
                    denialtext   = "then spin again";
                    this.Outcome = SlaveReportsExtension.Outcome.Task;
                }

                break;
            }

            Link link;

            if (this.Outcome == SlaveReportsExtension.Outcome.Task)
            {
                link = this.GetLinkFromRandomTumblr(this.GetPostCount());
            }
            else
            {
                List <Link> links = Link.LoadAll().Result;

                var randomLinkNr = Helpers.RandomGenerator.RandomInt(0, links.Count);

                if (links.Count <= randomLinkNr)
                {
                    link = new Link()
                    {
                        CreatorName = "Exception",
                        FileName    = "An Exception Occured. Sorry.",
                        Type        = Link.ContentType.Picture,
                        Url         = "https://Exception.com"
                    };
                }
                else
                {
                    link = links[randomLinkNr];
                }
            }

            var fullSentence = string.Empty;

            switch (link.Type)
            {
            case Link.ContentType.Video:
                fullSentence = $"Watch {link.CreatorName}' JOI and {denialtext}";
                break;

            case Link.ContentType.Picture:
                fullSentence = $"Edge to {link.CreatorName}' Picture and {denialtext}";
                break;
            }

            var rerollIn = string.Empty;

            if (this.Outcome != SlaveReportsExtension.Outcome.Task)
            {
                rerollIn             = "You are not allowed to re-roll for now.";
                this.WheelLockedTime = new TimeSpan(8, 0, 0);
            }

            this.Text = $"{fullSentence}.{rerollIn}\n" + $"{link.Url}\n";

            var builder = new DiscordEmbedBuilder
            {
                Title       = "Click here.",
                Description = fullSentence,
                Footer      = new DiscordEmbedBuilder.EmbedFooter()
                {
                    Text = rerollIn
                },
                Url   = link.Url,
                Color = link.Type == Link.ContentType.Picture
                                                              ? new DiscordColor("#42f483")
                                                              : new DiscordColor("#acf441"),
                Author = new DiscordEmbedBuilder.EmbedAuthor()
                {
                    Name = link.CreatorName
                }
            };

            if (link.Type == Link.ContentType.Picture)
            {
                builder.ImageUrl = link.Url;
            }

            this.Embed = builder.Build();
        }