Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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>()
            });
        }
Ejemplo n.º 3
0
        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>()
                });
            }
        }