// GET: EnergyAbilities public async Task <IActionResult> Index() { var energyAbility = from ee in _context.EnergyAbility select ee; energyAbility = energyAbility.Where(m => m.user_id == User.Identity.Name); List <EnergyAbility> e = await energyAbility.OrderBy(m => m.create_time).AsNoTracking().ToListAsync(); var lastEnergy = await _context.EnergyAbility.OrderBy(m => m.create_time).LastOrDefaultAsync(m => m.user_id == User.Identity.Name); EnergyList energyList = new EnergyList(); energyList.lastlist = lastEnergy; energyList.list = e; foreach (var x in e) { energyList.timelist.Add(x.create_time.ToString("MM-dd")); } return(View(energyList)); }
private void InitReportData(List <FightResult> iterationFightResults) { nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = " "; decimal lastChangeTimeStamp = 0; const int interval = 2; // Can't go higher due to inconsistent line-values. foreach (var iteration in iterationFightResults) { _oneBuilder.Clear(); TotalDamage += iteration.TotalDamage; TotalHits += iteration.TotalHits; TotalCrits += iteration.TotalCrits; if (iteration.Dps > HighestDps) { HighestDps = iteration.Dps; } if (iteration.Dps < LowestDps) { LowestDps = iteration.Dps; } foreach (var rr in iteration.RoundResults) { if (lastChangeTimeStamp == 0 || lastChangeTimeStamp + interval < rr.TimeSec) { EnergyList.Add(new EnergySnap { Time = rr.TimeSec, Primary = rr.PrimaryEnergyEnd, Secondary = rr.SecondaryEnergyEnd, Pgimmick = rr.PrimaryGimmickEnd, Sgimmick = rr.SecondaryGimmickEnd }); lastChangeTimeStamp = rr.TimeSec; } foreach (var a in rr.Attacks) { if (a.IsHit && a.IsCrit) { _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " + $"{a.Spell.Name} *{a.Damage.ToString("#,##0,.0K", nfi)}* " + $"E({rr.PrimaryEnergyEnd}/{rr.SecondaryEnergyEnd}) " + $"R({rr.PrimaryGimmickEnd}/{rr.SecondaryGimmickEnd})</div>"); } else if (a.IsHit && a.Spell.SpellType != SpellType.Procc) { _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " + $"{a.Spell.Name} {a.Damage.ToString("#,##0,.0K", nfi)} " + $"E({rr.PrimaryEnergyEnd}/{rr.SecondaryEnergyEnd}) " + $"R({rr.PrimaryGimmickEnd}/{rr.SecondaryGimmickEnd})</div>"); } else if (a.IsHit && a.Spell.SpellType == SpellType.Procc) { _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " + $"[{a.Spell.Name}] proc!</div>"); } _allSpellCast.Add(a); if (_distinctSpellCast.All(s => s.Name != a.Spell.Name)) { _distinctSpellCast.Add(a.Spell); } } foreach (var buff in rr.Buffs) { if (_distinctBuffs.All(b => b.Name != buff.Name)) { _distinctBuffs.Add(buff); } } } } _oneBuilder.AppendLine("\r\nOutput format:" + "\r\n#1 Elapsed time in Seconds" + "\r\n#2 Spellname + Damage" + "\r\n#3 Primary/Secondary Energy/Resource(Weapon)"); }