public async void ExecuteCalculatorMultiplyRequest()
        {
            MultiplyRequest request = new MultiplyRequest()
            {
                intA = UnityEngine.Random.Range(-byte.MaxValue, byte.MaxValue),
                intB = UnityEngine.Random.Range(-byte.MaxValue, byte.MaxValue)
            };
            MultiplyResponse response = await Multiply.Execute(_calculatorClient, request);

            if (response != null)
            {
                _results.text = string.Format("{0} * {1} = {2}", request.intA, request.intB, response.Value) + Environment.NewLine;
            }
        }
Example #2
0
        public void GoogleProtobufTest()
        {
            var serializer = new GoogleProtobufSerializer();

            Assert.Empty(serializer.Serialize((MultiplyRequest?)null).ToArray());

            var obj = new MultiplyRequest {
                X = 3, Y = 5
            };

            var target = serializer.Deserialize <MultiplyRequest>(serializer.Serialize(obj)) !;

            Assert.NotNull(target);
            Assert.Equal(obj.X, target.X);
            Assert.Equal(obj.Y, target.Y);
        }
        public static void TestMultiply()
        {
            MultiplyRequest mult = new MultiplyRequest();

            mult.Factors = new int[] { 8, 3, 2 };

            var client = new RestClient(ENDPOINT);

            var request = new RestRequest("mult", Method.POST);

            string json = JsonConvert.SerializeObject(mult);

            request.AddJsonBody(json);

            var response = client.Execute(request);

            var proccessResponse = JsonConvert.DeserializeObject <MultiplyResponse>(response.Content);

            Console.WriteLine("\nResult: " + proccessResponse.Product);
        }
        public void MultiplyReturnOk()
        {
            // Arrange
            MultiplyRequest testMultyplyRequest = new MultiplyRequest();

            testMultyplyRequest.Factors = new int[] { 8, 3, 2 };

            // Act
            var client = new RestClient("http://localhost:54405/api/calculator/");

            var request = new RestRequest("mult", Method.POST);

            string json = JsonConvert.SerializeObject(testMultyplyRequest);

            request.AddJsonBody(json);

            var response = client.Execute(request);

            var proccessResponse = JsonConvert.DeserializeObject <MultiplyResponse>(response.Content);

            // Assert
            Assert.AreEqual(48, proccessResponse.Product);
        }
Example #5
0
        public static async Task TestOne()
        {
            sema.WaitOne();

            var httpclient = new HttpClient();

            var mulitply = new MultiplyRequest {
                X = 100, Y = 20
            };
            var str = JsonConvert.SerializeObject(mulitply);

            var content = new StringContent(str);

            content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
            var response = await httpclient.PostAsync($"http://localhost:5000/Caculator", content);

            var result = await response.Content.ReadAsStringAsync();

            var objResult = JsonConvert.DeserializeObject <MultiplyResult>(result);

            Console.WriteLine($" {mulitply.X} X {mulitply.Y} = { objResult.Result } ");

            sema.Release();
        }
Example #6
0
 public Task <MultiplyResult> Multiply(MultiplyRequest request, ServerCallContext _)
 => ((ICalculator)this).MultiplyAsync(request).AsTask();
Example #7
0
 public async Task <MultiplyResult> Mutiply([FromBody] MultiplyRequest request)
 {
     return(await _caculator.MultiplyAsync(request));
 }
Example #8
0
 public override Task <MultiplyReply> Multiply(MultiplyRequest request, ServerCallContext context)
 {
     return(Task.FromResult(new MultiplyReply {
         Result = request.First * request.Second
     }));
 }
Example #9
0
 ValueTask <MultiplyResult> ICalculator.MultiplyAsync(MultiplyRequest request)
 {
     Console.WriteLine($"{request.X}x{request.Y}");
     return(new ValueTask <MultiplyResult>(new MultiplyResult(request.X * request.Y)));
 }
