Esempio n. 1
0
        } // class

        #endregion

        #region method_DivisionPetition
        public static void DivisionPetition(DivRequest calc, int id)
        {
            try
            {
                var httpWebRequest = HeaderBuilder("Calculator", "div", id);

                string json = JsonConvert.SerializeObject(calc);

                SendRequest(httpWebRequest, json);

                DivResponse     response     = null;
                HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    response = JsonConvert.DeserializeObject <DivResponse>(result);
                }

                Console.WriteLine("Quotient: {0} Remainder: {1}", response.Quotient, response.Remainder + "\n\npress enter to continue.");
                Console.ReadKey();
            }
            // handle error exceptions
            catch (WebException webex)
            {
                WebResponse errResp = webex.Response;
                using (Stream respStream = errResp.GetResponseStream())
                {
                    StreamReader reader = new StreamReader(respStream);
                    string       text   = reader.ReadToEnd();
                }
            }
        } // class
        public string Divide(DivRequest petition)
        {
            logger.Debug("------- Division Method -------");

            try
            {
                if (petition == null || petition.Numbers == null)
                {
                    return(Error400().ErrorMessage.ToString());
                }
                DivResponse result = new DivResponse();

                string key = Request.Headers.GetValues("X_Evi_Tracking_Id").FirstOrDefault();
                JournalService.Storing(Operations.Div(petition, result), "Division", key);

                logger.Debug(Operations.Div(petition, result));

                var hasonServer = JsonConvert.SerializeObject(result);
                return(hasonServer);
            }
            catch (Exception ex)
            {
                return(JsonConvert.SerializeObject(Error500(ex)));
            }
        }
