Exemplo n.º 1
0
        public RoutesResponse GetRouteInformation([FromBody] int[] ids)
        {
            var response = new RoutesResponse();

            if (ids.Length == 0)
            {
                return(response);
            }
            var idTable = CreateIdTable(ids);

            try
            {
                using (var connection = GetConnection())
                {
                    connection.Open();
                    using (var command = new SqlCommand("GetRouteInformation", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        var errorCode = new SqlParameter("@ResponseCode", SqlDbType.Int)
                        {
                            Direction = ParameterDirection.Output
                        };
                        command.Parameters.Add(errorCode);
                        var param = command.Parameters.AddWithValue("@IDList", idTable);
                        param.SqlDbType = SqlDbType.Structured;
                        using (var reader = command.ExecuteReader())
                        {
                            if ((int)(errorCode.Value ?? 0) != 0)
                            {
                                response.ApiResponseCode = ApiResponseCode.NoRoutesSupplied;
                            }
                            else
                            {
                                while (reader.Read())
                                {
                                    response.Routes.Add(ReadRoute(reader));
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                response.ApiResponseCode = ApiResponseCode.InternalError;
            }
            return(response);
        }
Exemplo n.º 2
0
        public override async Task <RoutesResponse> GetRoutes(Empty request, ServerCallContext context)
        {
            var response = new RoutesResponse();

            try
            {
                var airports = await _airportProxy.GetAllAirports();

                var routes = (await _airlineRepository.GetFligthRoutes())
                             .Select(x => new RouteModel()
                {
                    Source = airports.Where(y => y.Id == x.Source).FirstOrDefault().City,
                    Target = airports.Where(y => y.Id == x.Target).FirstOrDefault().City,
                });
                _logger.LogInformation($"Get all Routes");

                response.Routes.AddRange(routes);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"ERROR: Get all Routes");
            }
            return(response);
        }