コード例 #1
0
ファイル: AggregateService.cs プロジェクト: mrurb/WHTracker
        private async Task <Data.Models.Alliance> GetOrCreateAlliance(int allianceId)
        {
            Data.Models.Alliance alliance = await context.Alliances.FirstOrDefaultAsync(x => x.Id == allianceId);

            if (alliance == null)
            {
                var alliancedata = await eSIService.GetAlliance(allianceId);

                alliance = new Data.Models.Alliance
                {
                    Id          = allianceId,
                    Name        = alliancedata.Name,
                    Ticker      = alliancedata.Ticker,
                    MemberCount = await eSIService.GetAllianceMemberCount(allianceId),
                    LastUpdated = DateTime.UtcNow
                };

                await context.AddAsync(alliance);
            }
            else if (alliance.LastUpdated < DateTime.UtcNow.AddHours(-24))
            {
                var alliancedata = await eSIService.GetAlliance(allianceId);

                alliance.Name        = alliancedata.Name;
                alliance.Ticker      = alliancedata.Ticker;
                alliance.MemberCount = await eSIService.GetAllianceMemberCount(allianceId);

                alliance.LastUpdated = DateTime.UtcNow;
            }

            return(alliance);
        }
コード例 #2
0
ファイル: AggregateService.cs プロジェクト: mrurb/WHTracker
        public async Task <DailyAggregateAlliance> GetOrCreateDailyAggregateAlliance(Data.Models.Alliance alliance, DateTime date)
        {
            DailyAggregateAlliance aggregate = await GetDailyAggregateAlliance(alliance.Id, date);

            if (aggregate == null)
            {
                aggregate = new DailyAggregateAlliance
                {
                    AllianceId = alliance.Id,
                    TimeStamp  = date
                };

                context.Attach(aggregate);
            }
            return(aggregate);
        }
コード例 #3
0
ファイル: AggregateService.cs プロジェクト: mrurb/WHTracker
        public async Task <MonthlyAggregateAlliance> GetOrCreateMonthlyAggregateAlliance(Data.Models.Alliance alliance, DateTime date)
        {
            var dateMonth = new DateTime(date.Year, date.Month, 1);

            MonthlyAggregateAlliance aggregate = await GetMonthlyAggregateAlliance(alliance.Id, dateMonth);

            if (aggregate == null)
            {
                aggregate = new MonthlyAggregateAlliance
                {
                    AllianceId = alliance.Id,
                    TimeStamp  = dateMonth
                };

                context.Attach(aggregate);
            }
            return(aggregate);
        }