Пример #1
0
        public MultRes Post([FromBody] MultReq value)
        {
            MultRes result = new MultRes();

            result.Product = 1;
            try
            {
                MultReq numbers = value;

                /*  Realiza la multiplicacion cada uno de los numeros dentro de la peticion,
                 *  cuando el encabezado no contiene el identificador "X-Evi-Tracking-Id"
                 */
                if (String.IsNullOrEmpty(Request.Headers["X-Evi-Tracking-Id"]))
                {
                    foreach (float number in numbers.Factors)
                    {
                        result.Product *= number;
                    }
                }

                /* Si el encabezado contiene el "X-Evi-Tracking-Id" se efectua la operacion
                 * y se crea un archivo con el nombre del id del usuario y los datos de la
                 * operacion realizada
                 */
                else
                {
                    string operation = "";
                    foreach (float number in numbers.Factors)
                    {
                        result.Product *= number;
                        operation      += number + " x ";
                    }
                    LogJournal logJournal = new LogJournal(Request.Headers["X-Evi-Tracking-Id"]);
                    logJournal.Add("{" + "\"" + "Operation" + "\"" + ": " + "\"" + "Mult" + "\"" + ", " + "\"" + "Calculation" + "\"" + ": " + "\"" + operation.Substring(0, operation.Length - 3) + " = " + result.Product + "\"" + ", " + "\"" + "Date" + "\"" + ": " + "\"" + DateTime.Now.ToString("u") + "\"" + "}");
                }
            }
            catch (Exception ex)
            {
                Log log = new Log();
                log.Add("Error en AddController.cs " + ex.Message);
            }

            return(result);
        }
Пример #2
0
        //
        // POST: /Calculator/Mult

        public void Mult()
        {
            try
            {
                // Receive and process the POST data
                string res = HttpContext.Request.Method.ToString();

                Encoding     enc            = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader responseStream = new StreamReader(HttpContext.Request.Body, enc);
                string       body           = responseStream.ReadToEnd();

                Mult mult = JsonConvert.DeserializeObject <Mult>(body);

                // Get the result
                Calculator C   = new Calculator();
                int        pro = C.mult(mult.Factors);

                // Create a Result Object
                MultRes multres = new MultRes();
                multres.Product = pro;

                // Serialize it
                string param = JsonConvert.SerializeObject(multres);

                // Send it back using POST
                HttpContext.Response.ContentType = "application/json";
                using (var streamWriter = new StreamWriter(HttpContext.Response.Body, enc))
                {
                    streamWriter.Write(param);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                var logger = NLog.LogManager.GetCurrentClassLogger();
                logger.Info("Mult operation");
            }
            catch (System.Exception e)
            {
                // Create a Result Object
                CalculatorService.Client.Exception ex = new CalculatorService.Client.Exception();
                ex.ErrorCode    = "InternalError";
                ex.ErrorStatus  = 500;
                ex.ErrorMessage = e.Message;

                // Serialize it
                string exec = JsonConvert.SerializeObject(ex);

                // Send it back using POST
                HttpContext.Response.ContentType = "application/json";
                Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
                using (var streamWriter = new StreamWriter(HttpContext.Response.Body, enc))
                {
                    streamWriter.Write(exec);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                var logger = NLog.LogManager.GetCurrentClassLogger();
                logger.Info("Object reference not set to an instance of an object.");
            }
        }