Example #10
0
    //async Task ConsumeAsync(IAsyncEnumerable<MultiplyRequest> bar, CallContext context)
    //{
    //    await foreach (var item in bar)
    //    {
    //        Console.WriteLine($"[rec] {item.X}, {item.Y} from {context.Server?.Peer}");
    //    }
    //}

    ValueTask ConsumeAsync(MultiplyRequest item, CallContext context)
    {
        Console.WriteLine($"[rec] {item.X}, {item.Y} from {context.ServerCallContext?.Peer}");
        return(default);
Example #11
0
 public ValueTask <MultiplyResult> MultiplyAsync(MultiplyRequest request, CallContext context = default) =>
 new ValueTask <MultiplyResult>(new MultiplyResult
 {
     Result = request.X * request.Y
 });
 public CalculatorResponse Multiply(MultiplyRequest request)
 {
     return(new CalculatorResponse {
         Result = request.Left * request.Right
     });
 }
        public IHttpActionResult Multiply(MultiplyRequest request)
        {
            logger.Trace("Service called: multiply");

            // 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 (request.Factors == null)
            {
                logger.Error(HttpStatusCode.BadRequest);
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            try
            {
                MultiplyResponse result = new MultiplyResponse();

                // Execute operation: Multiplication
                string dataJournal = "";

                foreach (int number in request.Factors)
                {
                    result.Product *= number;

                    dataJournal += number + " * ";
                }

                dataJournal = dataJournal.Substring(0, dataJournal.Length - 3);

                dataJournal += " = " + result.Product;

                logger.Trace("Multiply success!!");

                IEnumerable <string> headerValues;

                if (Request.Headers.TryGetValues("X-Evi-Tracking-Id", out headerValues))
                {
                    string id;

                    id = headerValues.FirstOrDefault();

                    var operation = new Operation()
                    {
                        Name        = "multiplication",
                        Calculation = dataJournal,
                        Date        = DateTime.Now
                    };

                    Journal.Store(id, operation);
                }

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

                // An unexpected error condition was triggered which made impossible to fulfill the request
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Example #14
0
 ValueTask <MultiplyResult> ICalculator.MultiplyAsync(MultiplyRequest request, CallContext context)
 => new ValueTask <MultiplyResult>(new MultiplyResult {
     Result = request.X * request.Y
 });
 public ValueTask <MultiplyResult> MultiplyAsync(MultiplyRequest request)
 => new ValueTask <MultiplyResult>(new MultiplyResult {
     Result = request.X * request.Y
 });
 public MultiplyResponse Multiply(MultiplyRequest request)
 {
     using (var client = new WebClient())
     {
         client.DownloadData(new Uri(this.url + "multiply?id=" + request.CalculatorId + "&value=" + request.Value));
     }
     return new MultiplyResponse();
 }
 public async Task<MultiplyResponse> MultiplyAsync(MultiplyRequest request)
 {
     using (var client = new WebClient())
     {
         await client.DownloadDataTaskAsync(new Uri(this.url + "multiply?id=" + request.CalculatorId + "&value=" + request.Value));
     }
     return new MultiplyResponse();
 }
		public CalculatorResponse Multiply(MultiplyRequest request)
		{
			return new CalculatorResponse { Result = request.Left * request.Right };
		}
        public static void Multiply()
        {
            int number, howMany;

            try
            {
                MultiplyRequest mult = new MultiplyRequest();

                string id = AskTrackingId();

                Console.WriteLine("\nHow many numbers do you want to multiply?");

                do
                {
                    howMany = ReadInt("the amount of numbers to multiply");

                    if (howMany < 2)
                    {
                        Console.ForegroundColor = ConsoleColor.DarkYellow;

                        Console.WriteLine("\nAt least two numbers are needed for the multiplication operation");

                        Console.ForegroundColor = ConsoleColor.Gray;

                        Console.WriteLine("\nHow many numbers do you want to multiply?");
                    }
                } while (howMany < 2);

                mult.Factors = new int[howMany];

                for (int i = 0; i < mult.Factors.Length; i++)
                {
                    Console.WriteLine("\nEnter a number:");

                    number = ReadInt("number to multiply");

                    mult.Factors[i] = number;
                }

                var client = new RestClient(ENDPOINT);

                var request = new RestRequest("mult", Method.POST);

                string json = JsonConvert.SerializeObject(mult);

                request.AddJsonBody(json);

                // Add to headers 'X-Evi-Tracking-Id'
                if (id != "")
                {
                    request.AddHeader("X-Evi-Tracking-Id", id);
                }

                var response = client.Execute(request);

                var proccessResponse = JsonConvert.DeserializeObject <MultiplyResponse>(response.Content);

                Console.ForegroundColor = ConsoleColor.Green;

                Console.WriteLine("\nResult: " + proccessResponse.Product);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }