private TestSuiteDefinition GetOrCreateSuiteDefinition(TestSuiteDefinition suite, out CreateStatus createStatus)
 {
     lock (_suiteLock)
     {
         TestSuiteDefinition result = null;
         createStatus = CreateStatus.Existing;
         if (!string.IsNullOrEmpty(suite.Uuid))
         {
             result = (TestSuiteDefinition)TestingRepository.Retrieve(typeof(TestSuiteDefinition), suite.Uuid);
         }
         if (result == null && suite.Id > 0)
         {
             result = TestingRepository.Retrieve <TestSuiteDefinition>(suite.Id);
         }
         if (result == null)
         {
             result = TestingRepository.Query <TestSuiteDefinition>(Query.Where("Title") == suite.Title).FirstOrDefault();
             if (result != null)
             {
                 result = (TestSuiteDefinition)TestingRepository.Retrieve(typeof(TestSuiteDefinition), result.Uuid);
             }
         }
         if (result == null)
         {
             Meta.SetAuditFields(suite);
             result       = TestingRepository.Create(suite);
             createStatus = CreateStatus.Created;
         }
         return(result);
     }
 }
 public virtual RetrieveTestExecutionResponse RetrieveTestExecutionById(long id)
 {
     try
     {
         TestExecution retrieved = TestingRepository.Retrieve <TestExecution>(id);
         return(new RetrieveTestExecutionResponse {
             Success = true, Data = retrieved, CreateStatus = CreateStatus.Existing
         });
     }
     catch (Exception ex)
     {
         return(new RetrieveTestExecutionResponse {
             Success = false, Message = ex.Message
         });
     }
 }
 public virtual RetrieveTestExecutionResponse RetrieveTestExecutionByUuid(string uuid)
 {
     try
     {
         TestExecution queried = TestingRepository.Query <TestExecution>(Query.Where("Uuid") == uuid).FirstOrDefault();
         if (queried == null)
         {
             Args.Throw <ArgumentException>("TestExecution with the specified Uuid was not found: {0}", uuid);
         }
         TestExecution retrieved = TestingRepository.Retrieve <TestExecution>(queried.Id);
         return(new RetrieveTestExecutionResponse {
             Success = true, Data = retrieved
         });
     }
     catch (Exception ex)
     {
         return(new RetrieveTestExecutionResponse {
             Success = false, Message = ex.Message
         });
     }
 }