public void StepByStepExecutionOfNonDeterministicAutomatonTest() { var executorViewModel = new ExecutorViewModel() { Executor = executor }; graph.Edges.FirstOrDefault(edge => edge.Source.ID == 1 && edge.Target.ID == 2).TransitionTokensString = "01"; executorViewModel.InputString = "110"; executorViewModel.StartDebugCommand.Execute(null); Assert.True(executorViewModel.InSimulation); Assert.True(CheckStep(executorViewModel, new List <int>() { 1 }, ResultEnum.NotRunned, "", "1", "10")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 1, 2 }, ResultEnum.NotRunned, "1", "1", "0")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 1, 2 }, ResultEnum.NotRunned, "11", "0", "")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 2 }, ResultEnum.Passed, "110", "", "")); }
public async Task <IActionResult> Post(ExecutorViewModel model) { if (ModelState.IsValid) { await _database.Database.ExecuteSqlCommandAsync("dbo.INSERT_EXECUTOR @firstName, " + "@lastName, " + "@patronymic, " + "@description, " + "@executorType, " + "@userId, " + "@phoneNumber, " + "@payerAccountNumber, " + "@fullJuridicalName, " + "@shortJuridicalName, " + "@servicesId", new SqlParameter("@firstName", model.FirstName), new SqlParameter("@lastName", model.LastName), new SqlParameter("@patronymic", model.Patronymic), new SqlParameter("@description", model.Description), new SqlParameter("@executorType", model.ExecutorType), new SqlParameter("@userId", model.UserId), new SqlParameter("@phoneNumber", model.Number), new SqlParameter("@payerAccountNumber", model.PayerAccountNumber), new SqlParameter("@fullJuridicalName", model.FullJuridicalName), new SqlParameter("@shortJuridicalName", model.ShortJuridicalName), new SqlParameter("@servicesId", model.ServicesId)); return(Ok(model)); } return(BadRequest()); }
public void UpdateExecutor(ExecutorViewModel model) { var services = database.ServiceClassifers.GetList() .Where(s => model.ServiceClassifersIds .Contains(s.Id.ToString())) .ToList(); var executor = database.Executors.GetList().FirstOrDefault(e => e.Id == model.Id); executor.FirstName = model.FirstName; executor.LastName = model.LastName; executor.Patronymic = model.Patronymic; executor.Description = model.Description; executor.PhoneNumber = model.PhoneNumber; executor.ServiceClassifers.Clear(); executor.ServiceClassifers = services; if (string.Equals(model.Type, "NP")) { database.Executors.Update(executor); database.Save(); } else if (string.Equals(model.Type, "ST")) { database.Executors.Update(executor); database.Save(); var trader = database.SoleTraderExecutors.Get(model.Id); trader.PayerAccountNumber = model.PayerAccountNumber; database.SoleTraderExecutors.Update(trader); database.Save(); } else if (string.Equals(model.Type, "JP")) { database.Executors.Update(executor); database.Save(); var juridical = database.JuridicalExecutors.Get(model.Id); juridical.PayerAccountNumber = model.PayerAccountNumber; juridical.FullJuredicalName = model.FullJuredicalName; juridical.ShortJuredicalName = model.ShortJuredicalName; database.JuridicalExecutors.Update(juridical); database.Save(); } }
public void FastExecutionTest() { var executorViewModel = new ExecutorViewModel() { Executor = executor }; Assert.AreEqual(ResultEnum.NotRunned, executorViewModel.Result); executorViewModel.InputString = "111010"; executorViewModel.RunCommand.Execute(null); Assert.AreEqual(ResultEnum.Passed, executorViewModel.Result); executorViewModel.InputString = "1101"; Assert.AreEqual(ResultEnum.NotRunned, executorViewModel.Result); executorViewModel.RunCommand.Execute(null); Assert.AreEqual(ResultEnum.Failed, executorViewModel.Result); }
public void DropDebugTest() { var executorViewModel = new ExecutorViewModel { Executor = executor }; executorViewModel.InputString = "11010"; executorViewModel.StartDebugCommand.Execute(null); executorViewModel.StepInCommand.Execute(null); executorViewModel.DropDebugCommand.Execute(null); Assert.False(executorViewModel.InSimulation); Assert.True(CheckStep(executorViewModel, new List <int>(), ResultEnum.NotRunned, "", "", "")); }
private void AddExecutorForm_Load(object sender, EventArgs e) { if (id.HasValue) { try { ExecutorViewModel view = service.GetElement(id.Value); if (view != null) { FIOTextBox.Text = view.ExecutorFIO; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public void Put([FromBody]ExecutorViewModel model) { ExecutorManager.UpdateExecutor(model); }
public void StepByStepExecutionTest() { var executorViewModel = new ExecutorViewModel() { Executor = executor }; Assert.AreEqual(ResultEnum.NotRunned, executorViewModel.Result); var notified = false; void CheckNotified(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(ExecutorViewModel.InSimulation)) { notified = true; } } executorViewModel.PropertyChanged += CheckNotified; executorViewModel.InputString = "11010"; executorViewModel.StartDebugCommand.Execute(null); Assert.True(executorViewModel.InSimulation); Assert.True(notified); notified = false; Assert.True(CheckStep(executorViewModel, new List <int>() { 1 }, ResultEnum.NotRunned, "", "1", "1010")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 1 }, ResultEnum.NotRunned, "1", "1", "010")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 1 }, ResultEnum.NotRunned, "11", "0", "10")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 2 }, ResultEnum.NotRunned, "110", "1", "0")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 1 }, ResultEnum.NotRunned, "1101", "0", "")); executorViewModel.StepInCommand.Execute(null); Assert.True(CheckStep(executorViewModel, new List <int>() { 2 }, ResultEnum.Passed, "11010", "", "")); Assert.False(executorViewModel.StepInCommand.CanExecute(null)); executorViewModel.DropDebugCommand.Execute(null); Assert.False(executorViewModel.InSimulation); Assert.True(notified); }
private bool CheckStep(ExecutorViewModel executorViewModel, List <int> actualStates, ResultEnum result, string passedString, string currentToken, string notPassedString) => new HashSet <int>(executorViewModel.ActualStates).SetEquals(new HashSet <int>(actualStates)) && executorViewModel.Result == result && executorViewModel.PassedString == passedString && executorViewModel.CurrentToken == currentToken && executorViewModel.NotPassedString == notPassedString;
public void SceneEditingDisablingDuringSimulationTest() { var newWindowThread = new Thread(new ThreadStart(() => { var scene = new Scene(); var help = new ErrorReporterViewModel(); scene.ErrorReporter = help; var graph = help.Graph; var state1 = new NodeViewModel { ID = 1, IsInitial = true }; var state2 = new NodeViewModel { ID = 2, IsFinal = true }; graph.AddVertex(state1); graph.AddVertex(state2); graph.AddEdge(new EdgeViewModel(state1, state1) { TransitionTokensString = "1" }); graph.AddEdge(new EdgeViewModel(state1, state2) { TransitionTokensString = "0" }); graph.AddEdge(new EdgeViewModel(state2, state1) { TransitionTokensString = "1" }); var executor = new FAExecutor(graph); var executorViewModel = new ExecutorViewModel() { Executor = executor }; executorViewModel.StartDebugCommand.Execute(null); foreach (var vertex in graph.Vertices) { Assert.False(vertex.EditionAvailable); } foreach (var edge in graph.Edges) { Assert.False(edge.EditionAvailable); } executorViewModel.DropDebugCommand.Execute(null); foreach (var vertex in graph.Vertices) { Assert.True(vertex.EditionAvailable); } foreach (var edge in graph.Edges) { Assert.True(edge.EditionAvailable); } // start the Dispatcher processing System.Windows.Threading.Dispatcher.Run(); })); // set the apartment state newWindowThread.SetApartmentState(ApartmentState.STA); // make the thread a background thread newWindowThread.IsBackground = true; // start the thread newWindowThread.Start(); }