public static List <TestWork> GetTestWorks(IEnumerable <User> users) { var testWorks = new List <TestWork>(); var testNumber = 0; foreach (var user in users) { var testWork = new TestWork() { User = user, Time = new TimeSpan(_Random.Next(2), _Random.Next(60), _Random.Next(60)), Result = _Random.Next(100), Test = new Test() { Category = _Categories[_Random.Next(_Categories.Count())], MaxTime = new TimeSpan(1, 0, 0), Name = String.Format("Test number {0}", testNumber.ToString()), PassingScore = 50, Questions = GetQuestions(40) } }; testWorks.Add(testWork); } return(testWorks); }
public void EntityBaseIClone_ShouldBeNormal() { var work = new TestWork(); var deepClone = work.DeepClone() as TestWork; var shallowClone = work.ShallowClone() as TestWork; deepClone.Creator = "gainorloss"; shallowClone.Creator = "gainorloss"; }
public async Task <ActionResult <Result <string> > > SaveTestWork(TestWorkDTO testWorkDTO) { _logger.Information($"Enter into method."); try { TestWork testWork = new TestWork(); if (testWorkDTO.Attributes != null && testWorkDTO.Attributes.Count() > 0) { foreach (var item in testWorkDTO.Attributes) { if (_testRepository.ValidInsertAttributeByEmailAddress(testWorkDTO.Email, item)) { _testRepository.Add(new TestWork() { Key = testWorkDTO.Key, Email = testWorkDTO.Email, CrDate = DateTime.Now, Attributes = item }); } } var result = await _testRepository.UnitOfWork.SaveChangesAsync(); var listAttributes = _testRepository.Get10AttributeByEmailAddress(testWorkDTO.Email); if (listAttributes.Count() == 10) { Common.SendMail(testWorkDTO.Email, listAttributes); } _logger.Information($"After save information: {result.ToString()}"); } testWorkDTO.Email = Common.CalculateHash(testWorkDTO.Email); _logger.Error($"Input object content: {JsonConvert.SerializeObject(testWorkDTO)}"); } catch (Exception ex) { _logger.Error($"Exception. Message: {ex.Message}"); } return(Ok("success")); }
public void Remove(TestWork testModel) { _context.TestWorkModel.Remove(testModel); }
public void Update(TestWork testModel) { _context.Entry(testModel).State = EntityState.Modified; }
public TestWork Add(TestWork testModel) { return(_context.TestWorkModel.Add(testModel).Entity); }
//LeaderThread取工作->指派新的Leader->開始工作->回到idleQueue private int LeaderWork(object ThisThreadItem) { if (Controller.IsRunning && ((ThreadItem)ThisThreadItem).IsRunning) { //從WorkQueue取工作 WorkItem Work; if (WorkQueue.Count != 0) { lock (WorkQueueLock) Work = WorkQueue.Dequeue(); } else { return(0); } //從IdleThread Queue指派Thread成為新領導,沒有Thread就新增Thread或設為null lock (Controller.ThreadVariableChangeLock) if (IdleThreadQueue.Count != 0) { LeaderThread = IdleThreadQueue.Dequeue(); Debug.WriteLine("指派Thread[{0}]為新領導", LeaderThread._Thread.ManagedThreadId); LeaderThread._AutoResetEvent.Set(); } else { LeaderThread = Controller.CreateThread(new ParameterizedThreadStart(ThreadWork)); #if (LeaderThread != null) Debug.WriteLine("Thread[{0}] is Leader Create Done", LeaderThread._Thread.ManagedThreadId); #else Debug.WriteLine("沒有閒置的Thread"); #endif } //做從WorkQueue取出的工作 //如果工作的程式碼有Thread.CurrentThread.Abort,會把被Abort的Thread重置 try { switch (Work.GroupName) { case FunctionGroupName.TestFunctionGroup: TestWork.TestFunctionGroup(Work); break; case FunctionGroupName.FeaturesFunctionGroup: TestWork.FeaturesFunctionGroup(Work); break; } } catch { if (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested || Thread.CurrentThread.ThreadState.ToString() == "Background, AbortRequested") { Debug.WriteLine("Thread[{0}] 被Abort,重置Thread[{0}]", Thread.CurrentThread.ManagedThreadId); Thread.ResetAbort(); } } //工作做完如果沒有LeaderThread會自動成為Leader,不然加入IdleThread Queue, lock (Controller.ThreadVariableChangeLock) if (LeaderThread == null) { Debug.WriteLine("Thread[{0}] 成為新領導", Thread.CurrentThread.ManagedThreadId); LeaderThread = ((ThreadItem)ThisThreadItem); } else { Debug.WriteLine("Thread[{0}] 進入閒置佇列", Thread.CurrentThread.ManagedThreadId); IdleThreadQueue.Enqueue((ThreadItem)ThisThreadItem); } } return(0); }