static void Main(string[] args) { var client = new Client("https://www.mystore.com/mm5/json.mvc", "MY_API_TOKEN", "MY_SIGNING_KEY"); client.DefaultStoreCode = "STORE_CODE"; /// If you create a custom module or want to hook into an existing modules API functionality it exposes you can /// use the Module request class to call into the module. var request = new ModuleRequest(client); // Set the module you wish to call into request.SetModuleCode("mymodule"); // Set the function name you wish to call (defined by your modules json_api feature) request.SetModuleFunction("MyModuleFunction"); /// Add custom parameters to the request using the setModuleField method request.SetModuleField("MyModuleField", "Foo") .SetModuleField("MyModuleField_Int", 1) .SetModuleField("MyModuleField_Decimal", 2.99); // Send the request ModuleResponse response = request.Send(); if (!response.IsSuccess()) { Console.WriteLine("Error: {0}: {1}", response.GetErrorCode(), response.GetErrorMessage()); } else { Console.WriteLine("Success"); } }
public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { var module = new Module(moduleRequest.CmdArgument, File.ReadAllText(moduleRequest.AbsolutePath)); result = module; return(true); }
public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { if (File.Exists(moduleRequest.AbsolutePath)) { var code = File.ReadAllText(moduleRequest.AbsolutePath); result = new Module(moduleRequest.AbsolutePath, code); return(true); } else { if (moduleRequest.AbsolutePath.EndsWith("Rhino.js")) { var assembly = typeof(ModuleResolver).Assembly; using (var stream = assembly.GetManifestResourceStream("RhinoHornbill.Rhino.js")) using (var reader = new StreamReader(stream)) { var code = reader.ReadToEnd(); var module = new Module(moduleRequest.AbsolutePath, code); var namespaceProvider = new NamespaceProvider("Rhino"); module.Context.DefineVariable("Rhino").Assign(namespaceProvider); result = module; return(true); } } } result = null; return(false); }
public override ModuleResponse Process(ModuleRequest request) { return(new ModuleResponse { Data = string.Format("{0}: response for {1}, type = {2}", Host.Name, request.Data, request.RequestType) }); }
public ActionResult DeleteConfirmed(int id) { ModuleRequest moduleRequest = db.ModuleRequests.Find(id); db.ModuleRequests.Remove(moduleRequest); db.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Update([FromForm] ModuleRequest request, int moduleID) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _moduleService.Update(request, moduleID); return(Ok(result)); }
public ActionResult Edit([Bind(Include = "RequestID,StudentID,ModuleCode,ModuleName,RequestDate")] ModuleRequest moduleRequest) { if (ModelState.IsValid) { db.Entry(moduleRequest).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.StudentID = new SelectList(db.Students, "StudentID", "Id", moduleRequest.StudentID); return(View(moduleRequest)); }
public async Task <ActionResult <Module> > Create(ModuleRequest module) { var result = await _modules.Create(module, HttpContext.RequestAborted); if (result == null) { return(Conflict()); } return(result); }
public bool TryGetModule(ModuleRequest moduleRequest, out Module result) { if (moduleRequest.AbsolutePath == _module.FilePath) { result = _module; return(true); } result = null; return(false); }
public override bool TryGetModule(ModuleRequest request, out Module result) { var currentDir = Directory.GetCurrentDirectory(); if (File.Exists(currentDir + request.AbsolutePath)) { result = new Module(request.AbsolutePath, File.ReadAllText(currentDir + request.AbsolutePath)); return(true); } result = null; return(false); }
// GET: ModuleRequests/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ModuleRequest moduleRequest = db.ModuleRequests.Find(id); if (moduleRequest == null) { return(HttpNotFound()); } return(View(moduleRequest)); }
public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { if (moduleRequest.CmdArgument == "http://somesite.com/modules/arithmetic.js") { var module = new Module(moduleRequest.CmdArgument, @"export function add(num1, num2) { return num1 + num2; }"); result = module; return(true); } result = null; return(false); }
// GET: ModuleRequests/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ModuleRequest moduleRequest = db.ModuleRequests.Find(id); if (moduleRequest == null) { return(HttpNotFound()); } ViewBag.StudentID = new SelectList(db.Students, "StudentID", "Id", moduleRequest.StudentID); return(View(moduleRequest)); }
public async Task <ApiResult <bool> > Update(ModuleRequest request, int moduleId) { var module = await _context.Modules.FindAsync(moduleId); if (module == null) { return(new ApiResultErrors <bool>("Not found")); } module.ModuleName = request.ModuleName; module.ModuleDescription = request.ModuleDescription; await _context.SaveChangesAsync(); return(new ApiResultSuccess <bool>()); }
public override ModuleResponse Process(ModuleRequest request) { var backendRequest = new ModuleRequest { RequestType = ModuleType.Backend, Data = request.Data }; var backendResponse = Host.Application.Process(backendRequest); return(new ModuleResponse { Data = string.Format("{2}\n{0}: response for {1}, type = {3}", Host.Name, request.Data, backendResponse.Data, request.RequestType) }); }
// this resolver resolves full file paths from the current working directory public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { // if the module wasn't a known, named one, we see if the supplied path is available in the CWD var resolvedPath = moduleRequest.AbsolutePath; if (!File.Exists(resolvedPath)) { result = null; return(false); } var code = File.ReadAllText(resolvedPath); result = new Module(moduleRequest.AbsolutePath, code); return(true); }
public async Task <ApiResult <string> > Create(ModuleRequest request) { var module = new Modules() { ModuleName = request.ModuleName, ModuleDescription = request.ModuleDescription }; _context.Modules.Add(module); var numRowChange = await _context.SaveChangesAsync(); if (numRowChange > 0) { return(new ApiResultSuccess <string>("inserted")); } else { return(new ApiResultErrors <string>("Faild")); } }
public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { if (moduleRequest.AbsolutePath == "/math consts.js") { result = new Module(moduleRequest.AbsolutePath, @" export const Pi = Math.PI, E = Math.E; "); return(true); } else if (moduleRequest.AbsolutePath == "/fakedir/somelib/consts.js") { result = new Module(moduleRequest.AbsolutePath, @" export * from ""/math consts.js""; export const g = 9.8; "); return(true); } result = null; return(false); }
public override ModuleResponse Process(ModuleRequest request) { var databaseRequest = new ModuleRequest { RequestType = ModuleType.Database, Data = request.Data }; var fileStorageRequest = new ModuleRequest { RequestType = ModuleType.FileStorage, Data = request.Data }; var databaseResponse = Host.Application.Process(databaseRequest); var fileStorageResponse = Host.Application.Process(fileStorageRequest); return(new ModuleResponse { Data = string.Format("{2}\n{3}\n{0}: response for {1}, type = {4}", Host.Name, request.Data, databaseResponse.Data, fileStorageResponse.Data, request.RequestType) }); }
// this resolver gets the file path from a known, named module public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { var modulePath = ModuleMapper.GetPath(moduleRequest.CmdArgument); if (modulePath is null) { result = null; return(false); } var resolvedPath = Path.Join(Directory.GetCurrentDirectory(), modulePath); if (!File.Exists(resolvedPath)) { result = null; return(false); } var code = File.ReadAllText(resolvedPath); // by setting module name to full path, relative paths are available if/when the resolved file imports more files result = new Module(resolvedPath, code); return(true); }
public async Task <ActionResult <Module> > Update(Guid id, [CustomizeValidator(RuleSet = "Update")] ModuleRequest module) { var currentUser = HttpContext.GetUser(); var currentModule = await _modules.Get(id, HttpContext.RequestAborted); if (currentModule == null) { return(NotFound()); } if (!await _authorization.HasWriteAccess(currentUser, currentModule, HttpContext.RequestAborted)) { return(Unauthorized()); } var result = await _modules.Update(id, module, HttpContext.RequestAborted); if (result == null) { return(Conflict()); } return(result); }
public async Task Create_Module_Or_409(Mock <IModuleService> service, IAuthorizationService authorization, ModuleRequest request, Module module, User user) { service.Setup(x => x.Create(request, It.IsAny <CancellationToken>())).ReturnsAsync(module); service.Setup(x => x.Create(null, It.IsAny <CancellationToken>())).ReturnsAsync((Module)null); var controller = TestSetup.SetupController <ModulesController>(service.Object, authorization).SetupSession(user); var goodResult = await controller.Create(request); var invalidResult = await controller.Create(null); goodResult.Value.Should().NotBeNull(); invalidResult.Value.Should().BeNull(); invalidResult.Result.Should().BeOfType <ConflictResult>(); }
public async Task Update_Module_Or_404(Mock <IModuleService> service, Mock <IAuthorizationService> authorization, ModuleRequest validRequest, ModuleRequest invalidRequest, Module valid, Module invalid, User user) { authorization.Setup(x => x.HasWriteAccess(user, It.IsAny <It.IsAnyType>(), It.IsAny <CancellationToken>())).ReturnsAsync(true); service.Setup(x => x.Exists(valid.Id, It.IsAny <CancellationToken>())).ReturnsAsync(true); service.Setup(x => x.Exists(invalid.Id, It.IsAny <CancellationToken>())).ReturnsAsync(false); service.Setup(x => x.Get(valid.Id, It.IsAny <CancellationToken>())).ReturnsAsync(valid); service.Setup(x => x.Get(invalid.Id, It.IsAny <CancellationToken>())).ReturnsAsync((Module)null); service.Setup(x => x.Update(valid.Id, validRequest, It.IsAny <CancellationToken>())).ReturnsAsync(valid); service.Setup(x => x.Update(invalid.Id, invalidRequest, It.IsAny <CancellationToken>())).ReturnsAsync((Module)null); var controller = TestSetup.SetupController <ModulesController>(service.Object, authorization.Object).SetupSession(user); var goodResult = await controller.Update(valid.Id, validRequest); var invalidResult = await controller.Update(invalid.Id, invalidRequest); goodResult.Value.Should().BeEquivalentTo(valid); invalidResult.Value.Should().BeNull(); invalidResult.Result.Should().BeOfType <NotFoundResult>(); }
public bool TryGetModule(ModuleRequest moduleRequest, out Module result) { return(_moduleResolverDelegate(moduleRequest, out result)); }
public async Task Update_Subject_State_On_Create(Mock <IAuthorizationService> authorizationService, Mock <IStateService> stateService, ModuleRequest request) { stateService.Setup(x => x.UpdateSubjectState(It.IsAny <Guid>(), It.IsAny <CancellationToken>())); var context = TestSetup.SetupContext(); var httpContext = TestSetup.SetupHttpContext(); var service = new ModuleService(context, httpContext, authorizationService.Object, stateService.Object); await service.Create(request); stateService.VerifyAll(); }
public override bool TryGetModule(ModuleRequest moduleRequest, out Module result) { result = new Module(moduleRequest.AbsolutePath, $"console.log('{moduleRequest.CmdArgument} => {moduleRequest.AbsolutePath}')"); return(true); }
public ModuleResponse(ResponseStatus status, ModuleRequest request, object content) { Status = status; Request = request; Content = content; }
public ModuleResponse(ModuleRequest request, object content) { Content = content; Request = request; Status = ResponseStatus.Ok;; }
/// <summary> /// Запись запросов для люксметра (обожаю, когда вылазят новые требования, когда я уже всю логику взаимодействия продумал) /// </summary> /// <param name="_pos"></param> public async void WriteLuxmetrRequest(int _pos) { List <byte> byteArr = new List <byte>(); List <ushort> confToDevice = new List <ushort>(); Config915Series conf915 = new Config915Series(115200, false, false, false, false); byteArr.Add(100); byteArr.Add((byte)((0x0E << 4) + _pos)); confToDevice.Add(ArrayExtension.ByteArrayToUshortArray(byteArr.ToArray()).First()); confToDevice.Add(200); confToDevice.Add(conf915.Config); confToDevice.Add(40); confToDevice.Add(20); ushort[] req915lower = confToDevice.ToArray(); byteArr.Clear(); confToDevice.Clear(); //запрос для люксметра, пишется в область памяти запросов к подчиненным устройствам byteArr.Add(0x00); //период byteArr.Add(0x01); //адрес+тип модуля byteArr.Add(0x00); //команда byteArr.Add(0x00); //адрес пар-ра в модуле 1 byteArr.Add(0x00); //адрес пар-ра в модуле 2 byteArr.Add(0x06); //адрес пар-ра в базе 1 byteArr.Add(0x40); //ажрес пар-ра в базе 2 byteArr.Add(0x01); //число пар-ров byte[] byteArray = byteArr.ToArray(); ArrayExtension.SwapArrayItems(ref byteArray); confToDevice.AddRange(ArrayExtension.ByteArrayToUshortArray(byteArray)); ushort[] reqLux = confToDevice.ToArray(); ModuleRequest mr = new ModuleRequest(reqLux); StringBuilder sb = new StringBuilder(); sb.AppendLine("Будет произведена запись со следующими параметрами:"); sb.AppendLine("Модуль связи: МС915 с низом на позицию " + _pos.ToString()); sb.AppendLine("Ожидание ответа: 200 (*0,5 мс)"); sb.AppendLine("Скорость: 115200"); sb.AppendLine("Биты данных: 8 бит"); sb.AppendLine("Паритет: нечет"); sb.AppendLine("Паритет: нет"); sb.AppendLine("Число стоп битов: 1 бит"); sb.AppendLine("Таймаут ввода/вывода: 100 (*0,1 мс)"); sb.AppendLine("Включение передачи: 40 (*0,1 мс)"); sb.AppendLine("Выключение передачи: 20 (*0,1 мс)"); sb.AppendLine("Также будет добавлен запрос к подчиненному устройтсву(люксметру):"); sb.AppendLine(mr.UIRequest); sb.AppendLine("Продолжить?"); if (MessageBox.Show(sb.ToString(), "Внимание", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { try { ushort[] LRC = new ushort[] { 1 };//договор был изначально на одно устройство, так что ничего придумывать не буду await RTUConnectionGlobal.SendDataByAddressAsync(1, LOWER_MODULE_REQUEST_TO_SLAVES_COUNT_ADDRESS, LRC); Thread.Sleep(100); await RTUConnectionGlobal.SendDataByAddressAsync(1, LOWER_MODULE_ADDRESS, req915lower); Thread.Sleep(100); await RTUConnectionGlobal.SendDataByAddressAsync(1, SLAVE_MODULE_REQUEST_START_ADDRESS, reqLux); Thread.Sleep(100); ShowMessage("Запись произведена.", "Информация", MessageBoxImage.Information); } catch { ShowMessage("При записи в устройство произошла ошибка.", "Внимение", MessageBoxImage.Warning); } } else { ShowMessage("Запись не была произведена", "Информация", MessageBoxImage.Information); } }