Beispiel #1
0
 public Task <bool> LazyCommitMasterData(Guid runId, string CompletedAt)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             var masterData = dbContext.PerformanceExecutions.FirstOrDefault(r => r.RunId == runId);
             if (masterData == null)
             {
                 return false;
             }
             masterData.CompletedAt = Helper.Utilities.ParseDateTimestamp(CompletedAt);
             masterData.DurationInMS = ((masterData.CompletedAt) - masterData.StartedAt)?.TotalMilliseconds ?? 0;
             var enumartor = TransformData(ReadData(tracePath)).GetEnumerator();
             int idx = 0;
             while (enumartor.MoveNext())
             {
                 var item = enumartor.Current as TraceDetails;
                 item.RunId = masterData.RunId;
                 item.PerformanceExecution = masterData;
                 dbContext.TraceDetails.Add(item);
                 // save when reach threeshold to keep saving in progress, avoid saving timeout for large number of items.
                 if (idx++ > saveThreeshold)
                 {
                     dbContext.SaveChanges();
                     idx = 0;
                 }
             }
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #2
0
 public Task <bool> SaveAPITestCase(Models.APITestCase APITestCase)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             dbContext.APITestCases.Add(APITestCase);
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #3
0
 public Task <bool> SaveMaster(Models.PerformanceExecution masterData)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             if (masterData == null)
             {
                 return false;
             }
             dbContext.PerformanceExecutions.Add(masterData);
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #4
0
 public Task <bool> SaveAPIPerformance(APITrace APIPerformance)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             var master = dbContext.PerformanceExecutions.FirstOrDefault(m => m.RunId == APIPerformance.RunId);
             if (APIPerformance == null || master == null)
             {
                 return false;
             }
             APIPerformance.PerformanceExecution = master;
             dbContext.APITraces.Add(APIPerformance);
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #5
0
 public Task <bool> CommitMasterData(Guid runId, string CompletedAt)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             var masterData = dbContext.PerformanceExecutions.FirstOrDefault(r => r.RunId == runId);
             if (masterData == null)
             {
                 return false;
             }
             masterData.CompletedAt = Helper.Utilities.ParseDateTimestamp(CompletedAt);
             masterData.DurationInMS = ((masterData.CompletedAt) - masterData.StartedAt)?.TotalMilliseconds ?? 0;
             var traceData = ReadDataInHashTable(tracePath);
             int idx = 0;
             foreach (ICollection <TraceDetails> traceDic in traceData.Values)
             {
                 foreach (var item in traceDic)
                 {
                     item.RunId = masterData.RunId;
                     item.PerformanceExecution = masterData;
                     dbContext.TraceDetails.Add(item);
                     // save when reach threeshold to keep saving in progress, avoid saving timeout for large number of items.
                     if (++idx >= saveThreeshold)
                     {
                         dbContext.SaveChanges();
                         idx = 0;
                     }
                 }
             }
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #6
0
 public Task <bool> APIErrorLogger(Guid runId, string error)
 {
     return(_docerator.Decorate <bool>(() =>
     {
         bool ret = false;
         using (var dbContext = new PerformanceDbContext())
         {
             var master = dbContext.PerformanceExecutions.FirstOrDefault(m => m.RunId == runId);
             if (string.IsNullOrEmpty(error) || master == null)
             {
                 return false;
             }
             var errorLog = new APIErrorLog()
             {
                 RunId = runId,
                 PerformanceExecution = master,
                 Error = error,
             };
             dbContext.APIErrorLogs.Add(errorLog);
             ret = dbContext.SaveChanges() > 0;
         }
         return ret;
     }));
 }
Beispiel #7
0
 public HomeController()
 {
     this.webDbContext = new PerformanceDbContext();
 }
Beispiel #8
0
 public PerformanceService(PerformanceDbContext context)
 {
     this.context = context;
 }
 public UrlDataController()
 {
     this.webDbContext = new PerformanceDbContext();
 }