public override IOperationAction <T, U, V> CreateInvalidResponse(IOperationAction <T, U, V> action) { // get model errors - ModelDTO.Errors var errors = new List <IError>(); // Add errors IInvalidResponse <IError> invalidResponse = new InvalidResponse <IError>(errors); // create new action with new invalid response return(AddInvalidResponseToAction(action, invalidResponse));; }
public byte[] HandleRequest(byte[] requestBytes) { object request = DiffPrivRequest.ParseRequest(requestBytes); if (request is Common.GetQuoteRequest) { GetQuoteResponse getQuoteResponse = new GetQuoteResponse(0, key_pair); return(getQuoteResponse.Encode()); } if (request is InitializeDBRequest) { InitializeDBRequest r = (InitializeDBRequest)request; if (rows_received != 0) { Console.Error.WriteLine("Received request to initialize DB after receiving rows"); return(DiffPrivSrvResponse.EncodeInitializeDBResponse(18)); } if (r.budget_num < r.budget_den) { Console.Error.WriteLine("Received request to initialize DB with budget < 1"); return(DiffPrivSrvResponse.EncodeInitializeDBResponse(16)); } budget = new BigRational(r.budget_num, r.budget_den); rows.Clear(); return(DiffPrivSrvResponse.EncodeInitializeDBResponse(0)); } if (request is AddRowRequest) { byte[] ciphertext = ((AddRowRequest)request).ciphertext; byte[] plaintext; try { plaintext = key_pair.Decrypt(ciphertext, false); } catch { Console.Error.WriteLine("Received undecryptable add-row request"); return(DiffPrivSrvResponse.EncodeAddRowResponse()); } HandleAddRowRequest(plaintext); return(DiffPrivSrvResponse.EncodeAddRowResponse()); } if (request is QueryRequest) { QueryRequest r = (QueryRequest)request; return(HandleQueryRequest(r)); } return(InvalidResponse.Encode()); }
public string GetResponse(string receivedMessage, Hub hub) { InitstrategyList(hub, receivedMessage); if (ResponseCollection.ContainsKey(receivedMessage)) { var call = ResponseCollection[receivedMessage]; return(call.GetReponse()); } else { var exceptionResponse = new InvalidResponse(receivedMessage, hub); return(exceptionResponse.GetReponse()); } }
private void Boxes_SelectedIndexChanged(object sender, EventArgs e) { // make sure something is selected if (_availresponses.SelectedIndex == -1) { return; } // get selected response string resname = (string)_availresponses.SelectedItem; // load it into working response Response tmp = new InvalidResponse(); try { tmp = ResponseLoader.FromDLL(resname, Properties.Settings.Default.boxdll); } catch (Exception ex) { // log it bigexceptiondump(ex); // unselect response _availresponses.SelectedIndex = -1; return; } // add it int idx = addresponse(tmp); // make sure it worked if (idx == -1) { return; } // save the dll that contains the class for use with skins string dll = string.Empty; // if we don't have this class, add it if (!_class2dll.TryGetValue(resname, out dll)) { _class2dll.Add(resname, Properties.Settings.Default.boxdll); } else // otherwise replace current dll as providing this class { _class2dll[resname] = Properties.Settings.Default.boxdll; } // unselect response _availresponses.SelectedIndex = -1; }
public async Task <Response <List <Item> > > GetAllCountries() { var ItemList = new List <Item>(); var countries = dbContexts.Countries.ToList(); var invalidResponse = new InvalidResponse(); foreach (var country in countries) { var uri = $"http://api.worldbank.org/v2/country/{country.IsoCode}?format=json"; using (HttpResponseMessage response = await ApiHelper.client.GetAsync(uri)) { if (response.IsSuccessStatusCode) { try { var CountriesList = await response.Content.ReadAsAsync <List <object> >(); if (CountriesList.Count == 1) { invalidResponse = JsonConvert.DeserializeObject <InvalidResponse>(CountriesList[0].ToString().Substring(0)); } var PagesDetails = JsonConvert.DeserializeObject <PagesDetails>(CountriesList[0].ToString().Substring(0)); List <Item> Items = JsonConvert.DeserializeObject <List <Item> >(CountriesList[1].ToString().Substring(0)); Items.FirstOrDefault().PagesDetails = PagesDetails; ItemList.Add(Items.FirstOrDefault()); } catch (Exception) { return(new Response <List <Item> >() { Message = $"{country.IsoCode.ToUpper()} {invalidResponse.Message.Select(c=>c.Value.ToString()).FirstOrDefault()}", Successful = false }); } } } } return(new Response <List <Item> >() { Message = "Sucessfully retieved countries", Model = ItemList, Successful = true }); }
public byte[] HandleRequest(byte[] requestBytes) { object request = NotaryRequest.ParseRequest(requestBytes); if (request is Common.GetQuoteRequest) { GetQuoteResponse getQuoteResponse = new GetQuoteResponse(0, key_pair); return(getQuoteResponse.Encode()); } if (request is AdvanceCounterRequest) { AdvanceCounterRequest r = (AdvanceCounterRequest)request; counter = counter + 1; byte[] header = new byte[1]; header[0] = 34; byte[] new_counter_value_encoding = CommonRoutines.EncodeMPBigInteger(counter); byte[] notary_statement = CommonRoutines.CombineByteArrays(header, new_counter_value_encoding, r.message); byte[] notary_attestation = key_pair.SignData(notary_statement, CryptoConfig.MapNameToOID("SHA256")); return(NotarySrvResponse.EncodeAdvanceCounterResponse(0, notary_statement, notary_attestation)); } return(InvalidResponse.Encode()); }
void remresp(object sender, EventArgs e) { // mark UI entry for removal List <int> remdidx = new List <int>(); // process each selected response foreach (int dispidx in _resnames.SelectedIndices) { // make sure we're still trading it if ((dispidx < 0) || (dispidx > _disp2real.Count)) { continue; } // get actual index int selbox = _disp2real[dispidx]; // get name string name = _reslist[selbox].FullName; // remove the response _reslist[selbox] = new InvalidResponse(); // clear it's symbols _rsym[selbox] = string.Empty; // mark it's UI element for removal remdidx.Add(dispidx); // notify user debug("removed #" + dispidx + ": " + name + " id:" + selbox); } // remove response from screen for (int i = remdidx.Count - 1; i >= 0; i--) { // remove it _resnames.Items.RemoveAt(remdidx[i]); // remove name map _disp2real.RemoveAt(remdidx[i]); } // update everything IndexBaskets(); }
public byte[] HandleRequest(byte[] requestBytes) { object request = TrIncRequest.ParseRequest(requestBytes); if (request is Common.GetQuoteRequest) { GetQuoteResponse getQuoteResponse = new GetQuoteResponse(0, key_pair); return(getQuoteResponse.Encode()); } if (request is CreateCounterRequest) { CreateCounterRequest r = (CreateCounterRequest)request; RSACryptoServiceProvider public_key = CommonRoutines.DecodePublicKey(r.public_key); if (public_key == null) { return(TrIncSrvResponse.EncodeCreateCounterResponse(3, 0)); } TrIncCounter counter = new TrIncCounter(public_key); counters.Add(counter); UInt32 counter_index = (UInt32)(counters.Count - 1); return(TrIncSrvResponse.EncodeCreateCounterResponse(0, counter_index)); } if (request is AdvanceCounterRequest) { AdvanceCounterRequest r = (AdvanceCounterRequest)request; if (r.counter_index < 0 || r.counter_index >= counters.Count) { Console.Error.WriteLine("Received request for invalid counter index {0}", r.counter_index); return(TrIncSrvResponse.EncodeAdvanceCounterResponse(1, new byte[0], new byte[0])); } TrIncCounter counter = counters[(int)r.counter_index]; byte[] req = CommonRoutines.CombineByteArrays(r.new_counter_value, r.message); if (!counter.PublicKey.VerifyData(req, CryptoConfig.MapNameToOID("SHA256"), r.request_attestation)) { Console.Error.WriteLine("Received invalid request attestation"); return(TrIncSrvResponse.EncodeAdvanceCounterResponse(5, new byte[0], new byte[0])); } int offset = 0; BigInteger new_counter_value = CommonRoutines.DecodeMPBigInteger(r.new_counter_value, ref offset); if (new_counter_value < 0 || offset != r.new_counter_value.Length) { Console.Error.WriteLine("Received invalid new counter value encoding"); return(TrIncSrvResponse.EncodeAdvanceCounterResponse(6, new byte[0], new byte[0])); } if (new_counter_value < counter.Value) { Console.Error.WriteLine("New counter value requested {0} is smaller than current counter value {1}", new_counter_value, counter.Value); return(TrIncSrvResponse.EncodeAdvanceCounterResponse(7, new byte[0], new byte[0])); } BigInteger old_counter_value = counter.Value; counter.Value = new_counter_value; byte[] header = new byte[1]; header[0] = 34; byte[] counter_index_encoding = CommonRoutines.EncodeBEWord(r.counter_index); byte[] old_counter_value_encoding = CommonRoutines.EncodeMPBigInteger(old_counter_value); byte[] new_counter_value_encoding = CommonRoutines.EncodeMPBigInteger(new_counter_value); byte[] trinc_statement = CommonRoutines.CombineByteArrays(header, counter_index_encoding, old_counter_value_encoding, new_counter_value_encoding, r.message); byte[] trinc_attestation = key_pair.SignData(trinc_statement, CryptoConfig.MapNameToOID("SHA256")); return(TrIncSrvResponse.EncodeAdvanceCounterResponse(0, trinc_statement, trinc_attestation)); } return(InvalidResponse.Encode()); }
public void ProcessMessage(Stream stream) { var headerPart1 = stream.ReadByte(); if (headerPart1 != 0xFF) { _logger.WriteLine($"Expected 0xFF header byte 1, recieved '{headerPart1}'"); return; } var headerPart2 = stream.ReadByte(); if (headerPart1 != 0xFA) { _logger.WriteLine($"Expected 0xFA header byte 2, recieved '{headerPart1}'"); return; } var messageId = stream.ReadByte(); switch (messageId) { case MessageIds.MESSAGE_INVALID: { var data = stream.ReadByte(); _logger.WriteLine($"MESSAGE_INVALID: data={data}"); InvalidResponse?.Invoke(this, EventArgs.Empty); } break; case MessageIds.MESSAGE_ACKNOWLEDGED: { var data = stream.ReadByte(); _logger.WriteLine($"MESSAGE_ACKNOWLEDGED: data={data}"); AcknowledgedResponse?.Invoke(this, EventArgs.Empty); } break; case MessageIds.MESSAGE_BUTTON_DOWN: { var column = stream.ReadByte(); var row = stream.ReadByte(); _logger.WriteLine($"MESSAGE_BUTTON_DOWN: column={column},row={row}"); ButtonDown?.Invoke(this, new ButtonEventArgs(row, column)); } break; case MessageIds.MESSAGE_BUTTON_UP: { var column = stream.ReadByte(); var row = stream.ReadByte(); _logger.WriteLine($"MESSAGE_BUTTON_UP: column={column},row={row}"); ButtonUp?.Invoke(this, new ButtonEventArgs(row, column)); } break; case MessageIds.MESSAGE_TOGGLE_STATE: { var index = stream.ReadByte(); var state = stream.ReadByte(); _logger.WriteLine($"MESSAGE_TOGGLE_STATE: index={index},state={state}"); ToggleStateChanged?.Invoke(this, new ToggleStateChangeEventArgs(index, state == 1)); } break; case MessageIds.MESSAGE_LED_BRIGHTNESS: { var brightness = stream.ReadByte(); _logger.WriteLine($"MESSAGE_LED_BRIGHTNESS: brightness={brightness}"); LEDBrightness?.Invoke(this, new LEDBrightnessEventArgs(brightness)); } break; case MessageIds.MESSAGE_VERSION: { var version = stream.ReadByte(); _logger.WriteLine($"MESSAGE_VERSION: version={version}"); VersionResponse?.Invoke(this, new VersionEventArgs(version)); } break; case MessageIds.MESSAGE_HEARTBEAT: { var value = stream.ReadByte(); _logger.WriteLine($"MESSAGE_HEARTBEAT: value={value}"); HeartbeatResponse?.Invoke(this, new HeartbeatEventArgs(value)); } break; default: { _logger.WriteLine($"Unexpected message id '{messageId}'"); throw new ArgumentOutOfRangeException(nameof(messageId), "Unexpected message id"); } } }