/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="raw"></param> /// <returns></returns> public static VirusTrace ToModel(this VirusTypeDataModel client, VirusTrace raw = null) { if (raw == null) { raw = new VirusTrace(); } raw.Type = client.Type; raw.Sha1 = client.Sha1; raw.Alias = client.Alias; raw.Create = client.Create; raw.Description = client.Description; raw.WarningLevel = client.WarningLevel; return(raw); }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="isAutoDispatch"></param> /// <returns></returns> public static VirusTypeDataModel ToModel(this VirusTrace client, bool isAutoDispatch) { return(new VirusTypeDataModel() { Id = client.Id, Create = client.Create, Alias = client.Alias, Description = client.Description, WarningLevel = client.WarningLevel, Sha1 = client.Sha1, Type = client.Type, IsAutoDispatch = isAutoDispatch }); }
public void RelateVirusTrace(Virus client) { VirusTrace trace = null; if (client.Type?.ToLower()?.Equals("trojan.generic") ?? false) { trace = context.VirusTracesDb.FirstOrDefault(i => i.Sha1 == client.Sha1); } else { trace = context.VirusTracesDb.FirstOrDefault(i => i.Type == client.Type); } if (trace == null) { trace = new VirusTrace() { Type = client.Type, Sha1 = client.Sha1, Create = DateTime.Now }; context.VirusTraces.Add(trace); } var dispatch = context.VirusTypeDispatchesDb.FirstOrDefault(i => i.Virus.Id == client.Id); if (dispatch != null && !dispatch.IsAutoDispatch) { return; // 当用户手动修改过后不再自动同步 } if (dispatch == null) { dispatch = new VirusTypeDispatch() { IsAutoDispatch = true, Virus = client, VirusTrace = trace } } ; else { dispatch.VirusTrace = trace; } context.VirusTypeDispatches.Add(dispatch); SynVirusTrace(client, trace); }
public void RelateVirusTrace(Virus client, VirusTrace trace) { var relate = context.VirusTypeDispatchesDb.FirstOrDefault(i => i.Virus.Id == client.Id); if (relate != null) { if (relate.VirusTrace.Id == trace.Id) { throw new ActionStatusMessageException(ActionStatusMessage.StaticMessage.ResourceAllReadyExist); } relate.VirusTrace = trace; relate.IsAutoDispatch = false; context.VirusTypeDispatches.Update(relate); } else { context.VirusTypeDispatches.Add(new VirusTypeDispatch() { IsAutoDispatch = false, Virus = client, VirusTrace = trace }); } SynVirusTrace(client, trace); }
public void SynVirusTrace(Virus client, VirusTrace trace) { client.TraceType = trace; client.TraceAlias = trace.Alias; context.Viruses.Update(client); }