Esempio n. 1
0
 public override Task <DivisionResponse> Divide(DivisionRequest request, ServerCallContext context)
 {
     return(Task.FromResult(new DivisionResponse
     {
         Result = request.Dividend / request.Divisor
     }));
 }
Esempio n. 2
0
 public override Task <DivisionResponse> Divide(DivisionRequest request, ServerCallContext context)
 {//purposely not checking division by 0
     return(Task.FromResult(new DivisionResponse
     {
         Result = request.Op1 / request.Op2
     }));
 }
        public DivisionResult Div([FromBody] DivisionRequest divtRequest)
        {
            var    headers     = this.Request.Headers.ToList();
            string trackingDiv = headers[headers.Count - 1].Value.First().ToString();

            return(CalculatorBusiness.Div(divtRequest, trackingDiv));
        }
Esempio n. 4
0
            public void TestDivision(int dividend, int divisor)
            {
                var request  = new DivisionRequest(dividend, divisor);
                var response = PluginContext.Operations.CallExternalOperation <DivisionRequest, DivisionResponse>("CalculatorServer", "Divide", request, CustomBinder.Instance);

                PluginContext.Log.Info($"{dividend} = {divisor} * {response.Quotient} + {response.Remainder}");
            }
Esempio n. 5
0
        public override Task <DivisionResponse> Divide(DivisionRequest request, ServerCallContext context)
        {
            var result = new DivisionResponse();

            result.Cociente = request.Dividendo / request.Divisor;
            result.Residuo  = request.Dividendo % request.Divisor;
            return(Task.FromResult(result));
        }
        /// <summary>
        /// Metodo que realiza la División
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        public async Task <DivisionResponse> Dividir(DivisionRequest r)
        {
            var result = await Task.Run(() => new KeyValuePair <double, double>(r.Dividendo / r.Divisor, r.Dividendo % r.Divisor));

            await GuardarDiario(r, $"{result.Key},{result.Value}");

            return(new DivisionResponse {
                Cociente = result.Key, Resto = result.Value
            });
        }
        public async Task <ActionResult <DivisionResponse> > DividirAsync([FromBody] DivisionRequest r)
        {
            r.IdSeguimiento = Request.Headers[IdHeader] == StringValues.Empty ? string.Empty : Request.Headers[IdHeader].ToString();

            var response = await _calculatorService.Dividir(r);

            Log.Information(r.ToRegistroDiario($"{response.Cociente},{response.Resto}").ToString());

            return(Ok(response));
        }
Esempio n. 8
0
        public override Task <OperationResponse> Calculate(DivisionRequest request, ServerCallContext context)
        {
            var result = request.FirstOperand / request.SecondOperand;

            System.Console.WriteLine("Division request -> {0} / {1} = {2}", request.FirstOperand, request.SecondOperand, request.FirstOperand / request.SecondOperand);

            return(Task.FromResult(new OperationResponse()
            {
                Result = result
            }));
        }
Esempio n. 9
0
 /// <summary>
 /// processes a division of two integer arguments
 /// using a specialized request argument
 /// </summary>
 /// <param name="divisionRequest">request providing dividend, divisor and a delegate to send back the response</param>
 public void Divide(DivisionRequest divisionRequest)
 {
     var operands = divisionRequest.RequestData;
     var results = new DivisionRequest.Results
                       {
                           Quotient = (double)operands.Dividend / (double)operands.Divisor,
                           IntegerQuotient = operands.Dividend / operands.Divisor,
                           IntegerRemainder = operands.Dividend % operands.Divisor
                       };
     divisionRequest.Response(results);
 }
Esempio n. 10
0
        public CalculatorResponse MakePostRequest(DivisionRequest divisionRequest)
        {
            string             url                = "http://api.mathjs.org/v4/";
            string             json               = JsonConvert.SerializeObject(divisionRequest);
            var                data               = new StringContent(json, Encoding.UTF8, "application/json");
            var                client             = new HttpClient();
            var                response           = client.PostAsync(url, data).Result;
            string             result             = response.Content.ReadAsStringAsync().Result;
            CalculatorResponse calculatorResponse = JsonConvert.DeserializeObject <CalculatorResponse>(result);

            return(calculatorResponse);
        }
