コード例 #1
0
ファイル: MultController.cs プロジェクト: leojg519/Calculator
        public HttpResponseMessage Post([FromBody] MultiplicationRequest 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 <MultiplicationResponse>
                {
                    Status  = HttpStatusCode.OK.ToString(),
                    Code    = (int)HttpStatusCode.OK,
                    Message = repository.Multiply(request.Factors, 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));
            }
        }
コード例 #2
0
        /// <summary>
        /// Implementation of multiplication method.
        /// </summary>
        /// <param name="multiplicationRequest"></param>
        /// <param name="logMult"></param>
        /// <returns></returns>
        public static MultiplicationResult Mult(MultiplicationRequest multiplicationRequest, string logMult)
        {
            try
            {
                MultiplicationResult multiplicationResult = new MultiplicationResult();

                int    counter     = 0;
                string calculation = "";
                multiplicationResult.Product = 1;

                foreach (int number in multiplicationRequest.Factors)
                {
                    counter += 1;
                    multiplicationResult.Product *= number;
                    calculation += number.ToString() + (counter == multiplicationRequest.Factors.Length ? "" : "*");
                }

                if (int.Parse(logMult) != 0)
                {
                    SaveLog(int.Parse(logMult), "Multiplicación ", calculation, multiplicationResult.Product);
                }

                return(multiplicationResult);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #3
0
 public override Task <MultiplicationResponse> Multiply(MultiplicationRequest request, ServerCallContext context)
 {
     return(Task.FromResult(new MultiplicationResponse
     {
         Result = request.Op1 * request.Op2
     }));
 }
コード例 #4
0
        public MultiplicationResult Mult([FromBody] MultiplicationRequest multRequest)
        {
            var    headers      = this.Request.Headers.ToList();
            string trackingMult = headers[headers.Count - 1].Value.First().ToString();

            return(CalculatorBusiness.Mult(multRequest, trackingMult));
        }
        public override Task <OperationResponse> Calculate(MultiplicationRequest request, ServerCallContext context)
        {
            var result = request.FirstOperand * request.SecondOperand;

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

            return(Task.FromResult(new OperationResponse()
            {
                Result = result
            }));
        }
コード例 #6
0
        /// <summary>
        /// Method that connects to the Web API service to perform the multiplication operation.
        /// </summary>
        /// <param name="values"></param>
        /// <param name="logMultiplication"></param>
        public static void Multiplication(MultiplicationRequest values, string logMultiplication)
        {
            try
            {
                var clientRest  = new RestClient(urlWebAPI);
                var requestRest = new RestRequest("Mult", Method.POST);

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

                requestRest.AddParameter("application/json", new JavaScriptSerializer().Serialize(values), ParameterType.RequestBody);
                IRestResponse responseRest = clientRest.Execute(requestRest);
                Console.WriteLine();
                if (responseRest.StatusCode == HttpStatusCode.OK)
                {
                    MultiplicationResult resultRest = (new JavaScriptSerializer()).Deserialize <MultiplicationResult>(responseRest.Content);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("\n\nRESULTADO, MULTIPLICACION: " + resultRest.Product + ". " + (logMultiplication != "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 multiplicación. ");
                throw;
            }
        }
コード例 #7
0
        /// <summary>
        /// Group the multiplication operations.
        /// </summary>
        static public void MultiplicationMethod()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("MULTIPLICACION ");
            Console.ForegroundColor = ConsoleColor.White;

            bool valor;

            string[] numbersAdd;
            do
            {
                valor = true;
                Console.WriteLine("Ingrese los números que intervienen en la multiplicación separados por espacio.");
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Console.WriteLine("Ejemplo 9 5 4 7 7\n");
                Console.ForegroundColor = ConsoleColor.White;
                numbersAdd = Console.ReadLine().ToString().Trim().Split(' ');

                foreach (var item in numbersAdd)
                {
                    if (ValidarNumeroCadena(item.ToString()) == false)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("\n\nLos números ingresados deben ser enteros y separados por espacio:\n");
                        Console.ForegroundColor = ConsoleColor.White;
                        valor = false;
                        break;
                    }
                }
            } while (valor == false);

            string logMult = ValidarNumeroEspacio("\nIngrese el identificador del Log OPCIONAL:");
            MultiplicationRequest MultRequest = new MultiplicationRequest();

            MultRequest.Factors = Array.ConvertAll(numbersAdd, s => int.Parse(s));
            ManagementCalculator.Multiplication(MultRequest, logMult);
        }
コード例 #8
0
 public static MultiplicationResult Mult(MultiplicationRequest multiplicationRequest, string tracking_ID)
 {
     return(CalculatorDataAccess.Mult(multiplicationRequest, tracking_ID));
 }
コード例 #9
0
        public IActionResult Post([FromBody] MultiplicationRequest request)
        {
            double result = MultiplicationHelper.Calculate(request.Arg1, request.Arg2);

            return(new JsonResult(result));
        }