Skip to content

Commit

Permalink
Parameterized grpc address
Browse files Browse the repository at this point in the history
  • Loading branch information
Zexuz committed Apr 22, 2019
1 parent 5fba266 commit 2ee6d1a
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 15 deletions.
4 changes: 2 additions & 2 deletions SnackTime.WebApi/Controllers/EpisodeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public class Episode : ControllerBase
{
private readonly MediaServer.Service.Episode.Episode.EpisodeClient _episodeProvider;

public Episode(MediaServer.Service.Episode.Episode.EpisodeClient episodeProvider)
public Episode(GrpcClientProvider clientProvider)
{
_episodeProvider = episodeProvider;
_episodeProvider = clientProvider.GetEpisodeClient();
}

[HttpGet("series/{seriesId}")]
Expand Down
4 changes: 2 additions & 2 deletions SnackTime.WebApi/Controllers/SeriesController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public class Series : ControllerBase
{
private readonly MediaServer.Service.Series.Series.SeriesClient _seriesProvider;

public Series(MediaServer.Service.Series.Series.SeriesClient seriesProvider)
public Series(GrpcClientProvider clientProvider)
{
_seriesProvider = seriesProvider;
_seriesProvider = clientProvider.GetSeriesClient();
}

[HttpGet("last-downloaded")]
Expand Down
56 changes: 49 additions & 7 deletions SnackTime.WebApi/DependencyModule.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Autofac;
using Grpc.Core;
using Microsoft.Extensions.Hosting;
using SnackTime.Core.Settings;
using SnackTime.MediaServer.Service.Episode;
using SnackTime.MediaServer.Service.File;
using SnackTime.MediaServer.Service.Series;
Expand All @@ -13,17 +14,58 @@ public class DependencyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
var channel = new Channel("127.0.0.1:50052", ChannelCredentials.Insecure);

builder.RegisterInstance(new Series.SeriesClient(channel)).AsSelf();
builder.RegisterInstance(new Episode.EpisodeClient(channel)).AsSelf();
builder.RegisterInstance(new File.FileClient(channel)).AsSelf();
builder.RegisterInstance(new Session.SessionClient(channel)).AsSelf();

builder.RegisterType<GrpcClientProvider>().AsSelf().SingleInstance();
builder.RegisterType<MediaPlayerObserver>().As<IHostedService>().SingleInstance();

builder.RegisterType<FileService>().AsSelf();
builder.RegisterType<FileDownloadService>().AsSelf();
}
}

public class GrpcClientProvider
{
private readonly SettingsService _settingsService;

//TODO FIXT THIS!
private static Channel _lastChannel = new Channel("127.0.0.1:50052", ChannelCredentials.Insecure);
private static string _lastAddress = "127.0.0.1";

public GrpcClientProvider(SettingsService settingsService)
{
_settingsService = settingsService;
}


public Series.SeriesClient GetSeriesClient()
{
return new Series.SeriesClient(GetChannel());
}

public Episode.EpisodeClient GetEpisodeClient()
{
return new Episode.EpisodeClient(GetChannel());
}

public File.FileClient GetFileClient()
{
return new File.FileClient(GetChannel());
}

public Session.SessionClient GetSessionClient()
{
return new Session.SessionClient(GetChannel());
}

private Channel GetChannel()
{
var address = _settingsService.Get().MediaServerAddress;
if (_lastAddress == address)
{
return _lastChannel;
}

_lastAddress = address;
return new Channel(_lastAddress, 50052, ChannelCredentials.Insecure);
}
}
}
4 changes: 2 additions & 2 deletions SnackTime.WebApi/Services/FileDownloadService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ public class FileDownloadService
public FileDownloadService
(
ILogger<FileDownloadService> logger,
MediaServer.Service.File.File.FileClient client,
GrpcClientProvider clientProvider,
FileService fileService,
SettingsService settingsService
)
{
_logger = logger;
_client = client;
_client = clientProvider.GetFileClient();
_fileService = fileService;
_settingsService = settingsService;
}
Expand Down
4 changes: 2 additions & 2 deletions SnackTime.WebApi/Services/SessionSyncService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ public class SessionSyncService
private readonly SessionService _sessionService;
private readonly Session.SessionClient _sessionClient;

public SessionSyncService(ILogger<SessionSyncService> logger, SessionService sessionService, Session.SessionClient sessionClient)
public SessionSyncService(ILogger<SessionSyncService> logger, SessionService sessionService, GrpcClientProvider clientProvider)
{
_logger = logger;
_sessionService = sessionService;
_sessionClient = sessionClient;
_sessionClient = clientProvider.GetSessionClient();
}

public async Task Sync()
Expand Down

0 comments on commit 2ee6d1a

Please sign in to comment.