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); }
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); }
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); }