Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
 /// <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
     });
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public void SynVirusTrace(Virus client, VirusTrace trace)
 {
     client.TraceType  = trace;
     client.TraceAlias = trace.Alias;
     context.Viruses.Update(client);
 }