Esempio n. 11
0
        /// <summary>
        /// processes a division of two integer arguments
        /// using a specialized request argument
        /// </summary>
        /// <param name="divisionRequest">request providing dividend, divisor and a delegate to send back the response</param>
        public void Divide(DivisionRequest divisionRequest)
        {
            var operands = divisionRequest.RequestData;
            var results  = new DivisionRequest.Results
            {
                Quotient         = (double)operands.Dividend / (double)operands.Divisor,
                IntegerQuotient  = operands.Dividend / operands.Divisor,
                IntegerRemainder = operands.Dividend % operands.Divisor
            };

            divisionRequest.Response(results);
        }
Esempio n. 12
0
        public ValueTask <DivisionResult> DivisionAsync(DivisionRequest request, CallContext context = default)
        {
            if (request.Y == 0.0D)
            {
                throw new RpcException(new Status(StatusCode.InvalidArgument, $"Divider Y is zero"));
            }

            return(new ValueTask <DivisionResult>(new DivisionResult
            {
                Result = request.X / request.Y
            }));
        }
Esempio n. 13
0
 public void DigitsDivision_DigitsFromFile_ResultsMatchToValidationFile()
 {
     foreach (var testData in _testData)
     {
         var divisionRequest = new DivisionRequest {
             Expr = new List <string> {
                 $"{testData.FirstExpression}/{testData.SecondExpression}"
             }
         };
         CalculatorResponse divisionResult = _mathjsProxy.MakePostRequest(divisionRequest);
         Assert.AreEqual(testData.IsToFail, divisionResult.HasFailed);
         Assert.AreEqual(testData.ExpectedResult, divisionResult.Result?.First());
     }
 }
Esempio n. 14
0
        /// <summary>
        /// Implementación de llamado al servicio de dividir de la calculadora
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        public async Task <DivisionResponse> Dividir(DivisionRequest r)
        {
            var client = new RestClient(_apiUrl);

            var request = new RestRequest($"{CalculatorApiResource}/Div", Method.POST, DataFormat.Json);

            if (!string.IsNullOrEmpty(r.IdSeguimiento))
            {
                request.AddHeader(IdHeader, r.IdSeguimiento);
            }

            request.AddParameter("application/json; charset=utf-8", JsonConvert.SerializeObject(r), ParameterType.RequestBody);

            return(await client.PostAsync <DivisionResponse>(request));
        }
Esempio n. 15
0
        /// <summary>
        /// Group the Division operations.
        /// </summary>
        static public void DivisionMethod()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("DIVISION");
            Console.ForegroundColor = ConsoleColor.White;

            int Dividendo = int.Parse(ValidarNumero("Ingrese el  dividendo:"));
            int Divisor   = int.Parse(ValidarNumero("Ingrese divisor:"));

            string          logDiv      = ValidarNumeroEspacio("\nIngrese el identificador del Log OPCIONAL:");
            DivisionRequest divtRequest = new DivisionRequest();

            divtRequest.Dividend = Dividendo;
            divtRequest.Divisor  = Divisor;
            ManagementCalculator.Division(divtRequest, logDiv);
        }
