public static void Main() { var service = new DistanceCalculatorServiceClient(); var result = service.CalcDistance(new Point { X = 5, Y = 10 }, new Point { X = 20, Y = 30 }); Console.WriteLine("Result from SOAP service: {0}", result); using (WebClient webClient = new WebClient()) { var calcDistanceRequest = new CalculateDistanceRequest { StartPoint = new RestService.Models.Point { X = 15, Y = 23 }, EndPoint = new RestService.Models.Point { X = 35, Y = 2 } }; webClient.Headers.Set("Content-type", "application/json"); var distanceRequestAsJsonString = JsonConvert.SerializeObject(calcDistanceRequest); var response = webClient.UploadString( "http://localhost:31009/api/calculate-distance", distanceRequestAsJsonString); Console.WriteLine("Result from REST service: {0}", response); Console.ReadLine(); } }
public async Task <List <(double?distance, string userId)> > CalculateUsersDistances(string theUserId, List <string> usersIds) { var request = new CalculateDistanceRequest(); request.TheUserId = theUserId; usersIds.ForEach(uid => request.UserIds.Add(uid)); var result = await _grpcClient.CalculateDistanceAsync(request); return(result.Distances.Select(d => (d.Distance, d.UserId)).ToList()); }
public IHttpActionResult CalculateDistance(CalculateDistanceRequest request) { if (!this.ModelState.IsValid) { return this.BadRequest(); } int deltaX = request.StartPoint.X - request.EndPoint.X; int deltaY = request.StartPoint.Y - request.EndPoint.Y; double result = Math.Sqrt((deltaX * deltaX) + (deltaY * deltaY)); return this.Ok(result); }
public override async Task <DistancesResponse> CalculateDistance(CalculateDistanceRequest request, ServerCallContext context) { var userIds = request.UserIds.ToList(); var theUserId = request.TheUserId; var distances = await _distanceCalcultaor.CalculateDistancesAsync(theUserId, userIds); var distanceResponse = new DistancesResponse(); distances.ForEach(distance => distanceResponse.Distances.Add(new DistanceModel { Distance = distance.distance, UserId = distance.userId })); return(distanceResponse); }