public override void Execute(DiscreteLogarithm entity) { Logger.SetExecutionId(entity.Id); var job = new DiscreteLogarithmJob(Logger, _discreteLogarithmDataService); entity = _discreteLogarithmDataService.Get(entity.Id); entity.Status = Status.InProgress; _discreteLogarithmDataService.Update(entity); _discreteLogarithmDataService.SaveChanges(); var result = job.Run(entity.Generator, entity.Result, entity.Modulus); if (result.IsSuccess) { entity.Exponent = result.DiscreteLogarithm; entity.Status = result.HadWarnings ? Status.FinishedWithWarnings : Status.Finished; } else { if (entity.Status != Status.Canceled && !entity.Messages.Last().Message.Contains("canceled")) { entity.Status = Status.FinishedWithErrors; } } if (entity.FinishTime == null) { entity.FinishTime = DateTime.Now; } //_discreteLogarithmDataService.Update(entity); _discreteLogarithmDataService.SaveChanges(); }
public void RunTest_1() { var dataService = new Mock <IDataService <DiscreteLogarithm> >(); var logger = new Mock <IExecutionLogger>(); var job = new DiscreteLogarithmJob(logger.Object, dataService.Object); Assert.Throws <InvalidOperationException>(() => job.Run(3, 6, 7)); }
public void RunTest_4() { var dataService = new Mock <IDataService <DiscreteLogarithm> >(); var logger = new Mock <IExecutionLogger>(); var job = new DiscreteLogarithmJob(logger.Object, dataService.Object); var result = job.Run(3, 6, 9); Assert.AreEqual(0, result.DiscreteLogarithm); Assert.AreEqual(false, result.HadWarnings); Assert.AreEqual(false, result.IsSuccess); }