Esempio n. 16
0
        internal static async Task Main(string[] args)
        {
            Channel channel = new Channel("127.0.0.1:50050", ChannelCredentials.Insecure);

            var client   = new Calculator.CalculatorClient(channel);
            var operands = new double[5] {
                1D, 2D, 3D, 4D, 5D
            };

            var addRequest = new OperationRequest();

            addRequest.Operands.AddRange(operands);

            var subtractRequest = new OperationRequest();

            subtractRequest.Operands.AddRange(operands);

            var multiplicationRequest = new OperationRequest();

            multiplicationRequest.Operands.AddRange(operands);

            var divisionRequest = new DivisionRequest
            {
                Dividend = 45,
                Divisor  = 5
            };

            var sum = await client.AddAsync(addRequest);

            var difference = await client.SubtractAsync(subtractRequest);

            var product = await client.MultiplyAsync(multiplicationRequest);

            var division = await client.DivideAsync(divisionRequest);

            Console.WriteLine($"Sum: {sum.Result}, Difference: {difference.Result}, Product: {product.Result}, Division: {division.Result}");

            await channel.ShutdownAsync();

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
Esempio n. 17
0
        public ContentResult Dividir([FromBody] DivisionRequest request)
        {
            try
            {
                decimal resultado = Calculadora.Dividir(request.V1, request.V2);

                return(new ContentResult
                {
                    StatusCode = 200,
                    Content = resultado.ToString()
                });
            }
            catch (Exception ex)
            {
                return(new ContentResult
                {
                    StatusCode = 500,
                    Content = ex.Message
                });
            }
        }
Esempio n. 18
0
        /// <summary>
        /// Example 2: divide two integers
        /// </summary>
        /// <param name="service">an instance of the IService to use</param>
        private static void Example2(IService service)
        {
            // buffer variable for receiving the result
            DivisionRequest.Results divisionResults = null;

            // build the specialized request with the dividend, the divisor
            // and the lambda expression for the callback with the resulting quotient
            var divisionRequest = new DivisionRequest(
                                                          26, 10,
                                                          res => divisionResults = res
                                                     );
            // send the request to the service
            service.Divide(divisionRequest);

            // output the result
            Console.WriteLine();
            Console.WriteLine("Requested the division of {0} by {1}", divisionRequest.RequestData.Dividend, divisionRequest.RequestData.Divisor);
            Console.WriteLine("Returned the resulting quotient: {0}", divisionResults.Quotient);
            Console.WriteLine("               integer quotient: {0}", divisionResults.IntegerQuotient);
            Console.WriteLine("              integer remainder: {0}", divisionResults.IntegerRemainder);
        }
        /// <summary>
        /// Method that connects to the Web API service to perform the division operation.
        /// </summary>
        /// <param name="values"></param>
        /// <param name="logDiv"></param>
        internal static void Division(DivisionRequest values, string logDiv)
        {
            try
            {
                var clientRest  = new RestClient(urlWebAPI);
                var requestRest = new RestRequest("Div", Method.POST);

                if (logDiv == "")
                {
                    logDiv = "0";
                }
                requestRest.AddHeader("x-evi-tracking-id", logDiv);

                requestRest.AddParameter("application/json", new JavaScriptSerializer().Serialize(values), ParameterType.RequestBody);
                IRestResponse responseRest = clientRest.Execute(requestRest);
                Console.WriteLine();

                if (responseRest.StatusCode == HttpStatusCode.OK)
                {
                    DivisionResult result = (new JavaScriptSerializer()).Deserialize <DivisionResult>(responseRest.Content);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("\n\nRESULTADO, COCIENTE: " + result.Quotient + " - RESTO: " + result.Remainder + "." + (logDiv != "0" ? " La operacion fue registrada en el log." : ""));
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Error al realizar la operación: " + responseRest.ErrorMessage);
                }

                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Operación finalizada.");
                Console.WriteLine();
            }
            catch (Exception)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("\n\nError al conectarse con el servicio que realiza la operacion de división. ");
                throw;
            }
        }
