Skip to content
Snippets Groups Projects
Router.cs 1.21 KiB
Newer Older
using FitConnect.Models;
using FitConnect.Services;
using FitConnect.Services.Interfaces;
using Microsoft.Extensions.Logging;
Klaus Fischer's avatar
Klaus Fischer committed
using Route = FitConnect.Services.Models.v1.Routes.Route;

namespace FitConnect;

public class Router : IRouter {
Klaus Fischer's avatar
Klaus Fischer committed
    private readonly IRouteService RouteService;

    public Router(FitConnectEnvironment environment, ILogger logger = null) {
Klaus Fischer's avatar
Klaus Fischer committed
        RouteService = new RouteService(environment.RoutingUrl, "v1", logger);
Klaus Fischer's avatar
Klaus Fischer committed

    public async Task<List<Route>> FindDestinationsAsync(string leiaKey, string? ags = null,
        string? ars = null,
Klaus Fischer's avatar
Klaus Fischer committed
        string? areaId = null) {
        return await RouteService.GetDestinationIdAsync(leiaKey, ags, ars, areaId);
    }
    /// <summary>
Klaus Fischer's avatar
Klaus Fischer committed
    ///     Finding Areas
    /// </summary>
    /// <param name="filter"></param>
    /// <param name="totalCount"></param>
    /// <param name="offset"></param>
    /// <param name="limit"></param>
    /// <returns></returns>
    public IEnumerable<Area> GetAreas(string filter, out int totalCount, int offset = 0,
        int limit = 100) {
        var dto = RouteService.GetAreas(filter, offset, limit).Result;
        totalCount = dto?.TotalCount ?? 0;
        return dto?.Areas ?? new List<Area>();
    }