public HandleRequest <ContextType> AddHandler(HandleRequest <ContextType> handler) { if (_localHandler == null) { _localHandler = new HandleRequest <ContextType>(this.LocalHandleRequest); } _handlers += handler; return(_localHandler); }
private static void RegisterRequestHandler( SegmentNode <TRequest, TResponse> segmentTree, Endpoint endpoint, HandleRequest <TRequest, TResponse> handleRequest, IEnumerable <ISegmentVariant> segments) { var targetNode = FindTargetNode(segmentTree, segments); RegisterRequestHandlerOnNode(endpoint, handleRequest, targetNode); }
private void ProcessData(TcpClient client) { try { var strm = client.GetStream(); var buffer = new byte[client.ReceiveBufferSize]; var readCnt = strm.Read(buffer, 0, buffer.Length); var payload = Encoding.UTF8.GetString(buffer, 0, readCnt); var request = JsonConvert.DeserializeObject <Request>(payload); var handleRequest = new HandleRequest(request, _database); var response = handleRequest.InputValidation(); var res = new byte[0]; if (response.Status.ToLower().Contains("ok")) { // do the method switch (request.Method) { case "read": handleRequest.Read(); break; case "create": handleRequest.Create(); break; case "update": handleRequest.Update(); break; case "delete": handleRequest.Delete(); break; case "echo": handleRequest.Echo(); break; default: break; } } res = Encoding.UTF8.GetBytes(response.ToJson()); strm.Write(res, 0, res.Length); } catch (Exception e) { Console.WriteLine("something went wrong" + e.Message + e.StackTrace); } }
public void Register( SegmentNode <TRequest, TResponse> segmentTree, Endpoint endpoint, HandleRequest <TRequest, TResponse> handleRequest, ValidateParameterKeys validateParameterKeys) { var segments = ParseRoute(endpoint).ToList(); RunParameterKeyValidation(validateParameterKeys, segments); RegisterRequestHandler(segmentTree, endpoint, handleRequest, segments); }
public ActionResult ListGrid(q_ProgData sh) { HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.encodeURIComponent = true; //HRq.Remove("page"); ac = new a_PowerUser(); ac.Connection = getSQLConnection(); CreatGridInitScript(); HandleCollectDataToOptions(); return(View("EditData")); }
public override ActionResult ListGrid(q_PageContext sh) { operationMode = OperationMode.EnterList; HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.encodeURIComponent = true; HRq.Remove("page"); ViewBag.Page = QueryGridPage(); ViewBag.Caption = GetSystemInfo().prog_name; ViewBag.AppendQuertString = HRq.ToQueryString(); HRq = null; return(View("ListData", sh)); }
public void StartReceivingClientRequest(HandleRequest handleRequestCallback) { var continuedRequest = new Queue <HttpRequest>(); while (true) { try { var @event = ExpectClientRequest()[0]; var request = @event.ParsedHttpRequest; if (request != null && request.GetHeaderFieldValue(HttpRequestHeader.Expect) != null) { if (request.GetHeaderFieldValue(HttpRequestHeader.Expect).Contains("100")) { continuedRequest.Enqueue(request); SendResponse(@event.Sender, new HttpResponse(System.Net.HttpStatusCode.Continue)); continue; } } if (request == null) { if (@event.EventType == EventType.IncomingRequest && continuedRequest.Count > 0) { request = continuedRequest.Dequeue(); request.Body = @event.Text; } else { throw new IOException("Non-HTTP request received."); } } Debug.WriteLine("\n\rReceived request at " + DateTime.Now); Debug.WriteLine(request.ToString().Trim()); var response = handleRequestCallback(request); SendResponse(@event.Sender, response); Debug.WriteLine("\n\rSent response at " + DateTime.Now); Debug.WriteLine(response.ToString().Trim()); } catch (TimeoutException) { break; } } }
public ActionResult ListGrid(q_ProgData sh) { HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.encodeURIComponent = true; ac = new a_PowerUnit() { Connection = getSQLConnection(), logPlamInfo = plamInfo }; ViewBag.Caption = GetSystemInfo().prog_name; CreatGridInitScript(); HandleCollectDataToOptions(); return(View("EditData")); }
public bool TryGetHandler(RequestHandlerContext context, out HandleRequest handler) { if (_typeOfRoute == RouteType.None) { handler = _request; return(true); } var database = CreateDatabase(context); if (database.IsCompleted) { handler = _request; return(true); } handler = null; return(false); }
private void HandlePackage(Package package) { switch (package.PackageType) { case PackageType.ConnectionRequest: var response = (bool)HandleRequest?.Invoke(); SendConnectionResponse(response); if (response) { broadcastThread = new Thread(BroadcastScreen); broadcastThread.Start(); } break; case PackageType.ConnectionResponse: var isAllowed = (package as ConnectionResponsePackage).IsAllowed; if (!isAllowed) { HandleError?.Invoke("Пользователь отказал вам в соединении."); Disconnect(); } break; case PackageType.ImagePackage: var image = (package as ImagePackage).Screenshot; UpdateDisplay?.Invoke(image); break; case PackageType.MouseInfoPackage: var parameters = (package as MouseInfoPackage).MouseParameters; MouseOperationsUtility.DoMouseEvent(parameters); break; } }
public override ActionResult EditMasterNewData() { operationMode = OperationMode.EditInsert; md = new m_Unit(); //設定預設值 md.EditType = EditModeType.Insert; ac = new a_Unit(); ac.Connection = getSQLConnection(); HandleCollectDataToOptions(); ViewBag.Caption = GetSystemInfo().prog_name; HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.Remove("Id"); //不需記ID ViewBag.QueryString = HRq.ToQueryString(); HRq = null; return(View("EditData", md)); }
public override ActionResult EditMasterNewData() { operationMode = OperationMode.EditInsert; HandleCollectDataToOptions(); ViewBag.Caption = GetSystemInfo().prog_name; HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.Remove("Id"); //不需記ID ViewBag.QueryString = HRq.ToQueryString(); HRq = null; ac = new a_ProductKind() { Connection = getSQLConnection(), logPlamInfo = plamInfo }; return(View("EditData", new m_ProductKind() { ID = ac.GetIDX(), EditType = EditModeType.Insert, IsOpen = true })); }
public override Task <HandleReply> Handle(HandleRequest request, ServerCallContext context) { var brokerTimestamp = DateTime.UtcNow.Ticks; var task = new CrawlTask(); return(Task.Run(async() => { if (!Guid.TryParse(request.Uuid, out var uuid) || !this._repository.FindById(uuid, out _)) { return new HandleReply { Timestamp = request.Timestamp, BrokerTimestamp = brokerTimestamp, Task = task, Status = false }; } foreach (var u in request.Task.Urls) { this._urls.Add(u, context.CancellationToken); } var url = default(string); // 這裡會一直等到可以dequeue(trytake = dequeue) while (!context.CancellationToken.IsCancellationRequested && !this._urls.TryTake(out url)) { await Task.Delay(1000, context.CancellationToken); } task.Urls.Add(url); return new HandleReply { Timestamp = request.Timestamp, BrokerTimestamp = brokerTimestamp, Task = task, Status = true }; }, context.CancellationToken)); }
private async Task TryFillFile(IFormFileCollection files, HandleRequest model) { foreach (var file in files) { var pName = file.Name; var prop = model.GetType().GetProperty(pName); if (prop == null) { continue; } var path = Path.GetTempPath(); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var ext = Path.GetExtension(file.FileName); var fileName = $"{Guid.NewGuid():N}{ext}"; var filePath = Path.Combine(path, fileName); using (var stream = new FileStream(filePath, FileMode.CreateNew)) { await file.CopyToAsync(stream); } try { var url = _objectStorageService.UploadFile($"{pName}/{fileName}", filePath); prop.SetValue(model, url); } catch (Exception ex) { _logger.LogError("Save file to oss raised an error:{0}", ex.ToString()); } } }
public override ActionResult EditMasterDataByID(int id) { operationMode = OperationMode.EditModify; ac = new a_ProgData(); ac.Connection = getSQLConnection(); RunOneDataEnd <m_ProgData> HResult = ac.GetDataMaster(id, LoginUserId); md = HResult.SearchData; md.EditType = EditModeType.Modify; HandleResultCheck(HResult); HandleCollectDataToOptions(); ViewBag.Caption = GetSystemInfo().prog_name; HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.Remove("id"); //不需記ID ViewBag.QueryString = HRq.ToQueryString(); HRq = null; return(View("EditData", md)); }
public IRouteRegistry <TRequest, TResponse> Register(Endpoint endpoint, HandleRequest <TRequest, TResponse> handleRequest) { _routeRegistrar.Register(_segmentTree, endpoint, handleRequest); return(this); }
public async Task Run(Uri endpoint, CancellationToken cancellationToken = default) { var httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(15) }; var options = new GrpcChannelOptions { HttpClient = httpClient, LoggerFactory = this._loggerFactory }; await Task.Run(async() => { var channel = GrpcChannel.ForAddress(endpoint, options); var client = new ServiceClient(channel); // 連線請求 var connectRequest = new ConnectRequest { Timestamp = DateTime.UtcNow.Ticks, Worker = this.Worker }; var connectReply = await client.ConnectAsync(connectRequest, cancellationToken: cancellationToken); if (!connectReply.IsConnected) { await Task.FromException(new RpcException(Status.DefaultCancelled)); } else { Console.Title = connectReply.Address; var target = connectReply.Task.Urls[0]; while (!cancellationToken.IsCancellationRequested) { var task = s_none; var get = default(HttpResponseMessage); try { // 替換成 Selenium/PhantomJs // ----------------- begin todo ------------------- get = await httpClient.GetAsync(target); var doc = new HtmlDocument(); var content = await get.Content.ReadAsStreamAsync(); doc.Load(content); if (doc.DocumentNode.SelectNodes("//a") is HtmlNodeCollection nodes) { var hrefs = (from node in nodes let p = node.GetAttributeValue("href", null) where p != null && p.StartsWith("http") select p).ToArray(); if (hrefs.Length > 0) { task = new CrawlTask(); task.Urls.AddRange(hrefs); } } // ------------------ end todo -------------------- Console.WriteLine("crawled: " + target); } catch (Exception e) { Console.WriteLine("unhandled: " + target); } var now = DateTime.UtcNow; var handleRequest = new HandleRequest { Task = task, Timestamp = now.Ticks, Uuid = connectReply.Uuid }; var handleReply = await client.HandleAsync(handleRequest); target = handleReply.Task.Urls[0]; } } }, cancellationToken); }
public void Register(SegmentNode <TRequest, TResponse> segmentTree, Endpoint endpoint, HandleRequest <TRequest, TResponse> handleRequest) { var segments = ParseRoute(endpoint); RegisterRequestHandler(segmentTree, endpoint, handleRequest, segments); }
public ActionResult ListGrid(q_ProgData sh) { HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.encodeURIComponent = true; ac = new a_PowerUnit() { Connection = getSQLConnection(), logPlamInfo = plamInfo }; ViewBag.Caption = GetSystemInfo().prog_name; CreatGridInitScript(); HandleCollectDataToOptions(); return View("EditData"); }
public ActionResult ListGrid(q_ProgData sh) { HandleRequest HRq = new HandleRequest(); //記錄QueryString HRq.encodeURIComponent = true; //HRq.Remove("page"); ac = new a_PowerUser(); ac.Connection = getSQLConnection(); CreatGridInitScript(); HandleCollectDataToOptions(); return View("EditData"); }