Esempio n. 20
0
        /// <summary>
        /// Implementation of division method.
        /// </summary>
        /// <param name="divisionRequest"></param>
        /// <param name="logDiv"></param>
        /// <returns></returns>
        public static DivisionResult Div(DivisionRequest divisionRequest, string logDiv)
        {
            try
            {
                DivisionResult divisionResult = new DivisionResult();

                divisionResult.Quotient  = divisionRequest.Dividend / divisionRequest.Divisor;
                divisionResult.Remainder = divisionRequest.Dividend % divisionRequest.Divisor;
                string calculation = divisionRequest.Dividend + "%" + divisionRequest.Divisor.ToString();

                if (int.Parse(logDiv) != 0)
                {
                    SaveLog(int.Parse(logDiv), "División ", calculation, divisionResult.Quotient);
                }

                return(divisionResult);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 21
0
        /// <summary>
        /// Example 2: divide two integers
        /// </summary>
        /// <param name="service">an instance of the IService to use</param>
        private static void Example2(IService service)
        {
            // buffer variable for receiving the result
            DivisionRequest.Results divisionResults = null;

            // build the specialized request with the dividend, the divisor
            // and the lambda expression for the callback with the resulting quotient
            var divisionRequest = new DivisionRequest(
                26, 10,
                res => divisionResults = res
                );

            // send the request to the service
            service.Divide(divisionRequest);

            // output the result
            Console.WriteLine();
            Console.WriteLine("Requested the division of {0} by {1}", divisionRequest.RequestData.Dividend, divisionRequest.RequestData.Divisor);
            Console.WriteLine("Returned the resulting quotient: {0}", divisionResults.Quotient);
            Console.WriteLine("               integer quotient: {0}", divisionResults.IntegerQuotient);
            Console.WriteLine("              integer remainder: {0}", divisionResults.IntegerRemainder);
        }
Esempio n. 22
0
        public HttpResponseMessage Post([FromBody] DivisionRequest request)
        {
            var    jsonFormatter = new JsonMediaTypeFormatter();
            string trackingId    = null;

            if (Request.Headers.Contains("X-Evi-Tracking-Id"))
            {
                trackingId = Request.Headers.GetValues("X-Evi-Tracking-Id").First();
            }

            try
            {
                var response = new HttpResponseDto <DivisionResponse>
                {
                    Status  = HttpStatusCode.OK.ToString(),
                    Code    = (int)HttpStatusCode.OK,
                    Message = repository
                              .Divide(new int[] { request.Dividend, request.Divisor }, trackingId)
                };

                // In case of success, return a Json with the corresponding calculation total
                return(Request.CreateResponse(HttpStatusCode.OK, response, jsonFormatter));
            }
            catch (Exception ex)
            {
                var response = new HttpResponseDto <string>
                {
                    Status  = HttpStatusCode.BadRequest.ToString(),
                    Code    = (int)HttpStatusCode.BadRequest,
                    Message = ex.Message
                };

                // In case of error, return a Json with the corresponding message to be shown
                return(Request.CreateResponse(HttpStatusCode.BadRequest, response, jsonFormatter));
            }
        }
Esempio n. 23
0
        static async Task Main(string[] args)
        {
            RegisterServices();

            var apiConsumerService = _serviceProvider.GetService <IApiConsumerService>();

            //Valores estaticos
            const string idSeguimiento = "operaciones123";

            //Llamado al API para realizar una SUMA
            var sumaRequest = new SumaRequest
            {
                Sumandos = new List <double>()
                {
                    4, 5, 6, 10
                },
                IdSeguimiento = idSeguimiento
            };

            var sumaResponse = await apiConsumerService.Sumar(sumaRequest);

            Console.WriteLine(sumaResponse);

            //Llamado al API para realizar una resta
            var restaRequest = new RestaRequest
            {
                Minuendo      = 10,
                Sustraendo    = 6,
                IdSeguimiento = "operaciones123"
            };

            var restaResponse = await apiConsumerService.Restar(restaRequest);

            Console.WriteLine(restaResponse);

            //Llamado al API para realizar una multiplicacion
            var multiRequest = new MultiplicacionRequest
            {
                Factores = new List <double>()
                {
                    4, 5
                },
                IdSeguimiento = "operaciones123"
            };

            var multiResponse = await apiConsumerService.Multiplicar(multiRequest);

            Console.WriteLine(multiResponse);

            //Llamado al API para realizar una division
            var divRequest = new DivisionRequest
            {
                Dividendo     = 4,
                Divisor       = 20,
                IdSeguimiento = "operaciones123"
            };

            var divResponse = await apiConsumerService.Dividir(divRequest);

            Console.WriteLine(divResponse);

            //Llamado al API para realizar una raiz cuadrada
            var raizRequest = new RaizCuadradaRequest
            {
                Numero        = 9,
                IdSeguimiento = "operaciones123"
            };

            var raizResponse = await apiConsumerService.CalcularRaizCuadrada(raizRequest);

            Console.WriteLine(raizResponse);

            //Llamado al API para consultar el diario
            var consultaDiarioRequest = new ConsultaDiarioRequest
            {
                IdSeguimiento = idSeguimiento
            };

            var consultaDiarioResponse = await apiConsumerService.CosultarDiario(consultaDiarioRequest);

            Console.WriteLine(consultaDiarioResponse);

            Console.WriteLine("-----------------------------------------------------------------");
            Console.WriteLine("Aplicación Finalizada");
            Console.ReadKey();
        }
Esempio n. 24
0
 public static DivisionResult Div(DivisionRequest divisionRequest, string tracking_ID)
 {
     return(CalculatorDataAccess.Div(divisionRequest, tracking_ID));
 }
Esempio n. 25
0
 private DivisionResponse Divide(DivisionRequest request)
 {
     return(new DivisionResponse(request.Dividend / request.Divisor, request.Dividend % request.Divisor));
 }
Esempio n. 26
0
 public async Task <DivisionResponse> Division([FromBody] DivisionRequest request)
 {
     return(await _calculator.Quotient(request.Dividend, request.Divisor));
 }