public async Task <ActionResult <request> > PostrequestAdd([FromBody] RequestAdd ra, [FromHeader] string api_token) { AuthController newAuth = new AuthController(_context); var ActionResult = await newAuth.getId(api_token); var OkObjectResult = ActionResult as OkObjectResult; int userId = (int)OkObjectResult.Value; if (_context.client.Any(x => x.id_client == userId)) { request new_request = new request { income = ra.income, place_job = ra.place_job, client_id = userId, status_request_id = 3, type_acc_id = ra.type_account_id }; _context.request.Add(new_request); await _context.SaveChangesAsync(); return(CreatedAtAction("Getrequest", new { id = new_request.id_request }, new_request)); } else { return(NotFound()); } }
internal string Sum(List <int> listNumbers) { var requestAdd = new RequestAdd { Addends = listNumbers.ToArray() }; var result = _client.Post <ResponseAdd>("/add", requestAdd); return((string)result.RawData); }
public ResponseAdd RequestAdd(int timeOutMilliSec, params int[] param) { RequestAdd requestAdd = new RequestAdd { UUID = Guid.NewGuid().ToString() }; foreach (int p in param) { requestAdd.Param.Add(p); } // set a timeout on this call to server! // if we do not hv this timeout, calling this RequestAdd method will forever waiting if server never response! TaskCompletionSource <ResponseAdd> tcs = new TaskCompletionSource <ResponseAdd>(); //CancellationTokenSource ct = new CancellationTokenSource(timeOutMilliSec); // package TaskParallelLibrary CancellationTokenSource only hv empty constructor!! CancellationTokenSource ct = new CancellationTokenSource(); ResponseAddHandler rah = ((rpAdd) => { // only want the response UUID which is same as what we send if (rpAdd.UUID == requestAdd.UUID) { tcs.TrySetResult(rpAdd); } }); // when timeout occur, set Exception to TaskCompletionSource // also remove the callback from eventhandler ct.Token.Register(() => { OnResponseAdd -= rah; tcs.TrySetException(new TimeoutException("TimeOut " + timeOutMilliSec)); }, useSynchronizationContext: false); // use Rackspace.Threading.CancellationTokenSourceExtensions CancelAfter ct.CancelAfter(TimeSpan.FromMilliseconds(timeOutMilliSec)); OnResponseAdd += rah; //hook to the eventHandler //string sendCmd = "RequestAdd " + Newtonsoft.Json.JsonConvert.SerializeObject(requestAdd) + "\r\n"; string sendCmd = Cmd.TcsCommand.RequestAdd.ToString() + " " + Newtonsoft.Json.JsonConvert.SerializeObject(requestAdd) + "\r\n"; base.Send(Encoding.UTF8.GetBytes(sendCmd)); tcs.Task.Wait(); ResponseAdd responseAdd = tcs.Task.Result; OnResponseAdd -= rah; //after received our response, unhook it. we only expecting 1 response. return(responseAdd); }
public async Task Task_Sum_Numbers() { int[] numbers = { 1, 4, 6 }; RequestAdd requestAdd = new RequestAdd() { Addends = numbers }; string strPayload = JsonConvert.SerializeObject(requestAdd); HttpContent content = new StringContent(strPayload, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("api/v1/calculator/add", content); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); Assert.Equal("{\"sum\":11}", responseString); }
private void btn_adddRequest_Click(object sender, RoutedEventArgs e) { try { RequestAdd requestAdd = new RequestAdd(); requestAdd.Owner = mainWindow; mainWindow.Opacity = 0.5; requestAdd.WindowStartupLocation = WindowStartupLocation.CenterOwner; requestAdd.ShowDialog(); } catch (Exception ex) { DB.AddLog(new Log { error_page = "uctodolist", error_text = ex.Message, log_user = User.id }); } }
/// <summary> /// Send command RequestAdd to server /// Receive a Data.ResponseAdd object /// - async method /// - will throw Exception "TimeOut" /// </summary> /// <param name="param"></param> /// <returns></returns> public async Task <ResponseAdd> RequestAddAsync(params int[] param) { RequestAdd requestAdd = new RequestAdd { UUID = Guid.NewGuid().ToString() }; foreach (int p in param) { requestAdd.Param.Add(p); } // set a timeout on this call to server! TaskCompletionSource <ResponseAdd> tcs = new TaskCompletionSource <ResponseAdd>(); const int timeOuts = 10000; //miliseconds CancellationTokenSource ct = new CancellationTokenSource(timeOuts); ResponseAddHandler rah = ((rpAdd) => { // only want the response UUID which is same as what we send if (rpAdd.UUID == requestAdd.UUID) { tcs.TrySetResult(rpAdd); } }); // when timeout occur, set Exception to TaskCompletionSource // also remove the callback from eventhandler ct.Token.Register(() => { OnResponseAdd -= rah; tcs.TrySetException(new TimeoutException("TimeOut " + timeOuts)); }, useSynchronizationContext: false); OnResponseAdd += rah; //hook to the eventHandler //string sendCmd = "RequestAdd " + Newtonsoft.Json.JsonConvert.SerializeObject(requestAdd) + "\r\n"; string sendCmd = Cmd.TcsCommand.RequestAdd.ToString() + " " + Newtonsoft.Json.JsonConvert.SerializeObject(requestAdd) + "\r\n"; base.Send(Encoding.UTF8.GetBytes(sendCmd)); ResponseAdd responseAdd = await tcs.Task; OnResponseAdd -= rah; //after received our response, unhook it. we only expecting 1 response. return(responseAdd); }
public async Task <IActionResult> Add([FromBody] RequestAdd requestAdd, CancellationToken ct = default(CancellationToken)) { try { bool save = Request.Headers.ContainsKey("X-Evl-Tracking-Id"); var id = save ? Request.Headers["X-Evl-Tracking-Id"].ToString() : null; var response = await _calculatorSupervisor.AddAsync(requestAdd, save, id, ct); return(Ok(response)); } catch (Exception ex) { var response = new ResponseCanonic() { ErrorCode = Enum.GetName(typeof(HttpStatusCode), HttpStatusCode.InternalServerError), ErrorStatus = (int)HttpStatusCode.InternalServerError, ErrorMessage = ex.Message }; return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }
public async Task <ResponseAdd> AddAsync(RequestAdd requestAdd, bool save, string id, CancellationToken ct = default(CancellationToken)) { var resAdd = requestAdd.Addends.ToList().Sum(); if (save) { await _operationRepository.AddAsync(new Model.Entities.Operation() { IdHeader = id, OperationType = "Sum", Date = DateTime.Now.ToString(), Calculation = $"{string.Join(" + ", requestAdd.Addends)} = {resAdd}" }); } return(new ResponseAdd() { Sum = resAdd }); }
public void RaiseRequestAdd(IWidgetPlugin obj) { RequestAdd?.Invoke(obj); }
public void RaiseRequestAdd(IWidgetPlugin plugin) { RequestAdd?.Invoke(plugin); }