public override Task Install(RestClient rc) { var extensibleRequest = rc.extensibleRequest; rc.extensibleRequest = async(httpRequestMessage, restRequestConfig) => { if (!enabled) { return(await extensibleRequest(httpRequestMessage, restRequestConfig)); } BeforeRequest?.Invoke(this, httpRequestMessage); try { var httpResponseMessage = await extensibleRequest(httpRequestMessage, restRequestConfig); RequestSuccess?.Invoke(this, new HttpMessages { httpResponseMessage = httpResponseMessage, httpRequestMessage = httpRequestMessage }); return(httpResponseMessage); } catch (RestException re) { RequestError?.Invoke(this, re); throw; } }; return(Task.CompletedTask); }
public async Task MarkNameSelectionComplete() { var response = await GameClient.MarkTutorialComplete(new TutorialState[] { TutorialState.NameSelection }, LegalCommsCheck, false); if (!response.Success) { RequestError?.Invoke(this, "Error completing NameSelection tutorial"); } }
public VlcApi(LoginCredentials cred) { _cred = cred; _baseUrl = "http://" + _cred.Hostname + ":" + _cred.Port + "/requests/"; _statusRequestWorker.DoWork += (sender, args) => { _statusUpdater.Stop(); while (_statusRequestQueue.Count >= 1) { if (_statusRequestWorker.CancellationPending) { return; } try { Status status = GetStatusSync(_statusRequestQueue[0]); if (_statusRequestQueue[0] == "") { StatusChanged?.Invoke(this, status); } _statusRequestQueue.RemoveAt(0); } catch (ApiRespondException e) { RequestError?.Invoke(this, e); _statusRequestQueue.Clear(); return; } } _statusUpdater.Start(); }; _statusRequestQueue.CollectionChanged += (sender, args) => { if (!_statusRequestWorker.IsBusy) { _statusRequestWorker.RunWorkerAsync(); } StatusRequestCountChanged?.Invoke(sender, _statusRequestQueue.Count); }; _statusUpdater.Elapsed += (sender, args) => { RequestStatus(); }; _statusUpdater.Start(); }
protected virtual void OnRequestError(HyperErrorEventArgs e) { RequestError?.Invoke(this, e); }
/// <summary> /// Receives messages from server and handles them /// </summary> /// <param name="state"></param> private void ReceiveUpdatesLoop(SocketState state) { if (state.ErrorOccured) { // inform the view Error?.Invoke(state.ErrorMessage, "Error In Event Loop"); Disconnect(); return; } string incomingMessages = state.GetData(); string[] data = Regex.Split(incomingMessages, @"(?<=[\n])"); foreach (string message in data.Where(message => message.Length != 0)) { //Last Step of handshake if message is the id if (int.TryParse(message, out int i)) { IDReceive?.Invoke(i); continue; } // The regex splitter will include the last string even if it doesn't end with a '\n', // So we need to ignore it if this happens. if (message.Last() != '\n' || message[0] != '{') { continue; } Console.WriteLine("Received:" + message); //Parse message as json object var x = JObject.Parse(message); switch (x["messageType"]?.ToString()) { case "cellUpdated": { if (EditCell is null) { continue; } var updated = JsonConvert.DeserializeObject <CellUpdated>(message); EditCell.Invoke(updated); break; } case "cellSelected": { if (SelectCell is null) { continue; } var selected = JsonConvert.DeserializeObject <CellSelected>(message); SelectCell.Invoke(selected); break; } case "serverError": { if (ServerShutdown is null) { continue; } var error = JsonConvert.DeserializeObject <ServerShutdownError>(message); ServerShutdown.Invoke(error); break; } case "requestError": { if (RequestError is null) { continue; } var error = JsonConvert.DeserializeObject <RequestError>(message); RequestError.Invoke(error); break; } case "disconnected": { var d = JsonConvert.DeserializeObject <Disconnected>(message); ClientDisconnected?.Invoke(d); break; } } state.RemoveData(0, message.Length); } Networking.GetData(state); }
internal void OnRequestError(RequestContext context) { RequestError?.Invoke(this, new GraphQLServerEventArgs(context)); }
protected Task <HttpResponse> OnRequestError(HttpRequest request, Exception exception) { return(RequestError?.Invoke(request, exception)); }
private void OnRequestError(RequestErrorEventArgs e) { RequestError?.Invoke(this, e); }