public Response <Div> Div([FromBody] DivDto divdto) { return(Extension.Try <Div>(() => { string TrackingId = null; Div Restul = this.serviceCalculators.Div(divdto.Dividend, divdto.Divisor); //If a 'TrackingId’ was provided, the server should store this request’s details inside it’s //journal, indexed by the given Id. TrackingId = ValidateTrackingId(); if (!string.IsNullOrEmpty(TrackingId)) { Operations operation = new Operations() { Id = TrackingId, Operation = "Div", Date = DateTime.UtcNow.ToString("s") + "Z", Calculation = divdto.Dividend + "/" + divdto.Divisor + "=" + Restul.Quotient + "." + Restul.Remainder }; this.serviceCalculators.SaveJournal(operation); } return Restul; }, _logger)); }
public async Task <DivResponseDto> Division(DivDto div, string trackingId) { int remainder; var result = Math.DivRem(div.Dividend, div.Divisor, out remainder); var response = new DivResponseDto { Quotient = result, Remainder = remainder }; await _journal.AddJournalOperation(EnumOperationsType.Div, div, response, trackingId); return(response); }
static void Main(string[] args) { string trackingId = "1143326479"; List <int> Addends = new List <int>(); Addends.Add(3); Addends.Add(3); Addends.Add(2); SubDto subdto = new SubDto() { Minuend = 5, Subtrahend = 3 }; List <int> Factors = new List <int>(); Factors.Add(8); Factors.Add(3); Factors.Add(2); MultDto multdto = new MultDto() { Factors = Factors }; DivDto divdto = new DivDto() { Dividend = 4, Divisor = 2 }; SqrtDto sqrtdto = new SqrtDto() { Number = 6 }; QueryDto queryDto = new QueryDto() { Id = trackingId }; Add(Addends, trackingId).Wait(); Sub(subdto, trackingId).Wait(); Mult(multdto, trackingId).Wait(); Div(divdto, trackingId).Wait(); Sqrt(sqrtdto, trackingId).Wait(); Query(queryDto).Wait(); Console.Read(); }
static async Task Div(DivDto divdto, string trackingId) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); if (!string.IsNullOrEmpty(trackingId)) { client.DefaultRequestHeaders.Add("X-Evi-Tracking-Id", trackingId); } HttpResponseMessage responsePost = await client.PostAsJsonAsync("api/calculator/div", divdto); if (responsePost.IsSuccessStatusCode) { // Get the URI of the created resource. // Console.WriteLine(responsePost.Content.ReadAsStringAsync().Result); Response <Div> div = JsonConvert.DeserializeObject <Response <Div> >(responsePost.Content.ReadAsStringAsync().Result); Console.WriteLine(string.Format("Quotient: {0}", div.Data.Quotient)); Console.WriteLine(string.Format("Remainder: {0}", div.Data.Remainder)); } } }
public async Task <DivResponseDto> Div([FromHeader(Name = "X-Evi-TrackingId")] string trackingId, [FromBody] DivDto div) { _loggerManager.LogInfo("Call 'Div' post method on CalculatorController"); if (div == null) { _loggerManager.LogError("BadRequestException on calls 'Div' post method on CalculatorController"); throw new BadRequestException("Unable to process request: Div"); } try { var result = await _calculator.Division(div, trackingId); return(result); } catch (System.Exception ex) { _loggerManager.LogError("InternalErrorException on calls 'Div' post method on CalculatorController", ex); throw new InternalErrorException("An unexpected error condition was triggered which made impossible to fulfill the request. Please try again later."); } }