Skip to content

Commit

Permalink
Moved logik for import to service
Browse files Browse the repository at this point in the history
  • Loading branch information
NeoCoderMatrix86 committed Jun 17, 2024
1 parent 596d134 commit a3f2cdd
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 40 deletions.
46 changes: 7 additions & 39 deletions AudioCuesheetEditor/Pages/ImportFileView.razor
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ along with Foobar. If not, see
@implements IDisposable

@inject ITextLocalizer<ImportFileView> _localizer
@inject SessionStateContainer _sessionStateContainer
@inject ImportManager _importManager

<Card>
<CardHeader>
Expand All @@ -33,10 +33,10 @@ along with Foobar. If not, see
<TabsContent @bind-SelectedPanel="selectedTab">
<TabPanel Name="recognizedFilecontent">
<Text>
@if (FileContentRecognized != null)
@if (_importManager.FileContentRecognized != null)
{
<pre>
@foreach (var line in FileContentRecognized)
@foreach (var line in _importManager.FileContentRecognized)
{
if (line != null)
{
Expand All @@ -48,7 +48,7 @@ along with Foobar. If not, see
</Text>
</TabPanel>
<TabPanel Name="editFilecontent">
<MemoEdit Text="@FileContent" TextChanged="FileContent_TextChanged" />
<MemoEdit Text="@_importManager.FileContent" TextChanged="FileContent_TextChanged" />
</TabPanel>
</TabsContent>
</CardBody>
Expand All @@ -60,48 +60,16 @@ along with Foobar. If not, see

public void Dispose()
{
_sessionStateContainer.ImportCuesheetChanged -= SessionStateContainer_ImportCuesheetChanged;
}

public IReadOnlyCollection<String?>? FileContentRecognized
{
get
{
if (_sessionStateContainer.TextImportFile != null)
{
return _sessionStateContainer.TextImportFile.FileContentRecognized;
}
if (_sessionStateContainer.CuesheetImportFile != null)
{
return _sessionStateContainer.CuesheetImportFile.FileContentRecognized;
}
return null;
}
}

public String? FileContent
{
get
{
if (_sessionStateContainer.TextImportFile?.FileContent != null)
{
return String.Join(Environment.NewLine, _sessionStateContainer.TextImportFile.FileContent);
}
if (_sessionStateContainer.CuesheetImportFile?.FileContent != null)
{
return String.Join(Environment.NewLine, _sessionStateContainer.CuesheetImportFile.FileContent);
}
return null;
}
_importManager.FileContentChanged -= ImportManager_FileContentChanged;
}

protected override void OnInitialized()
{
base.OnInitialized();
_sessionStateContainer.ImportCuesheetChanged += SessionStateContainer_ImportCuesheetChanged;
_importManager.FileContentChanged += ImportManager_FileContentChanged;
}

void SessionStateContainer_ImportCuesheetChanged(object? sender, EventArgs args)
void ImportManager_FileContentChanged(object? sender, EventArgs args)
{
StateHasChanged();
}
Expand Down
3 changes: 2 additions & 1 deletion AudioCuesheetEditor/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
using AudioCuesheetEditor.Data.Options;
using AudioCuesheetEditor.Data.Services;
using AudioCuesheetEditor.Extensions;
using AudioCuesheetEditor.Model.IO.Audio;
using AudioCuesheetEditor.Model.UI;
using AudioCuesheetEditor.Model.Utility;
using AudioCuesheetEditor.Services.IO;
using BlazorDownloadFile;
using Blazorise;
using Blazorise.Bootstrap5;
Expand Down Expand Up @@ -52,6 +52,7 @@
builder.Services.AddScoped<SessionStateContainer>();
builder.Services.AddScoped<TraceChangeManager>();
builder.Services.AddScoped<DateTimeUtility>();
builder.Services.AddScoped<ImportManager>();

builder.Services.AddLogging();
builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging"));
Expand Down
90 changes: 90 additions & 0 deletions AudioCuesheetEditor/Services/IO/ImportManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
//This file is part of AudioCuesheetEditor.

//AudioCuesheetEditor is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.

//AudioCuesheetEditor is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.

//You should have received a copy of the GNU General Public License
//along with Foobar. If not, see
//<http: //www.gnu.org/licenses />.
using AudioCuesheetEditor.Extensions;

namespace AudioCuesheetEditor.Services.IO
{
public class ImportManager : IDisposable
{
private readonly SessionStateContainer _sessionStateContainer;
private bool disposedValue;

public event EventHandler? FileContentChanged;

public ImportManager(SessionStateContainer sessionStateContainer)
{
_sessionStateContainer = sessionStateContainer;
_sessionStateContainer.ImportCuesheetChanged += SessionStateContainer_ImportCuesheetChanged;
}

public IReadOnlyCollection<String?>? FileContentRecognized
{
get
{
if (_sessionStateContainer.TextImportFile != null)
{
return _sessionStateContainer.TextImportFile.FileContentRecognized;
}
if (_sessionStateContainer.CuesheetImportFile != null)
{
return _sessionStateContainer.CuesheetImportFile.FileContentRecognized;
}
return null;
}
}

public String? FileContent
{
get
{
if (_sessionStateContainer.TextImportFile?.FileContent != null)
{
return String.Join(Environment.NewLine, _sessionStateContainer.TextImportFile.FileContent);
}
if (_sessionStateContainer.CuesheetImportFile?.FileContent != null)
{
return String.Join(Environment.NewLine, _sessionStateContainer.CuesheetImportFile.FileContent);
}
return null;
}
}

public void Dispose()
{
// Ändern Sie diesen Code nicht. Fügen Sie Bereinigungscode in der Methode "Dispose(bool disposing)" ein.
Dispose(disposing: true);
GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
_sessionStateContainer.ImportCuesheetChanged -= SessionStateContainer_ImportCuesheetChanged;
}

disposedValue = true;
}
}

private void SessionStateContainer_ImportCuesheetChanged(object? sender, EventArgs e)
{
FileContentChanged?.Invoke(this, e);
}
}
}
1 change: 1 addition & 0 deletions AudioCuesheetEditor/_Imports.razor
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
@using AudioCuesheetEditor.Data.Options
@using AudioCuesheetEditor.Model.Utility
@using AudioCuesheetEditor.Data.Services
@using AudioCuesheetEditor.Services.IO
@using Microsoft.Extensions.Logging
@using Blazorise
@using Blazorise.Components
Expand Down

0 comments on commit a3f2cdd

Please sign in to comment.