private AttackGroups CreateNewAttackGroup(DnsAttackModel model, IEnumerable <string> blockedIps, IEnumerable <string> blockedSubnets) { var newGroup = new AttackGroups { DateBegin = DateTimeOffset.UtcNow, Status = (int)AttackGroupStatusEnum.PendingCheck }; var groupHistory = AddNewAttackGroupHistory(newGroup, AttackGroupStatusEnum.None); var attack = AddNewAttack(model, newGroup); var history = AddNewAttackHistory(attack, AttackStatusEnum.None); return(newGroup); }
private AttackGroupHistories AddNewAttackGroupHistory(AttackGroups attackGroups, AttackGroupStatusEnum prevStatus) { var history = new AttackGroupHistories { Date = DateTimeOffset.UtcNow, CurrentStatus = attackGroups.Status, PrevStatus = (int)prevStatus, AttackGroup = attackGroups, AttackGroupId = attackGroups.Id }; attackGroups.GroupHistories.Add(history); return(history); }
public AttackGroupViewModel CastToViewModel(AttackGroups attackGroup) { return(new AttackGroupViewModel { Summary = attackGroup.Attacks.GroupBy(x => x.Status).Select(x => new AttackGroupViewModel.AttacksSummaryViewModel { Count = x.Count(), Status = x.Key }).OrderBy(x => x.Status).ToList(), BlackDomain = attackGroup.Attacks.FirstOrDefault().BlackDomain, Status = attackGroup.Status, Id = attackGroup.Id, WhiteDomain = attackGroup.Attacks.FirstOrDefault().WhiteDomain }); }
private Attacks AddNewAttack(DnsAttackModel model, AttackGroups attackGroups) { var attack = new Attacks { BlackDomain = model.BlackDomain, Ip = model.Ip, Status = (int)AttackStatusEnum.Intersection, WhiteDomain = model.WhiteDomain, AttackGroup = attackGroups, AttackGroupId = attackGroups.Id }; attackGroups.Attacks.Add(attack); return(attack); }
public async Task AddHistory(AttackGroups attackGroup, AttackGroupStatusEnum prevStatusEnum, bool commit = false) { attackGroup.GroupHistories.Add(new AttackGroupHistories { AttackGroupId = attackGroup.Id, Date = DateTimeOffset.UtcNow, CurrentStatus = attackGroup.Status, PrevStatus = (int)prevStatusEnum, }); if (commit) { await _dnsDb.SaveChangesAsync(); } else { await Task.FromResult(0); } }
public async Task AddNote(AttackGroups attackGroup, string text, bool commit = false) { attackGroup.Notes.Add(new AttackNotes { AttackGroup = attackGroup, AttackGroupId = attackGroup.Id, Date = DateTimeOffset.UtcNow, Text = text.Trim() }); if (commit) { await _dnsDb.SaveChangesAsync(); } else { await Task.FromResult(0); } }