Example #1
0
 public GrandInfo()
 {
     Name     = "";
     Gender   = false;
     Nation   = NationStatus.Australian;
     Military = false;
 }
        public static async Task <int> AddUnknownNationsAsPendingAsync(List <string> newNations, bool sourceDumps)
        {
            int counter = 0;

            using (var context = new BotDbContext(_config))
            {
                var status = await context.NationStatuses.FirstOrDefaultAsync(n => n.Name == "pending");

                if (status == null)
                {
                    status = new NationStatus()
                    {
                        Name = "pending"
                    };
                    await context.NationStatuses.AddAsync(status);

                    await context.SaveChangesAsync();
                }
                foreach (string nationName in newNations)
                {
                    if (await context.Nations.FirstOrDefaultAsync(n => n.Name == nationName) == null)
                    {
                        var time = sourceDumps ? TimeZoneInfo.ConvertTimeToUtc(DumpDataService.LastDumpUpdateTimeUtc, TimeZoneInfo.Local) : DateTime.UtcNow;
                        await context.Nations.AddAsync(new Nation()
                        {
                            Name = nationName, StatusTime = time, Status = status, StatusId = status.Id
                        });

                        await context.SaveChangesAsync();

                        counter++;
                    }
                }
            }
            return(counter);
        }
        public static async Task SetNationStatusToAsync(Nation nation, string statusName)
        {
            using (var dbContext = new BotDbContext(_config))
            {
                var current = nation.Status;
                var status  = await dbContext.NationStatuses.FirstOrDefaultAsync(n => n.Name == statusName);

                if (status == null)
                {
                    status = new NationStatus()
                    {
                        Name = statusName
                    };
                    await dbContext.NationStatuses.AddAsync(status);

                    await dbContext.SaveChangesAsync();
                }
                nation.Status     = status;
                nation.StatusId   = status.Id;
                nation.StatusTime = DateTime.UtcNow;
                dbContext.Nations.Update(nation);
                await dbContext.SaveChangesAsync();
            }
        }