public override Task <GetWeathersReply> GetWeathers(GetWeathersRequest request, ServerCallContext context) { var httpContext = context.GetHttpContext(); using var tracerFactory = _jaegerOptions.GetTracerFactory(); var tracer = tracerFactory.GetTracer("weather-service-tracer"); var propagatedContext = tracer.TextFormat.Extract(httpContext.Request.Headers, (headers, name) => headers[name]); var incomingSpan = tracer.StartSpan("gRPC POST get weather data", propagatedContext, SpanKind.Server); var rng = new Random(); var dtos = Enumerable.Range(1, 5).Select(index => new WeatherDto { TemperatureC = rng.Next(-20, 55), Summary = GetSummaryAsync(tracer, incomingSpan).Result // for demo only }); var result = new GetWeathersReply(); result.Items.AddRange(dtos); incomingSpan.End(); return(Task.FromResult(result)); }
public GetWeathersResponse GetWeathersForGrid(GetWeathersRequest request) { int totalRecords; var data = SortData(request.Search, request.SortingDictionary, out totalRecords); if (request.Take != -1) { data = data.Skip(request.Skip).Take(request.Take); } return(new GetWeathersResponse { TotalRecords = totalRecords, Weathers = data.ToList().MapTo <GetWeathersResponse.WeatherResponse>() }); }
public GetWeathersResponse GetWeathers(GetWeathersRequest request) { var query = DataContext.Weathers.AsQueryable(); if (request.OnlyCount) { return(new GetWeathersResponse { Count = query.Count() }); } else { query = query.Include(x => x.Value); query = query.OrderByDescending(x => x.Id).Skip(request.Skip).Take(request.Take); return(new GetWeathersResponse { Weathers = query.MapTo <GetWeathersResponse.WeatherResponse>() }); } }