public ActionResult ScriptCheck(string savedScript = null) { SavedScript script = null; Guid id; if (!String.IsNullOrEmpty(savedScript) && Guid.TryParse(savedScript, out id)) { try { script = repo.GetScript(id); } catch { } } var model = new ScriptCheckModel() { ScriptPubKey = "OP_DUP OP_HASH160 <Alice.PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG", ScriptSig = "<Alice.Signature> <Alice.Pubkey>", }; if (script != null) { model.SavedScriptLink = GetScriptLink(script.Id); model.ScriptPubKey = script.ScriptPubKey; model.ScriptSig = script.ScriptSig; } return(ScriptCheck(model)); }
public void Init() { _testData = new TestData(); _savedScript = new SavedScript() { Id = Guid.NewGuid() }; _schedule1 = new() { CreatedAt = Time.Now, CreatorId = _testData.User1.Id, Devices = new List <Device>() { _testData.Device1 }, DeviceGroups = new List <DeviceGroup>() { new DeviceGroup() { Devices = new List <Device>() { _testData.Device2 } } }, Interval = RepeatInterval.Hourly, Name = "_scheduleName", Id = 5, NextRun = Time.Now.AddMinutes(1), OrganizationID = _testData.User1.OrganizationID, SavedScriptId = _savedScript.Id }; var scriptSchedules = new List <ScriptSchedule>() { _schedule1 }; _dataService = new Mock <IDataService>(); _dataService.Setup(x => x.GetScriptSchedulesDue()).Returns(Task.FromResult(scriptSchedules)); _dataService.Setup(x => x.GetDevices(It.Is <IEnumerable <string> >(x => x.Contains(_testData.Device1.ID) && x.Contains(_testData.Device2.ID) ))).Returns(new List <Device>() { _testData.Device1, _testData.Device2 }); _circuitConnection = new Mock <ICircuitConnection>(); _logger = new Mock <ILogger <ScriptScheduleDispatcher> >(); _dispatcher = new ScriptScheduleDispatcher(_dataService.Object, _circuitConnection.Object, _logger.Object); }
public ActionResult SaveScript(ScriptCheckModel model) { SavedScript saved = new SavedScript(); saved.ScriptPubKey = model.ScriptPubKey; saved.ScriptSig = model.ScriptSig; repo.InsertScript(saved); return(RedirectToAction("ScriptCheck", "Home", new { savedScript = saved.Id.ToString() })); }
/// <summary> /// Saves a <see cref="Script"/> /// </summary> /// <param name="script"><see cref="Script"/> to save</param> /// <param name="userId"></param> public void SaveScript(Script script, int userId = 0) { if (SavingScript.IsRaisedEventCancelled(new SaveEventArgs<Script>(script), this)) return; var uow = _fileUowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreateScriptRepository(uow)) { repository.AddOrUpdate(script); uow.Commit(); SavedScript.RaiseEvent(new SaveEventArgs<Script>(script, false), this); } Audit(AuditType.Save, string.Format("Save Script performed by user"), userId, -1); }
public async Task GetPendingScriptRuns_GivenMultipleRunsQueued_ReturnsOnlyLatest() { var now = Time.Now; var savedScript = new SavedScript() { Content = "Get-ChildItem", Creator = _testData.Admin1, CreatorId = _testData.Admin1.Id, Name = "GCI", Organization = _testData.Admin1.Organization, OrganizationID = _testData.OrganizationID, Shell = Shared.Enums.ScriptingShell.PSCore }; await _dataService.AddOrUpdateSavedScript(savedScript, _testData.Admin1.Id); var scriptRun = new ScriptRun() { Devices = new() { _testData.Device1 }, InputType = Shared.Enums.ScriptInputType.ScheduledScript, SavedScriptId = savedScript.Id, Initiator = _testData.Admin1.UserName, RunAt = now, OrganizationID = _testData.OrganizationID, Organization = _testData.Admin1.Organization, RunOnNextConnect = true }; await _dataService.AddScriptRun(scriptRun); scriptRun.Id = 0; scriptRun.RunAt = now.AddMinutes(1); await _dataService.AddScriptRun(scriptRun); Time.Adjust(TimeSpan.FromMinutes(2)); var pendingRuns = await _dataService.GetPendingScriptRuns(_testData.Device1.ID); Assert.AreEqual(1, pendingRuns.Count); Assert.AreEqual(2, pendingRuns[0].Id); var scriptResult = new ScriptResult() { DeviceID = _testData.Device1.ID, InputType = Shared.Enums.ScriptInputType.ScheduledScript, OrganizationID = _testData.OrganizationID, SavedScriptId = savedScript.Id, ScriptRunId = scriptRun.Id, Shell = Shared.Enums.ScriptingShell.PSCore }; _dataService.AddOrUpdateScriptResult(scriptResult); await _dataService.AddScriptResultToScriptRun(scriptResult.ID, scriptRun.Id); pendingRuns = await _dataService.GetPendingScriptRuns(_testData.Device1.ID); Assert.AreEqual(0, pendingRuns.Count); }