Esempio n. 3
0
        public DivResponse div([FromBody] DivRequest value)
        {
            logger.Trace("Service called: div");

            /* An invalid request has been received.
             * This may mean the HTTP requests and/or the HTTP body may contains some errors which should be fixed
             * */

            if (value == null)
            {
                logger.Error(HttpStatusCode.BadRequest);
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            try
            {
                DivResponse result = new DivResponse();

                // Execute operation: Sub
                String forJournal = "";

                result.Quotient  = value.Dividend / value.Divisor;
                result.Remainder = value.Dividend % value.Divisor;
                forJournal       = value.Dividend + " / " + value.Divisor + " = " + result.Quotient + " Remainder = " + result.Remainder;


                if (Request != null && Request.Headers != null)
                {
                    var headers = Request.Headers;

                    if (headers.Contains("X-Evi-Tracking-Id"))
                    {
                        // Must store this request’s details inside it’s journal
                        string trackingId = headers.GetValues("X-Evi-Tracking-Id").First();
                        logger.Info("X-Evi-Tracking-Id = " + trackingId);

                        Operation operation = new Operation
                        {
                            OperationDes = "Div",
                            Calculation  = forJournal,
                            Date         = DateTime.Now.ToString("u")
                        };

                        Journal.store(trackingId, operation);
                        logger.Trace("Div success!!");
                    }
                }

                return(result);
            }
            catch (Exception ex)
            {
                logger.Error(ex);

                /*
                 * An unexpected error condition was triggered which made impossible to fulfill the request. Please try again or contact support
                 * */
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Esempio n. 4
0
        public DivResponse Div(DivRequest request, string trakingId)
        {
            log.Trace("this is the service -> Div");
            DivResponse div = new DivResponse();

            try
            {
                var result  = request.Dividend / request.Divisor;
                var result1 = request.Dividend % request.Divisor;
                div.Quotient  = result;
                div.Remainder = result1;
                log.Trace(HttpStatusCode.OK);

                if (trakingId != null)
                {
                    var op = new Operation()
                    {
                        name        = "Div",
                        date        = DateTime.Now,
                        calculation = string.Join("/", request.Dividend, request.Divisor)
                    };
                    JournalList.Add(new KeyValuePair <string, Operation>(trakingId, op));
                }
            }
            catch (Exception e)
            {
                log.Error("Error in the controller Div " + e);
                log.Error(HttpStatusCode.InternalServerError);
                throw new Exception();
            }
            return(div);
        }
        public void Div(string trackingId)
        {
            #region DivisionStuff
            Console.WriteLine("-------Division Operation------");
            Console.WriteLine("Type the integer division you want to do(ex:1243 / 12 / 2): ");

            char   symb = '/';
            string div  = Console.ReadLine();

            div = CheckingSymbol.HaveOperationSymbol(symb, div);

            int[] numbers;
            if (ParsingComprobation.CanBeParsed(symb, div))
            {
                numbers = ParsingComprobation.Parse(ParsingComprobation.SeparateString(symb, div));
            }
            else
            {
                return;
            }
            #endregion

            #region Connection
            DivRequest  division = new DivRequest();
            DivResponse result   = new DivResponse();

            division.Numbers = numbers;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"{url}div");
            request.Method      = "POST";
            request.ContentType = "application/json";

            if (trackingId != "")
            {
                request.Headers.Add("X_Evi_Tracking_Id", trackingId);
            }

            using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
            {
                var jason = JsonConvert.SerializeObject(division);
                dataStream.Write(jason);
                dataStream.Close();
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader stRead = new StreamReader(response.GetResponseStream()))
            {
                Console.WriteLine("The server operation's result is:");
                result = JsonConvert.DeserializeObject <DivResponse>(stRead.ReadToEnd());
                Console.WriteLine(result.Quotient);
                Console.WriteLine("The remainder of the last division is:");
                Console.WriteLine(result.Remainder);
                stRead.Close();
            }
            #endregion
        }
Esempio n. 6
0
        public void Div(string trackingId)
        {
            #region DivisionStuff

            Console.WriteLine("-------Division Operation------");
            Console.WriteLine("Type the binomial int division  you want to do(ex:13 / 12): ");

            char     symb = '/';
            string   div  = Console.ReadLine();
            string[] nums = div.Split(symb);

            int[] numbers = new int[nums.Length];
            for (int i = 0; i < nums.Length; i++)
            {
                numbers[i] = int.Parse(nums[i].Trim());
                Console.WriteLine(numbers[i]);
            }
            #endregion

            #region Connection

            DivRequest  division = new DivRequest();
            DivResponse result   = new DivResponse();

            division.Dividend = numbers[0];
            division.Diviser  = numbers[1];

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"{url}div");
            request.Method      = "POST";
            request.ContentType = "application/json";

            if (trackingId != "")
            {
                request.Headers.Add("X_Evi_Tracking_Id", trackingId);
            }

            using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
            {
                var jason = JsonConvert.SerializeObject(division);
                dataStream.Write(jason);
                dataStream.Close();
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader stRead = new StreamReader(response.GetResponseStream()))
            {
                Console.WriteLine("The server operation's result is:");
                result = JsonConvert.DeserializeObject <DivResponse>(stRead.ReadToEnd());
                Console.WriteLine(result.Quotient);
                Console.WriteLine("The remainder of the division is:");
                Console.WriteLine(result.Remainder);
                stRead.Close();
            }
            #endregion
        }
Esempio n. 7
0
        public string Div(DivRequest Reqdiv)
        {
            DivResponse response  = new DivResponse();
            string      operation = "";

            logger.Trace("----- Method Divide -----");
            try
            {
                if (Reqdiv == null || !(Reqdiv.Dividend.HasValue || Reqdiv.Divisor.HasValue))
                {
                    return(Error400().ErrorMessage.ToString());
                    //throw new ArgumentNullException();
                }
                if (Reqdiv.Divisor == 0)
                {
                    throw new DivideByZeroException();
                    //throw new Exception("The operation result is Infinite");
                }
                else
                {
                    response.Quotient  = Reqdiv.Dividend.Value / Reqdiv.Divisor.Value;
                    response.Remainder = Reqdiv.Dividend.Value % Reqdiv.Divisor.Value;
                }

                operation = $"{Reqdiv.Dividend} / {Reqdiv.Divisor}";

                logger.Trace($"{operation} = {response.Quotient}(Reaminder: {response.Remainder})");

                if (Request.Headers.GetValues("X_Evi_Tracking_Id") != null && Request.Headers.GetValues("X_Evi_Tracking_Id").Any())
                {
                    string key = Request.Headers.GetValues("X_Evi_Tracking_Id").First();

                    JournalService.StoreOperation(CreateOperation("Div", $"{operation} = {response.Quotient}(Remainder: {response.Remainder})", DateTime.Now, key));
                }

                string json = JsonConvert.SerializeObject(response);
                return(json);
            }
            catch (ArgumentNullException e)
            {
                logger.Error(e.Message);
                return(e.Message);
            }
            catch (DivideByZeroException ex)
            {
                logger.Error(ex.Message);
                return(ex.Message);
            }
            catch (Exception)
            {
                return(Error500().ErrorMessage.ToString());
            }
        }
        public void Div(string Id_Tracking)
        {
            Console.WriteLine("------- Operation Divide -------");
            separator = '/';
            try
            {
                Console.WriteLine("Dividend:");
                op = Console.ReadLine();
                Reqdiv.Dividend = int.Parse(op);

                Console.WriteLine("Divisor:");
                op             = Console.ReadLine();
                Reqdiv.Divisor = int.Parse(op);

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{url}div");
                req.Method      = "POST";
                req.ContentType = "application/json";

                if (Id_Tracking != "")
                {
                    req.Headers.Add("X_Evi_Tracking_Id", Id_Tracking);
                }

                // Opens a stream,converts the request to Json and send it
                using (StreamWriter sw = new StreamWriter(req.GetRequestStream()))
                {
                    string jsonRequest = JsonConvert.SerializeObject(Reqdiv);
                    sw.Write(jsonRequest);
                    sw.Close();
                }

                DivResponse     response = new DivResponse();
                HttpWebResponse Response = (HttpWebResponse)req.GetResponse();
                using (StreamReader sr = new StreamReader(Response.GetResponseStream(), Encoding.UTF8))
                {
                    Console.WriteLine("The server responds: ");
                    response = JsonConvert.DeserializeObject <DivResponse>(sr.ReadToEnd());
                    Console.WriteLine($"Quotient: {response.Quotient}, Remainder: {response.Remainder}");
                    sr.Close();
                    Response.Close();
                }
            }
            catch (Exception e)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(e.Message);
                Console.ForegroundColor = ConsoleColor.Gray;
                logger.Error(e.Message);
            }
        }
