public async Task <ResponseDiv> DivAsync(RequestDiv requestDiv, bool save, string id, CancellationToken ct = default(CancellationToken))
        {
            var resDiv = Math.Abs(requestDiv.Dividend) / Math.Abs(requestDiv.Divisor);
            var remDiv = Math.Abs(requestDiv.Dividend) % Math.Abs(requestDiv.Divisor);

            if (save)
            {
                await _operationRepository.AddAsync(new Model.Entities.Operation()
                {
                    IdHeader      = id,
                    OperationType = "Div",
                    Date          = DateTime.Now.ToString(),
                    Calculation   = $"{Math.Abs(requestDiv.Dividend)} / ({ Math.Abs(requestDiv.Divisor)}) = {resDiv}"
                });

                await _operationRepository.AddAsync(new Model.Entities.Operation()
                {
                    IdHeader      = id,
                    OperationType = "Div",
                    Date          = DateTime.Now.ToString(),
                    Calculation   = $"{Math.Abs(requestDiv.Dividend)} % ({ Math.Abs(requestDiv.Divisor)}) = {remDiv}"
                });
            }
            return(new ResponseDiv()
            {
                Quotient = resDiv,
                Remainder = remDiv
            });
        }
Example #2
0
        internal string Div(int dividendo, int divisor)
        {
            var requestDiv = new RequestDiv {
                Dividend = dividendo,
                Divisor  = divisor
            };
            var result = _client.Post <ResponseDiv>("/div", requestDiv);

            return((string)result.RawData);
        }
        public async Task Task_Div_Numbers()
        {
            RequestDiv requestDiv = new RequestDiv()
            {
                Dividend = 11,
                Divisor  = 2
            };

            string      strPayload = JsonConvert.SerializeObject(requestDiv);
            HttpContent content    = new StringContent(strPayload, Encoding.UTF8, "application/json");
            var         response   = await _client.PostAsync("api/v1/calculator/div", content);

            response.EnsureSuccessStatusCode();
            var responseString = await response.Content.ReadAsStringAsync();

            Assert.Equal("{\"quotient\":5,\"remainder\":1}", responseString);
        }
Example #4
0
        public async Task <IActionResult> Div([FromBody] RequestDiv requestDiv, 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.DivAsync(requestDiv, 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));
            }
        }