コード例 #1
0
 public void AddLogs(int type, List<PlatformLog> logs)
 {
     using (var db = base.NewDB())
     {
         var groups = logs.GroupBy(x => x.Time.ToGroupHour()).ToList();
         var hours = groups.Select(x => x.Key).ToArray();
         var existings = db.RequestLogs.Where(x => x.Type == type && hours.Contains(x.GroupHour)).ToList();
         foreach (var group in groups)
         {
             foreach (var platform in group.GroupBy(x => x.Platform))
             {
                 var existing = existings.FirstOrDefault(x=>x.GroupHour == group.Key&&x.Platform == platform.Key);
                 if (existing == null)
                 {
                     var time = platform.Max(x => x.Time);
                     var log = new RequestLog(type, platform.Key, time, platform.Count());
                     db.RequestLogs.Add(log);
                 }
                 else
                 {
                     existing.Value += platform.Count();
                     existing.Date = DateTime.Now;
                 }
             }
         }
         db.SaveChanges();
     }
 }
コード例 #2
0
 public void AddLog(int type, Platform? platform)
 {
     try
     {
         using (var db = base.NewDB())
         {
             var dbLog = db.RequestLogs.Get(type, platform);
             if (dbLog == null)
             {
                 dbLog = new RequestLog(type, platform);
                 db.RequestLogs.Add(dbLog);
             }
             dbLog.AddValue();
             db.SaveChanges();
         }
     }
     catch (Exception)
     {
         
     }
 }