Esempio n. 9
0
        public void DivResponse_CorrectlyFormatsResponseForJournal()
        {
            var quotiend  = TestHelper.GeneratePositiveNumber();
            var remainder = TestHelper.GeneratePositiveNumber();
            var expected  = $"{quotiend} with remainder {remainder}";
            var response  = new DivResponse
            {
                Quotient  = quotiend,
                Remainder = remainder
            };

            var formattedResponse = response.GetFormatedResponse();

            formattedResponse.Should().Be(expected);
        }
        public string Divide(DivRequest petition)
        {
            int[] nums = new int[2];

            nums[0] = petition.Dividend;
            nums[1] = petition.Diviser;

            DivResponse result = new DivResponse();

            result.Quotient  = nums[0] / nums[1];
            result.Remainder = nums[0] % nums[1];

            var hasonServer = JsonConvert.SerializeObject(result);

            return(hasonServer);
        }
        public void Div_ShouldReturnOK()
        {
            DivRequest testRequest = new DivRequest();

            testRequest.Dividend = 11;
            testRequest.Divisor  = 2;

            var controller = new CalculatorController();

            var         result  = controller.div(testRequest) as DivResponse;
            DivResponse compare = new DivResponse {
                Quotient = 5, Remainder = 1
            };

            Assert.AreEqual(5, result.Quotient);
            Assert.AreEqual(1, result.Remainder);
        }
Esempio n. 12
0
        public IActionResult Postdiv([FromBody] DivRequest numeros)
        {
            int dividend;
            int divisor;

            try
            {
                dividend = numeros.Dividend;
                divisor  = numeros.Divisor;
            }
            catch (Exception e)
            {
                return(StatusCode(400, e));
            }
            DivResponse div;

            try
            {
                div = new DivResponse
                {
                    Quotient  = dividend / divisor,
                    Remainder = dividend % divisor
                };
            }
            catch (Exception e)
            {
                return(StatusCode(400, e));
            }
            if (Request.Headers["X-Evi-Tracking-Id"].Any())
            {
                var identification = Request.Headers["X-Evi-Tracking-Id"];
                var currentUser    = UsersHandler.KnownOrNot(identification);
                currentUser.Operations.Add(new DivisionOperation(numeros, div));
            }
            return(new JsonResult(div));
        }