diff --git a/Marechai.Database/Models/MarechaiContext.cs b/Marechai.Database/Models/MarechaiContext.cs index 5d7ab405..4e3794e3 100644 --- a/Marechai.Database/Models/MarechaiContext.cs +++ b/Marechai.Database/Models/MarechaiContext.cs @@ -23,8 +23,11 @@ // Copyright © 2003-2020 Natalia Portillo *******************************************************************************/ +using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.Extensions.Configuration; namespace Marechai.Database.Models @@ -92,8 +95,7 @@ namespace Marechai.Database.Models public virtual DbSet SoundSynths { get; set; } public virtual DbSet StorageByMachine { get; set; } public virtual DbSet StorageByOwnedMachine { get; set; } - - public virtual DbSet Audit { get; set; } + public virtual DbSet Audit { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { @@ -105,6 +107,85 @@ namespace Marechai.Database.Models optionsBuilder.UseMySql(configuration.GetConnectionString("DefaultConnection")).UseLazyLoadingProxies(); } + public async Task SaveChangesWithUserAsync(string userId) + { + ChangeTracker.DetectChanges(); + List audits = new List(); + + foreach(EntityEntry entry in ChangeTracker.Entries()) + { + if(entry.Entity is Audit || + entry.State == EntityState.Detached || + entry.State == EntityState.Unchanged) + continue; + + var audit = new Audit(); + audit.UserId = userId; + audit.Table = entry.Metadata.GetTableName(); + + Dictionary keys = new Dictionary(); + Dictionary olds = new Dictionary(); + Dictionary news = new Dictionary(); + List columns = new List(); + + foreach(PropertyEntry property in entry.Properties) + { + string propertyName = property.Metadata.Name; + string columnName = property.Metadata.GetColumnName(); + + if(property.Metadata.IsPrimaryKey()) + { + keys[propertyName] = property.CurrentValue; + + continue; + } + + switch(entry.State) + { + case EntityState.Deleted: + audit.Type = AuditType.Deleted; + olds[propertyName] = property.CurrentValue; + + break; + case EntityState.Modified: + if(property.IsModified) + { + audit.Type = AuditType.Updated; + news[propertyName] = property.CurrentValue; + olds[propertyName] = property.OriginalValue; + columns.Add(columnName); + } + + break; + + case EntityState.Added: + audit.Type = AuditType.Created; + news[propertyName] = property.CurrentValue; + + break; + } + } + + if(keys.Count > 0) + audit.Keys = keys; + + if(olds.Count > 0) + audit.OldValues = olds; + + if(news.Count > 0) + audit.NewValues = news; + + if(columns.Count > 0) + audit.AffectedColumns = columns; + + audits.Add(audit); + } + + await Audit.AddRangeAsync(audits); + + return await SaveChangesAsync(); + } + protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); @@ -1468,7 +1549,6 @@ namespace Marechai.Database.Models modelBuilder.Entity(entity => { - entity.HasIndex(d => d.UserId); entity.HasIndex(d => d.Table); entity.HasIndex(d => d.Type); }); diff --git a/Marechai/Marechai.csproj b/Marechai/Marechai.csproj index 51e9318a..1cf71455 100644 --- a/Marechai/Marechai.csproj +++ b/Marechai/Marechai.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 4.0.0.1586 + 4.0.0.1608 Canary Islands Computer Museum Copyright © 2003-2020 Natalia Portillo Canary Islands Computer Museum Website diff --git a/Marechai/Pages/Admin/Companies.razor b/Marechai/Pages/Admin/Companies.razor index 5dd9d50e..033e1ae1 100644 --- a/Marechai/Pages/Admin/Companies.razor +++ b/Marechai/Pages/Admin/Companies.razor @@ -26,9 +26,11 @@ } @page "/admin/companies" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L - +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Companies"]

@if (_companies is null) diff --git a/Marechai/Pages/Admin/Companies.razor.cs b/Marechai/Pages/Admin/Companies.razor.cs index 02757b88..425ad74b 100644 --- a/Marechai/Pages/Admin/Companies.razor.cs +++ b/Marechai/Pages/Admin/Companies.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -56,11 +57,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _companies = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_currentCompany.Id); + await Service.DeleteAsync(_currentCompany.Id, (await UserManager.GetUserAsync(authState.User)).Id); _companies = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Details/Company.razor b/Marechai/Pages/Admin/Details/Company.razor index 5a32f29b..34f9e581 100644 --- a/Marechai/Pages/Admin/Details/Company.razor +++ b/Marechai/Pages/Admin/Details/Company.razor @@ -29,6 +29,7 @@ @page "/admin/companies/edit/{Id:int}" @page "/admin/companies/create" @using Marechai.Database +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject Iso31661NumericService CountriesService @@ -37,6 +38,8 @@ @inject IWebHostEnvironment Host @inject IFileReaderService FileReaderService; @inject IJSRuntime JSRuntime +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")] diff --git a/Marechai/Pages/Admin/Details/Company.razor.cs b/Marechai/Pages/Admin/Details/Company.razor.cs index 63455f4a..f70f55a2 100644 --- a/Marechai/Pages/Admin/Details/Company.razor.cs +++ b/Marechai/Pages/Admin/Details/Company.razor.cs @@ -38,6 +38,7 @@ using Marechai.Shared; using Marechai.ViewModels; using Markdig; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; using Microsoft.JSInterop; using SkiaSharp; using Svg.Skia; @@ -48,6 +49,7 @@ namespace Marechai.Pages.Admin.Details { const int _maxUploadSize = 5 * 1048576; bool _addingDescription; + AuthenticationState _authState; List _companies; List _countries; bool _creating; @@ -118,6 +120,7 @@ namespace Marechai.Pages.Admin.Details _logos = await CompanyLogosService.GetByCompany(Id); _description = await Service.GetDescriptionAsync(Id); _selectedDescriptionTab = "markdown"; + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/companies/edit/", @@ -246,9 +249,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; @@ -325,7 +328,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await CompanyLogosService.DeleteAsync(_currentLogo.Id); + await CompanyLogosService.DeleteAsync(_currentLogo.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _logos = await CompanyLogosService.GetByCompany(Id); _deleteInProgress = false; @@ -360,7 +365,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await CompanyLogosService.ChangeYearAsync(_currentLogo.Id, _unknownLogoYear ? null : _currentLogoYear); + await CompanyLogosService.ChangeYearAsync(_currentLogo.Id, _unknownLogoYear ? null : _currentLogoYear, + (await UserManager.GetUserAsync(_authState.User)).Id); + _logos = await CompanyLogosService.GetByCompany(Id); _yearChangeInProgress = false; @@ -589,7 +596,8 @@ namespace Marechai.Pages.Admin.Details return; } - await CompanyLogosService.CreateAsync(Id, guid, _unknownLogoYear ? null : _currentLogoYear); + await CompanyLogosService.CreateAsync(Id, guid, _unknownLogoYear ? null : _currentLogoYear, + (await UserManager.GetUserAsync(_authState.User)).Id); _logos = await CompanyLogosService.GetByCompany(Id); @@ -652,7 +660,9 @@ namespace Marechai.Pages.Admin.Details _description.Html = Markdown.ToHtml(_description.Markdown, _pipeline); - await Service.CreateOrUpdateDescriptionAsync(Id, _description); + await Service.CreateOrUpdateDescriptionAsync(Id, _description, + (await UserManager.GetUserAsync(_authState.User)).Id); + _addingDescription = false; await CancelDescription(); } diff --git a/Marechai/Pages/Admin/Details/CreateMachinePhoto.razor.cs b/Marechai/Pages/Admin/Details/CreateMachinePhoto.razor.cs index edbe529f..b0c2f289 100644 --- a/Marechai/Pages/Admin/Details/CreateMachinePhoto.razor.cs +++ b/Marechai/Pages/Admin/Details/CreateMachinePhoto.razor.cs @@ -617,7 +617,7 @@ namespace Marechai.Pages.Admin.Details { try { - await Service.CreateAsync(_model); + await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _addToDatabase = true; } catch(Exception e) diff --git a/Marechai/Pages/Admin/Details/DocumentCompany.razor b/Marechai/Pages/Admin/Details/DocumentCompany.razor index 0e6df0dd..3713f895 100644 --- a/Marechai/Pages/Admin/Details/DocumentCompany.razor +++ b/Marechai/Pages/Admin/Details/DocumentCompany.razor @@ -28,10 +28,13 @@ @page "/admin/document_companies/details/{Id:int}" @page "/admin/document_companies/edit/{Id:int}" @page "/admin/document_companies/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Document company details"]


diff --git a/Marechai/Pages/Admin/Details/DocumentCompany.razor.cs b/Marechai/Pages/Admin/Details/DocumentCompany.razor.cs index caa83c14..c705e58b 100644 --- a/Marechai/Pages/Admin/Details/DocumentCompany.razor.cs +++ b/Marechai/Pages/Admin/Details/DocumentCompany.razor.cs @@ -30,11 +30,13 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class DocumentCompany { + AuthenticationState _authState; List _companies; bool _creating; bool _editing; @@ -63,6 +65,7 @@ namespace Marechai.Pages.Admin.Details _companies = await CompaniesService.GetAsync(); _model = _creating ? new DocumentCompanyViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/document_companies/edit/", @@ -116,9 +119,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/DocumentPerson.razor b/Marechai/Pages/Admin/Details/DocumentPerson.razor index 7faab7c7..55cc181c 100644 --- a/Marechai/Pages/Admin/Details/DocumentPerson.razor +++ b/Marechai/Pages/Admin/Details/DocumentPerson.razor @@ -28,10 +28,13 @@ @page "/admin/document_people/details/{Id:int}" @page "/admin/document_people/edit/{Id:int}" @page "/admin/document_people/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject PeopleService PeopleService @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Document person details"]


diff --git a/Marechai/Pages/Admin/Details/DocumentPerson.razor.cs b/Marechai/Pages/Admin/Details/DocumentPerson.razor.cs index 8786acc0..038a0e3d 100644 --- a/Marechai/Pages/Admin/Details/DocumentPerson.razor.cs +++ b/Marechai/Pages/Admin/Details/DocumentPerson.razor.cs @@ -30,11 +30,13 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class DocumentPerson { + AuthenticationState _authState; bool _creating; bool _editing; bool _loaded; @@ -63,8 +65,9 @@ namespace Marechai.Pages.Admin.Details !_creating) return; - _people = await PeopleService.GetAsync(); - _model = _creating ? new DocumentPersonViewModel() : await Service.GetAsync(Id); + _people = await PeopleService.GetAsync(); + _model = _creating ? new DocumentPersonViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/document_people/edit/", @@ -152,9 +155,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/Gpu.razor b/Marechai/Pages/Admin/Details/Gpu.razor index eb04b635..565b9ee3 100644 --- a/Marechai/Pages/Admin/Details/Gpu.razor +++ b/Marechai/Pages/Admin/Details/Gpu.razor @@ -28,12 +28,15 @@ @page "/admin/gpus/details/{Id:int}" @page "/admin/gpus/edit/{Id:int}" @page "/admin/gpus/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @inject NavigationManager NavigationManager @inject ResolutionsService ResolutionsService @inject ResolutionsByGpuService ResolutionsByGpuService +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Graphical processing unit details"]


diff --git a/Marechai/Pages/Admin/Details/Gpu.razor.cs b/Marechai/Pages/Admin/Details/Gpu.razor.cs index 2fc98025..8a4d773a 100644 --- a/Marechai/Pages/Admin/Details/Gpu.razor.cs +++ b/Marechai/Pages/Admin/Details/Gpu.razor.cs @@ -31,6 +31,7 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { @@ -38,6 +39,7 @@ namespace Marechai.Pages.Admin.Details { bool _addingResolution; int? _addingResolutionId; + AuthenticationState _authState; List _companies; bool _creating; ResolutionByGpuViewModel _currentResolution; @@ -81,6 +83,7 @@ namespace Marechai.Pages.Admin.Details _model = _creating ? new GpuViewModel() : await Service.GetAsync(Id); _resolutions = await ResolutionsService.GetAsync(); _gpuResolutions = await ResolutionsByGpuService.GetByGpu(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/gpus/edit/", StringComparison.InvariantCulture); @@ -172,9 +175,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; @@ -225,7 +228,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ResolutionsByGpuService.DeleteAsync(_currentResolution.Id); + await ResolutionsByGpuService.DeleteAsync(_currentResolution.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _gpuResolutions = await ResolutionsByGpuService.GetByGpu(Id); _deleteInProgress = false; @@ -273,7 +278,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ResolutionsByGpuService.CreateAsync(_addingResolutionId.Value, Id); + await ResolutionsByGpuService.CreateAsync(_addingResolutionId.Value, Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _gpuResolutions = await ResolutionsByGpuService.GetByGpu(Id); _addingResolution = false; diff --git a/Marechai/Pages/Admin/Details/InstructionSet.razor b/Marechai/Pages/Admin/Details/InstructionSet.razor index 5786ee31..72bef156 100644 --- a/Marechai/Pages/Admin/Details/InstructionSet.razor +++ b/Marechai/Pages/Admin/Details/InstructionSet.razor @@ -28,10 +28,13 @@ @page "/admin/instruction_sets/details/{Id:int}" @page "/admin/instruction_sets/edit/{Id:int}" @page "/admin/instruction_sets/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @attribute [Authorize(Roles = "UberAdmin, Admin")] @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider

@L["Instruction set details"]


diff --git a/Marechai/Pages/Admin/Details/InstructionSet.razor.cs b/Marechai/Pages/Admin/Details/InstructionSet.razor.cs index 542e83f7..6576868c 100644 --- a/Marechai/Pages/Admin/Details/InstructionSet.razor.cs +++ b/Marechai/Pages/Admin/Details/InstructionSet.razor.cs @@ -28,11 +28,13 @@ using System.Threading.Tasks; using Blazorise; using Marechai.Shared; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class InstructionSet { + AuthenticationState _authState; bool _creating; bool _editing; bool _loaded; @@ -55,7 +57,8 @@ namespace Marechai.Pages.Admin.Details !_creating) return; - _model = _creating ? new Database.Models.InstructionSet() : await Service.GetAsync(Id); + _model = _creating ? new Database.Models.InstructionSet() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/instruction_sets/edit/", @@ -93,9 +96,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/InstructionSetExtension.razor b/Marechai/Pages/Admin/Details/InstructionSetExtension.razor index 58a125d9..049b1278 100644 --- a/Marechai/Pages/Admin/Details/InstructionSetExtension.razor +++ b/Marechai/Pages/Admin/Details/InstructionSetExtension.razor @@ -28,10 +28,13 @@ @page "/admin/instruction_set_extensions/details/{Id:int}" @page "/admin/instruction_set_extensions/edit/{Id:int}" @page "/admin/instruction_set_extensions/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @attribute [Authorize(Roles = "UberAdmin, Admin")] @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider

@L["Instruction set extension details"]


diff --git a/Marechai/Pages/Admin/Details/InstructionSetExtension.razor.cs b/Marechai/Pages/Admin/Details/InstructionSetExtension.razor.cs index 01b1e709..95a367d3 100644 --- a/Marechai/Pages/Admin/Details/InstructionSetExtension.razor.cs +++ b/Marechai/Pages/Admin/Details/InstructionSetExtension.razor.cs @@ -28,11 +28,13 @@ using System.Threading.Tasks; using Blazorise; using Marechai.Shared; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class InstructionSetExtension { + AuthenticationState _authState; bool _creating; bool _editing; bool _loaded; @@ -55,7 +57,8 @@ namespace Marechai.Pages.Admin.Details !_creating) return; - _model = _creating ? new Database.Models.InstructionSetExtension() : await Service.GetAsync(Id); + _model = _creating ? new Database.Models.InstructionSetExtension() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/instruction_set_extensions/edit/", @@ -93,9 +96,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/License.razor b/Marechai/Pages/Admin/Details/License.razor index 69316858..7495b42f 100644 --- a/Marechai/Pages/Admin/Details/License.razor +++ b/Marechai/Pages/Admin/Details/License.razor @@ -28,9 +28,12 @@ @page "/admin/licenses/details/{Id:int}" @page "/admin/licenses/edit/{Id:int}" @page "/admin/licenses/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["License details"]


diff --git a/Marechai/Pages/Admin/Details/License.razor.cs b/Marechai/Pages/Admin/Details/License.razor.cs index 60852d90..ca78b48b 100644 --- a/Marechai/Pages/Admin/Details/License.razor.cs +++ b/Marechai/Pages/Admin/Details/License.razor.cs @@ -28,11 +28,13 @@ using System.Threading.Tasks; using Blazorise; using Marechai.Shared; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class License { + AuthenticationState _authState; bool _creating; bool _editing; bool _loaded; @@ -56,7 +58,8 @@ namespace Marechai.Pages.Admin.Details !_creating) return; - _model = _creating ? new Database.Models.License() : await Service.GetAsync(Id); + _model = _creating ? new Database.Models.License() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/licenses/edit/", @@ -119,9 +122,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/Machine.razor b/Marechai/Pages/Admin/Details/Machine.razor index 90ce5834..f357e9b1 100644 --- a/Marechai/Pages/Admin/Details/Machine.razor +++ b/Marechai/Pages/Admin/Details/Machine.razor @@ -29,6 +29,7 @@ @page "/admin/machines/edit/{Id:int}" @page "/admin/machines/create" @using Marechai.Database +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @@ -45,6 +46,8 @@ @inject ScreensByMachineService ScreensByMachineService @inject ScreensService ScreensService @inject MachinePhotosService MachinePhotosService +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Machine details"]


diff --git a/Marechai/Pages/Admin/Details/Machine.razor.cs b/Marechai/Pages/Admin/Details/Machine.razor.cs index 25c656b7..7557487c 100644 --- a/Marechai/Pages/Admin/Details/Machine.razor.cs +++ b/Marechai/Pages/Admin/Details/Machine.razor.cs @@ -32,6 +32,7 @@ using Marechai.Database; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { @@ -55,6 +56,7 @@ namespace Marechai.Pages.Admin.Details int _addingStorageInterface; long? _addingStorageSize; int _addingStorageType; + AuthenticationState _authState; List _companies; List _cpus; bool _creating; @@ -138,6 +140,7 @@ namespace Marechai.Pages.Admin.Details _machineStorage = await StorageByMachineService.GetByMachine(Id); _machineScreens = await ScreensByMachineService.GetByMachine(Id); _photos = await MachinePhotosService.GetGuidsByMachineAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/machines/edit/", @@ -200,9 +203,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; @@ -260,7 +263,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await GpusByMachineService.DeleteAsync(_currentGpuByMachine.Id); + await GpusByMachineService.DeleteAsync(_currentGpuByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineGpus = await GpusByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -317,7 +322,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await GpusByMachineService.CreateAsync(_addingGpuId.Value, Id); + await GpusByMachineService.CreateAsync(_addingGpuId.Value, Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineGpus = await GpusByMachineService.GetByMachine(Id); _addingGpu = false; @@ -354,7 +361,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await SoundSynthsByMachineService.DeleteAsync(_currentSoundByMachine.Id); + await SoundSynthsByMachineService.DeleteAsync(_currentSoundByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineSound = await SoundSynthsByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -396,7 +405,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await SoundSynthsByMachineService.CreateAsync(_addingSoundId.Value, Id); + await SoundSynthsByMachineService.CreateAsync(_addingSoundId.Value, Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineSound = await SoundSynthsByMachineService.GetByMachine(Id); _addingSound = false; @@ -436,7 +447,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ProcessorsByMachineService.DeleteAsync(_currentCpuByMachine.Id); + await ProcessorsByMachineService.DeleteAsync(_currentCpuByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineCpus = await ProcessorsByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -481,7 +494,8 @@ namespace Marechai.Pages.Admin.Details await Task.Yield(); await ProcessorsByMachineService.CreateAsync(_addingCpuId.Value, Id, - _unknownProcessorSpeed ? null : _addingProcessorSpeed); + _unknownProcessorSpeed ? null : _addingProcessorSpeed, + (await UserManager.GetUserAsync(_authState.User)).Id); _machineCpus = await ProcessorsByMachineService.GetByMachine(Id); @@ -531,7 +545,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await MemoriesByMachineService.DeleteAsync(_currentMemoryByMachine.Id); + await MemoriesByMachineService.DeleteAsync(_currentMemoryByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineMemories = await MemoriesByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -572,7 +588,8 @@ namespace Marechai.Pages.Admin.Details await MemoriesByMachineService.CreateAsync(Id, (MemoryType)_addingMemoryType, (MemoryUsage)_addingMemoryUsage, _unknownMemorySize ? null : _addingMemorySize, - _unknownMemorySpeed ? null : _addingMemorySpeed); + _unknownMemorySpeed ? null : _addingMemorySpeed, + (await UserManager.GetUserAsync(_authState.User)).Id); _machineMemories = await MemoriesByMachineService.GetByMachine(Id); @@ -633,7 +650,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await StorageByMachineService.DeleteAsync(_currentStorageByMachine.Id); + await StorageByMachineService.DeleteAsync(_currentStorageByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineStorage = await StorageByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -671,7 +690,8 @@ namespace Marechai.Pages.Admin.Details await StorageByMachineService.CreateAsync(Id, (StorageType)_addingStorageType, (StorageInterface)_addingStorageInterface, - _unknownStorageSize ? null : _addingStorageSize); + _unknownStorageSize ? null : _addingStorageSize, + (await UserManager.GetUserAsync(_authState.User)).Id); _machineStorage = await StorageByMachineService.GetByMachine(Id); @@ -717,7 +737,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ScreensByMachineService.DeleteAsync(_currentScreenByMachine.Id); + await ScreensByMachineService.DeleteAsync(_currentScreenByMachine.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineScreens = await ScreensByMachineService.GetByMachine(Id); _deleteInProgress = false; @@ -759,7 +781,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ScreensByMachineService.CreateAsync(_addingScreenId.Value, Id); + await ScreensByMachineService.CreateAsync(_addingScreenId.Value, Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _machineScreens = await ScreensByMachineService.GetByMachine(Id); _addingScreen = false; diff --git a/Marechai/Pages/Admin/Details/MachineFamily.razor b/Marechai/Pages/Admin/Details/MachineFamily.razor index 5f06a00d..a99b5a89 100644 --- a/Marechai/Pages/Admin/Details/MachineFamily.razor +++ b/Marechai/Pages/Admin/Details/MachineFamily.razor @@ -28,10 +28,13 @@ @page "/admin/machine_families/details/{Id:int}" @page "/admin/machine_families/edit/{Id:int}" @page "/admin/machine_families/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Machine family details"]


diff --git a/Marechai/Pages/Admin/Details/MachineFamily.razor.cs b/Marechai/Pages/Admin/Details/MachineFamily.razor.cs index 20f283b5..776c78b6 100644 --- a/Marechai/Pages/Admin/Details/MachineFamily.razor.cs +++ b/Marechai/Pages/Admin/Details/MachineFamily.razor.cs @@ -30,11 +30,13 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class MachineFamily { + AuthenticationState _authState; List _companies; bool _creating; bool _editing; @@ -60,6 +62,7 @@ namespace Marechai.Pages.Admin.Details _companies = await CompaniesService.GetAsync(); _model = _creating ? new MachineFamilyViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/machine_families/edit/", @@ -96,9 +99,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/MachinePhoto.razor b/Marechai/Pages/Admin/Details/MachinePhoto.razor index 2959f385..0d4e4947 100644 --- a/Marechai/Pages/Admin/Details/MachinePhoto.razor +++ b/Marechai/Pages/Admin/Details/MachinePhoto.razor @@ -34,7 +34,7 @@ @inject NavigationManager NavigationManager @inject LicensesService LicensesService @inject Microsoft.AspNetCore.Identity.UserManager UserManager - +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Machine photo details"]


diff --git a/Marechai/Pages/Admin/Details/MachinePhoto.razor.cs b/Marechai/Pages/Admin/Details/MachinePhoto.razor.cs index 6118f8bc..73a4b808 100644 --- a/Marechai/Pages/Admin/Details/MachinePhoto.razor.cs +++ b/Marechai/Pages/Admin/Details/MachinePhoto.razor.cs @@ -32,6 +32,7 @@ using Marechai.Database.Models; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; using Orientation = Marechai.Database.Orientation; namespace Marechai.Pages.Admin.Details @@ -39,6 +40,7 @@ namespace Marechai.Pages.Admin.Details public partial class MachinePhoto { const int _maxUploadSize = 25 * 1048576; + AuthenticationState _authState; bool _editing; List _licenses; bool _loaded; @@ -272,8 +274,9 @@ namespace Marechai.Pages.Admin.Details if(Id == Guid.Empty) return; - _model = await Service.GetAsync(Id); - _licenses = await LicensesService.GetAsync(); + _model = await Service.GetAsync(Id); + _licenses = await LicensesService.GetAsync(); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/machines/photo/edit/", StringComparison.InvariantCulture); @@ -341,7 +344,7 @@ namespace Marechai.Pages.Admin.Details async void OnSaveClicked() { - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _model = await Service.GetAsync(Id); SetCheckboxes(); diff --git a/Marechai/Pages/Admin/Details/Person.razor b/Marechai/Pages/Admin/Details/Person.razor index e0820a0b..fab94dd9 100644 --- a/Marechai/Pages/Admin/Details/Person.razor +++ b/Marechai/Pages/Admin/Details/Person.razor @@ -28,10 +28,13 @@ @page "/admin/people/details/{Id:int}" @page "/admin/people/edit/{Id:int}" @page "/admin/people/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject Iso31661NumericService CountriesService @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Person details"]


diff --git a/Marechai/Pages/Admin/Details/Person.razor.cs b/Marechai/Pages/Admin/Details/Person.razor.cs index b03170d4..a1cb6e42 100644 --- a/Marechai/Pages/Admin/Details/Person.razor.cs +++ b/Marechai/Pages/Admin/Details/Person.razor.cs @@ -31,11 +31,13 @@ using Marechai.Database.Models; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class Person { + AuthenticationState _authState; List _countries; bool _creating; bool _editing; @@ -69,6 +71,7 @@ namespace Marechai.Pages.Admin.Details _countries = await CountriesService.GetAsync(); _model = _creating ? new PersonViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/people/edit/", @@ -185,9 +188,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/Processor.razor b/Marechai/Pages/Admin/Details/Processor.razor index 7fe97840..150b36c9 100644 --- a/Marechai/Pages/Admin/Details/Processor.razor +++ b/Marechai/Pages/Admin/Details/Processor.razor @@ -28,6 +28,7 @@ @page "/admin/processors/details/{Id:int}" @page "/admin/processors/edit/{Id:int}" @page "/admin/processors/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @@ -35,6 +36,8 @@ @inject NavigationManager NavigationManager @inject InstructionSetExtensionsByProcessorService InstructionSetExtensionsByProcessorService @inject InstructionSetExtensionsService InstructionSetExtensionsService +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Processor details"]


diff --git a/Marechai/Pages/Admin/Details/Processor.razor.cs b/Marechai/Pages/Admin/Details/Processor.razor.cs index c4ff7d62..bb342443 100644 --- a/Marechai/Pages/Admin/Details/Processor.razor.cs +++ b/Marechai/Pages/Admin/Details/Processor.razor.cs @@ -31,27 +31,27 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class Processor { - bool _addingExtension; - int? _addingExtensionId; - List _companies; - bool _creating; - - InstructionSetExtensionByProcessorViewModel _currentInstructionByMachine; - bool _deleteInProgress; - string _deleteText; - string _deleteTitle; - bool _editing; - Modal _frmDelete; - List _instructionSetExtensions; - List _instructionSets; - bool _loaded; - ProcessorViewModel _model; - + bool _addingExtension; + int? _addingExtensionId; + AuthenticationState _authState; + List _companies; + bool _creating; + InstructionSetExtensionByProcessorViewModel _currentInstructionByMachine; + bool _deleteInProgress; + string _deleteText; + string _deleteTitle; + bool _editing; + Modal _frmDelete; + List _instructionSetExtensions; + List _instructionSets; + bool _loaded; + ProcessorViewModel _model; List _processorExtensions; bool _prototype; bool _savingExtension; @@ -101,6 +101,7 @@ namespace Marechai.Pages.Admin.Details _model = _creating ? new ProcessorViewModel() : await Service.GetAsync(Id); _instructionSetExtensions = await InstructionSetExtensionsService.GetAsync(); _processorExtensions = await InstructionSetExtensionsByProcessorService.GetByProcessor(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/processors/edit/", @@ -289,9 +290,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; @@ -350,7 +351,10 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await InstructionSetExtensionsByProcessorService.DeleteAsync(_currentInstructionByMachine.Id); + await InstructionSetExtensionsByProcessorService.DeleteAsync(_currentInstructionByMachine.Id, + (await UserManager. + GetUserAsync(_authState.User)).Id); + _processorExtensions = await InstructionSetExtensionsByProcessorService.GetByProcessor(Id); _deleteInProgress = false; @@ -398,7 +402,10 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await InstructionSetExtensionsByProcessorService.CreateAsync(Id, _addingExtensionId.Value); + await InstructionSetExtensionsByProcessorService.CreateAsync(Id, _addingExtensionId.Value, + (await UserManager. + GetUserAsync(_authState.User)).Id); + _processorExtensions = await InstructionSetExtensionsByProcessorService.GetByProcessor(Id); _addingExtension = false; diff --git a/Marechai/Pages/Admin/Details/Resolution.razor b/Marechai/Pages/Admin/Details/Resolution.razor index 874d6455..3ae2c1dc 100644 --- a/Marechai/Pages/Admin/Details/Resolution.razor +++ b/Marechai/Pages/Admin/Details/Resolution.razor @@ -28,9 +28,12 @@ @page "/admin/resolutions/details/{Id:int}" @page "/admin/resolutions/edit/{Id:int}" @page "/admin/resolutions/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Resolution details"]


diff --git a/Marechai/Pages/Admin/Details/Resolution.razor.cs b/Marechai/Pages/Admin/Details/Resolution.razor.cs index b6dcd648..146d9f81 100644 --- a/Marechai/Pages/Admin/Details/Resolution.razor.cs +++ b/Marechai/Pages/Admin/Details/Resolution.razor.cs @@ -29,11 +29,13 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class Resolution { + AuthenticationState _authState; bool _creating; bool _editing; bool _loaded; @@ -57,7 +59,8 @@ namespace Marechai.Pages.Admin.Details !_creating) return; - _model = _creating ? new ResolutionViewModel() : await Service.GetAsync(Id); + _model = _creating ? new ResolutionViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/resolutions/edit/", @@ -111,9 +114,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/Details/Screen.razor b/Marechai/Pages/Admin/Details/Screen.razor index 78cb2fe5..dc450c99 100644 --- a/Marechai/Pages/Admin/Details/Screen.razor +++ b/Marechai/Pages/Admin/Details/Screen.razor @@ -28,12 +28,14 @@ @page "/admin/screens/details/{Id:int}" @page "/admin/screens/edit/{Id:int}" @page "/admin/screens/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject ResolutionsService ResolutionsService @inject NavigationManager NavigationManager @inject ResolutionsByScreenService ResolutionsByScreenService - +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Screen details"]


diff --git a/Marechai/Pages/Admin/Details/Screen.razor.cs b/Marechai/Pages/Admin/Details/Screen.razor.cs index 66e5f34f..0258c704 100644 --- a/Marechai/Pages/Admin/Details/Screen.razor.cs +++ b/Marechai/Pages/Admin/Details/Screen.razor.cs @@ -31,6 +31,7 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { @@ -38,6 +39,7 @@ namespace Marechai.Pages.Admin.Details { bool _addingResolution; int? _addingResolutionId; + AuthenticationState _authState; bool _creating; ResolutionByScreenViewModel _currentResolution; bool _deleteInProgress; @@ -74,6 +76,7 @@ namespace Marechai.Pages.Admin.Details _resolutions = await ResolutionsService.GetAsync(); _model = _creating ? new ScreenViewModel() : await Service.GetAsync(Id); _screenResolutions = await ResolutionsByScreenService.GetByScreen(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/screens/edit/", @@ -139,9 +142,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; @@ -180,7 +183,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ResolutionsByScreenService.DeleteAsync(_currentResolution.Id); + await ResolutionsByScreenService.DeleteAsync(_currentResolution.Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _screenResolutions = await ResolutionsByScreenService.GetByScreen(Id); _deleteInProgress = false; @@ -228,7 +233,9 @@ namespace Marechai.Pages.Admin.Details // Yield thread to let UI to update await Task.Yield(); - await ResolutionsByScreenService.CreateAsync(_addingResolutionId.Value, Id); + await ResolutionsByScreenService.CreateAsync(_addingResolutionId.Value, Id, + (await UserManager.GetUserAsync(_authState.User)).Id); + _screenResolutions = await ResolutionsByScreenService.GetByScreen(Id); _addingResolution = false; diff --git a/Marechai/Pages/Admin/Details/SoundSynth.razor b/Marechai/Pages/Admin/Details/SoundSynth.razor index e5dc3a82..2718531a 100644 --- a/Marechai/Pages/Admin/Details/SoundSynth.razor +++ b/Marechai/Pages/Admin/Details/SoundSynth.razor @@ -28,10 +28,13 @@ @page "/admin/sound_synths/details/{Id:int}" @page "/admin/sound_synths/edit/{Id:int}" @page "/admin/sound_synths/create" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L @inject CompaniesService CompaniesService @inject NavigationManager NavigationManager +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Sound synthesizer details"]


diff --git a/Marechai/Pages/Admin/Details/SoundSynth.razor.cs b/Marechai/Pages/Admin/Details/SoundSynth.razor.cs index 8ebca49f..262cc000 100644 --- a/Marechai/Pages/Admin/Details/SoundSynth.razor.cs +++ b/Marechai/Pages/Admin/Details/SoundSynth.razor.cs @@ -30,11 +30,13 @@ using Blazorise; using Marechai.Shared; using Marechai.ViewModels; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin.Details { public partial class SoundSynth { + AuthenticationState _authState; List _companies; bool _creating; bool _editing; @@ -69,6 +71,7 @@ namespace Marechai.Pages.Admin.Details _companies = await CompaniesService.GetAsync(); _model = _creating ? new SoundSynthViewModel() : await Service.GetAsync(Id); + _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant(). StartsWith("admin/sound_synths/edit/", @@ -167,9 +170,9 @@ namespace Marechai.Pages.Admin.Details return; if(_creating) - Id = await Service.CreateAsync(_model); + Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); else - await Service.UpdateAsync(_model); + await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id); _editing = false; _creating = false; diff --git a/Marechai/Pages/Admin/DocumentCompanies.razor b/Marechai/Pages/Admin/DocumentCompanies.razor index a251a2f0..8430034f 100644 --- a/Marechai/Pages/Admin/DocumentCompanies.razor +++ b/Marechai/Pages/Admin/DocumentCompanies.razor @@ -26,8 +26,11 @@ } @page "/admin/document_companies" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Document companies"]

@if (_companies is null) diff --git a/Marechai/Pages/Admin/DocumentCompanies.razor.cs b/Marechai/Pages/Admin/DocumentCompanies.razor.cs index 11726b15..5d509819 100644 --- a/Marechai/Pages/Admin/DocumentCompanies.razor.cs +++ b/Marechai/Pages/Admin/DocumentCompanies.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -56,11 +57,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _companies = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_currentCompany.Id); + await Service.DeleteAsync(_currentCompany.Id, (await UserManager.GetUserAsync(authState.User)).Id); _companies = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/DocumentPeople.razor b/Marechai/Pages/Admin/DocumentPeople.razor index f1eba6f8..cd3b2f7a 100644 --- a/Marechai/Pages/Admin/DocumentPeople.razor +++ b/Marechai/Pages/Admin/DocumentPeople.razor @@ -26,8 +26,11 @@ } @page "/admin/document_people" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Document companies"]

@if (_people is null) diff --git a/Marechai/Pages/Admin/DocumentPeople.razor.cs b/Marechai/Pages/Admin/DocumentPeople.razor.cs index 74a840af..8bb68f9e 100644 --- a/Marechai/Pages/Admin/DocumentPeople.razor.cs +++ b/Marechai/Pages/Admin/DocumentPeople.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _people = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_person.Id); + await Service.DeleteAsync(_person.Id, (await UserManager.GetUserAsync(authState.User)).Id); _people = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Gpus.razor b/Marechai/Pages/Admin/Gpus.razor index a11cf86c..0cd3c64a 100644 --- a/Marechai/Pages/Admin/Gpus.razor +++ b/Marechai/Pages/Admin/Gpus.razor @@ -26,8 +26,11 @@ } @page "/admin/gpus" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Graphics Processing Units"]

@if (_gpus is null) diff --git a/Marechai/Pages/Admin/Gpus.razor.cs b/Marechai/Pages/Admin/Gpus.razor.cs index 6878268d..55dc0836 100644 --- a/Marechai/Pages/Admin/Gpus.razor.cs +++ b/Marechai/Pages/Admin/Gpus.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _gpus = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_gpu.Id); + await Service.DeleteAsync(_gpu.Id, (await UserManager.GetUserAsync(authState.User)).Id); _gpus = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/InstructionSetExtensions.razor b/Marechai/Pages/Admin/InstructionSetExtensions.razor index 377fa802..d51259a1 100644 --- a/Marechai/Pages/Admin/InstructionSetExtensions.razor +++ b/Marechai/Pages/Admin/InstructionSetExtensions.razor @@ -26,8 +26,11 @@ } @page "/admin/instruction_set_extensions" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Instruction set extensions"]

@if (_extensions is null) diff --git a/Marechai/Pages/Admin/InstructionSetExtensions.razor.cs b/Marechai/Pages/Admin/InstructionSetExtensions.razor.cs index 1495a1ae..90c284ea 100644 --- a/Marechai/Pages/Admin/InstructionSetExtensions.razor.cs +++ b/Marechai/Pages/Admin/InstructionSetExtensions.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.Database.Models; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _extensions = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_extension.Id); + await Service.DeleteAsync(_extension.Id, (await UserManager.GetUserAsync(authState.User)).Id); _extensions = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/InstructionSets.razor b/Marechai/Pages/Admin/InstructionSets.razor index e97b619e..6244c51a 100644 --- a/Marechai/Pages/Admin/InstructionSets.razor +++ b/Marechai/Pages/Admin/InstructionSets.razor @@ -26,8 +26,11 @@ } @page "/admin/instruction_sets" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Instruction sets"]

@if (_instructionSets is null) diff --git a/Marechai/Pages/Admin/InstructionSets.razor.cs b/Marechai/Pages/Admin/InstructionSets.razor.cs index 28f3aba0..aee41a40 100644 --- a/Marechai/Pages/Admin/InstructionSets.razor.cs +++ b/Marechai/Pages/Admin/InstructionSets.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.Database.Models; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _instructionSets = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_instructionSet.Id); + await Service.DeleteAsync(_instructionSet.Id, (await UserManager.GetUserAsync(authState.User)).Id); _instructionSets = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Licenses.razor b/Marechai/Pages/Admin/Licenses.razor index 433586c6..74d39bf1 100644 --- a/Marechai/Pages/Admin/Licenses.razor +++ b/Marechai/Pages/Admin/Licenses.razor @@ -26,8 +26,11 @@ } @page "/admin/licenses" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Licenses"]

@if (_licenses is null) diff --git a/Marechai/Pages/Admin/Licenses.razor.cs b/Marechai/Pages/Admin/Licenses.razor.cs index 7c30ec85..0766c046 100644 --- a/Marechai/Pages/Admin/Licenses.razor.cs +++ b/Marechai/Pages/Admin/Licenses.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.Database.Models; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _licenses = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_license.Id); + await Service.DeleteAsync(_license.Id, (await UserManager.GetUserAsync(authState.User)).Id); _licenses = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/MachineFamilies.razor b/Marechai/Pages/Admin/MachineFamilies.razor index 04eeeb65..4da5aecd 100644 --- a/Marechai/Pages/Admin/MachineFamilies.razor +++ b/Marechai/Pages/Admin/MachineFamilies.razor @@ -26,8 +26,11 @@ } @page "/admin/machine_families" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Machine families"]

@if (_machineFamilies is null) diff --git a/Marechai/Pages/Admin/MachineFamilies.razor.cs b/Marechai/Pages/Admin/MachineFamilies.razor.cs index d706a644..2ca32737 100644 --- a/Marechai/Pages/Admin/MachineFamilies.razor.cs +++ b/Marechai/Pages/Admin/MachineFamilies.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _machineFamilies = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_machineFamily.Id); + await Service.DeleteAsync(_machineFamily.Id, (await UserManager.GetUserAsync(authState.User)).Id); _machineFamilies = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Machines.razor b/Marechai/Pages/Admin/Machines.razor index 462c64bd..f679c46b 100644 --- a/Marechai/Pages/Admin/Machines.razor +++ b/Marechai/Pages/Admin/Machines.razor @@ -26,8 +26,11 @@ } @page "/admin/machines" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Machines"]

@if (_machines is null) diff --git a/Marechai/Pages/Admin/Machines.razor.cs b/Marechai/Pages/Admin/Machines.razor.cs index 3368009b..8f1062dd 100644 --- a/Marechai/Pages/Admin/Machines.razor.cs +++ b/Marechai/Pages/Admin/Machines.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _machines = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_machine.Id); + await Service.DeleteAsync(_machine.Id, (await UserManager.GetUserAsync(authState.User)).Id); _machines = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/News.razor b/Marechai/Pages/Admin/News.razor index 5cb88113..8e5f1af5 100644 --- a/Marechai/Pages/Admin/News.razor +++ b/Marechai/Pages/Admin/News.razor @@ -26,8 +26,11 @@ } @page "/admin/news" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["News"]

@if (_news is null) diff --git a/Marechai/Pages/Admin/News.razor.cs b/Marechai/Pages/Admin/News.razor.cs index 40a27375..6541fce8 100644 --- a/Marechai/Pages/Admin/News.razor.cs +++ b/Marechai/Pages/Admin/News.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -55,11 +56,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _news = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_currentNews.Id); + await Service.DeleteAsync(_currentNews.Id, (await UserManager.GetUserAsync(authState.User)).Id); _news = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/People.razor b/Marechai/Pages/Admin/People.razor index 7c6dce1d..7b610b92 100644 --- a/Marechai/Pages/Admin/People.razor +++ b/Marechai/Pages/Admin/People.razor @@ -26,8 +26,11 @@ } @page "/admin/people" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["People"]

@if (_people is null) diff --git a/Marechai/Pages/Admin/People.razor.cs b/Marechai/Pages/Admin/People.razor.cs index 215a89e7..67525b3c 100644 --- a/Marechai/Pages/Admin/People.razor.cs +++ b/Marechai/Pages/Admin/People.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _people = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_person.Id); + await Service.DeleteAsync(_person.Id, (await UserManager.GetUserAsync(authState.User)).Id); _people = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Processors.razor b/Marechai/Pages/Admin/Processors.razor index a7ff134e..6376fdcf 100644 --- a/Marechai/Pages/Admin/Processors.razor +++ b/Marechai/Pages/Admin/Processors.razor @@ -26,8 +26,11 @@ } @page "/admin/processors" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Processors"]

@if (_processors is null) diff --git a/Marechai/Pages/Admin/Processors.razor.cs b/Marechai/Pages/Admin/Processors.razor.cs index 0039ff43..e5e3d65e 100644 --- a/Marechai/Pages/Admin/Processors.razor.cs +++ b/Marechai/Pages/Admin/Processors.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _processors = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_processor.Id); + await Service.DeleteAsync(_processor.Id, (await UserManager.GetUserAsync(authState.User)).Id); _processors = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Resolutions.razor b/Marechai/Pages/Admin/Resolutions.razor index 97dc8342..df3a65ff 100644 --- a/Marechai/Pages/Admin/Resolutions.razor +++ b/Marechai/Pages/Admin/Resolutions.razor @@ -26,8 +26,11 @@ } @page "/admin/resolutions" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Resolutions"]

@if (_resolutions is null) diff --git a/Marechai/Pages/Admin/Resolutions.razor.cs b/Marechai/Pages/Admin/Resolutions.razor.cs index 0473a850..38ba1133 100644 --- a/Marechai/Pages/Admin/Resolutions.razor.cs +++ b/Marechai/Pages/Admin/Resolutions.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _resolutions = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_resolution.Id); + await Service.DeleteAsync(_resolution.Id, (await UserManager.GetUserAsync(authState.User)).Id); _resolutions = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/Screens.razor b/Marechai/Pages/Admin/Screens.razor index bb824ebd..9be68780 100644 --- a/Marechai/Pages/Admin/Screens.razor +++ b/Marechai/Pages/Admin/Screens.razor @@ -26,8 +26,11 @@ } @page "/admin/screens" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Screens"]

@if (_screens is null) diff --git a/Marechai/Pages/Admin/Screens.razor.cs b/Marechai/Pages/Admin/Screens.razor.cs index 5c8bd821..50e7c548 100644 --- a/Marechai/Pages/Admin/Screens.razor.cs +++ b/Marechai/Pages/Admin/Screens.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _screens = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_screen.Id); + await Service.DeleteAsync(_screen.Id, (await UserManager.GetUserAsync(authState.User)).Id); _screens = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Pages/Admin/SoundSynths.razor b/Marechai/Pages/Admin/SoundSynths.razor index 587218fc..c1c0f9cb 100644 --- a/Marechai/Pages/Admin/SoundSynths.razor +++ b/Marechai/Pages/Admin/SoundSynths.razor @@ -26,8 +26,11 @@ } @page "/admin/sound_synths" +@using Marechai.Database.Models @inherits OwningComponentBase @inject IStringLocalizer L +@inject Microsoft.AspNetCore.Identity.UserManager UserManager +@inject AuthenticationStateProvider AuthenticationStateProvider @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Sound synthesizers"]

@if (_soundSynths is null) diff --git a/Marechai/Pages/Admin/SoundSynths.razor.cs b/Marechai/Pages/Admin/SoundSynths.razor.cs index 6eb05bee..b007d171 100644 --- a/Marechai/Pages/Admin/SoundSynths.razor.cs +++ b/Marechai/Pages/Admin/SoundSynths.razor.cs @@ -28,6 +28,7 @@ using System.Linq; using System.Threading.Tasks; using Blazorise; using Marechai.ViewModels; +using Microsoft.AspNetCore.Components.Authorization; namespace Marechai.Pages.Admin { @@ -53,11 +54,12 @@ namespace Marechai.Pages.Admin _deleteInProgress = true; _soundSynths = null; + AuthenticationState authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); // Yield thread to let UI to update await Task.Yield(); - await Service.DeleteAsync(_soundSynth.Id); + await Service.DeleteAsync(_soundSynth.Id, (await UserManager.GetUserAsync(authState.User)).Id); _soundSynths = await Service.GetAsync(); _deleteInProgress = false; diff --git a/Marechai/Services/CompaniesService.cs b/Marechai/Services/CompaniesService.cs index 7143a34f..d0490faf 100644 --- a/Marechai/Services/CompaniesService.cs +++ b/Marechai/Services/CompaniesService.cs @@ -86,7 +86,7 @@ namespace Marechai.Services Country = c.Country.Name }).FirstOrDefaultAsync(); - public async Task UpdateAsync(CompanyViewModel viewModel) + public async Task UpdateAsync(CompanyViewModel viewModel, string userId) { Company model = await _context.Companies.FindAsync(viewModel.Id); @@ -107,10 +107,10 @@ namespace Marechai.Services model.Province = viewModel.Province; model.PostalCode = viewModel.PostalCode; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(CompanyViewModel viewModel) + public async Task CreateAsync(CompanyViewModel viewModel, string userId) { var model = new Company { @@ -122,7 +122,7 @@ namespace Marechai.Services }; await _context.Companies.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } @@ -186,7 +186,7 @@ namespace Marechai.Services Name = c.Name }).ToListAsync(); - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Company item = await _context.Companies.FindAsync(id); @@ -195,7 +195,7 @@ namespace Marechai.Services _context.Companies.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } public async Task GetDescriptionAsync(int id) => await _context. @@ -219,7 +219,8 @@ namespace Marechai.Services }). FirstOrDefaultAsync(); - public async Task CreateOrUpdateDescriptionAsync(int id, CompanyDescriptionViewModel description) + public async Task CreateOrUpdateDescriptionAsync(int id, CompanyDescriptionViewModel description, + string userId) { CompanyDescription current = await _context.CompanyDescriptions.FirstOrDefaultAsync(d => d.CompanyId == id); @@ -238,7 +239,7 @@ namespace Marechai.Services current.Text = description.Markdown; } - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return current.Id; } diff --git a/Marechai/Services/CompanyLogosService.cs b/Marechai/Services/CompanyLogosService.cs index 57906d8a..09c200ca 100644 --- a/Marechai/Services/CompanyLogosService.cs +++ b/Marechai/Services/CompanyLogosService.cs @@ -50,7 +50,7 @@ namespace Marechai.Services public async Task> GetByCompany(int companyId) => await _context.CompanyLogos.Where(l => l.CompanyId == companyId).OrderBy(l => l.Year).ToListAsync(); - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { CompanyLogo logo = await _context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync(); @@ -58,7 +58,7 @@ namespace Marechai.Services return; _context.CompanyLogos.Remove(logo); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); if(File.Exists(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg"))) File.Delete(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg")); @@ -100,7 +100,7 @@ namespace Marechai.Services File.Delete(Path.Combine(_webRootPath, "assets/logos/thumbs/png/3x", logo.Guid + ".png")); } - public async Task ChangeYearAsync(int id, int? year) + public async Task ChangeYearAsync(int id, int? year, string userId) { CompanyLogo logo = await _context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync(); @@ -108,10 +108,10 @@ namespace Marechai.Services return; logo.Year = year; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int companyId, Guid guid, int? year) + public async Task CreateAsync(int companyId, Guid guid, int? year, string userId) { var logo = new CompanyLogo { @@ -119,7 +119,7 @@ namespace Marechai.Services }; await _context.CompanyLogos.AddAsync(logo); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return logo.Id; } diff --git a/Marechai/Services/DocumentCompaniesService.cs b/Marechai/Services/DocumentCompaniesService.cs index 1af99756..52ec28b6 100644 --- a/Marechai/Services/DocumentCompaniesService.cs +++ b/Marechai/Services/DocumentCompaniesService.cs @@ -53,7 +53,7 @@ namespace Marechai.Services Id = d.Id, Name = d.Name, CompanyId = d.CompanyId }).FirstOrDefaultAsync(); - public async Task UpdateAsync(DocumentCompanyViewModel viewModel) + public async Task UpdateAsync(DocumentCompanyViewModel viewModel, string userId) { DocumentCompany model = await _context.DocumentCompanies.FindAsync(viewModel.Id); @@ -63,10 +63,10 @@ namespace Marechai.Services model.CompanyId = viewModel.CompanyId; model.Name = viewModel.Name; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(DocumentCompanyViewModel viewModel) + public async Task CreateAsync(DocumentCompanyViewModel viewModel, string userId) { var model = new DocumentCompany { @@ -74,12 +74,12 @@ namespace Marechai.Services }; await _context.DocumentCompanies.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { DocumentCompany item = await _context.DocumentCompanies.FindAsync(id); @@ -88,7 +88,7 @@ namespace Marechai.Services _context.DocumentCompanies.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/DocumentPeopleService.cs b/Marechai/Services/DocumentPeopleService.cs index af1e1073..bc436d84 100644 --- a/Marechai/Services/DocumentPeopleService.cs +++ b/Marechai/Services/DocumentPeopleService.cs @@ -56,7 +56,7 @@ namespace Marechai.Services DisplayName = d.DisplayName, PersonId = d.PersonId }).FirstOrDefaultAsync(); - public async Task UpdateAsync(DocumentPersonViewModel viewModel) + public async Task UpdateAsync(DocumentPersonViewModel viewModel, string userId) { DocumentPerson model = await _context.DocumentPeople.FindAsync(viewModel.Id); @@ -69,10 +69,10 @@ namespace Marechai.Services model.DisplayName = viewModel.DisplayName; model.PersonId = viewModel.PersonId; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(DocumentPersonViewModel viewModel) + public async Task CreateAsync(DocumentPersonViewModel viewModel, string userId) { var model = new DocumentPerson { @@ -81,12 +81,12 @@ namespace Marechai.Services }; await _context.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { DocumentPerson item = await _context.DocumentPeople.FindAsync(id); @@ -95,7 +95,7 @@ namespace Marechai.Services _context.DocumentPeople.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/GpusByMachineService.cs b/Marechai/Services/GpusByMachineService.cs index 6c97b2e6..a954f9d8 100644 --- a/Marechai/Services/GpusByMachineService.cs +++ b/Marechai/Services/GpusByMachineService.cs @@ -45,7 +45,7 @@ namespace Marechai.Services MachineId = g.MachineId }).OrderBy(g => g.CompanyName).ThenBy(g => g.Name).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { GpusByMachine item = await _context.GpusByMachine.FindAsync(id); @@ -54,10 +54,10 @@ namespace Marechai.Services _context.GpusByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int gpuId, int machineId) + public async Task CreateAsync(int gpuId, int machineId, string userId) { var item = new GpusByMachine { @@ -65,7 +65,7 @@ namespace Marechai.Services }; await _context.GpusByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/GpusService.cs b/Marechai/Services/GpusService.cs index 1b1f3dbf..dfb1698a 100644 --- a/Marechai/Services/GpusService.cs +++ b/Marechai/Services/GpusService.cs @@ -64,7 +64,7 @@ namespace Marechai.Services DieSize = g.DieSize, Transistors = g.Transistors }).FirstOrDefaultAsync(); - public async Task UpdateAsync(GpuViewModel viewModel) + public async Task UpdateAsync(GpuViewModel viewModel, string userId) { Gpu model = await _context.Gpus.FindAsync(viewModel.Id); @@ -81,10 +81,10 @@ namespace Marechai.Services model.DieSize = viewModel.DieSize; model.Transistors = viewModel.Transistors; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(GpuViewModel viewModel) + public async Task CreateAsync(GpuViewModel viewModel, string userId) { var model = new Gpu { @@ -94,12 +94,12 @@ namespace Marechai.Services }; await _context.Gpus.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Gpu item = await _context.Gpus.FindAsync(id); @@ -108,7 +108,7 @@ namespace Marechai.Services _context.Gpus.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/InstructionSetExtensionsByProcessorService.cs b/Marechai/Services/InstructionSetExtensionsByProcessorService.cs index bd105aec..1b3ad2ac 100644 --- a/Marechai/Services/InstructionSetExtensionsByProcessorService.cs +++ b/Marechai/Services/InstructionSetExtensionsByProcessorService.cs @@ -46,7 +46,7 @@ namespace Marechai.Services ProcessorId = e.ProcessorId, ExtensionId = e.ExtensionId }).OrderBy(e => e.Extension).ToListAsync(); - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { InstructionSetExtensionsByProcessor item = await _context.InstructionSetExtensionsByProcessor.FindAsync(id); @@ -55,10 +55,10 @@ namespace Marechai.Services _context.InstructionSetExtensionsByProcessor.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int processorId, int extensionId) + public async Task CreateAsync(int processorId, int extensionId, string userId) { var item = new InstructionSetExtensionsByProcessor { @@ -66,7 +66,7 @@ namespace Marechai.Services }; await _context.InstructionSetExtensionsByProcessor.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/InstructionSetExtensionsService.cs b/Marechai/Services/InstructionSetExtensionsService.cs index 2cdb8950..5360a0ef 100644 --- a/Marechai/Services/InstructionSetExtensionsService.cs +++ b/Marechai/Services/InstructionSetExtensionsService.cs @@ -50,7 +50,7 @@ namespace Marechai.Services Extension = e.Extension, Id = e.Id }).FirstOrDefaultAsync(); - public async Task UpdateAsync(InstructionSetExtension viewModel) + public async Task UpdateAsync(InstructionSetExtension viewModel, string userId) { InstructionSetExtension model = await _context.InstructionSetExtensions.FindAsync(viewModel.Id); @@ -59,10 +59,10 @@ namespace Marechai.Services model.Extension = viewModel.Extension; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(InstructionSetExtension viewModel) + public async Task CreateAsync(InstructionSetExtension viewModel, string userId) { var model = new InstructionSetExtension { @@ -70,12 +70,12 @@ namespace Marechai.Services }; await _context.InstructionSetExtensions.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { InstructionSetExtension item = await _context.InstructionSetExtensions.FindAsync(id); @@ -84,7 +84,7 @@ namespace Marechai.Services _context.InstructionSetExtensions.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } public bool VerifyUnique(string extension) => diff --git a/Marechai/Services/InstructionSetsService.cs b/Marechai/Services/InstructionSetsService.cs index c54a8981..67c74eac 100644 --- a/Marechai/Services/InstructionSetsService.cs +++ b/Marechai/Services/InstructionSetsService.cs @@ -50,7 +50,7 @@ namespace Marechai.Services Name = e.Name, Id = e.Id }).FirstOrDefaultAsync(); - public async Task UpdateAsync(InstructionSet viewModel) + public async Task UpdateAsync(InstructionSet viewModel, string userId) { InstructionSet model = await _context.InstructionSets.FindAsync(viewModel.Id); @@ -59,10 +59,10 @@ namespace Marechai.Services model.Name = viewModel.Name; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(InstructionSet viewModel) + public async Task CreateAsync(InstructionSet viewModel, string userId) { var model = new InstructionSet { @@ -70,12 +70,12 @@ namespace Marechai.Services }; await _context.InstructionSets.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { InstructionSet item = await _context.InstructionSets.FindAsync(id); @@ -84,7 +84,7 @@ namespace Marechai.Services _context.InstructionSets.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } public bool VerifyUnique(string name) => diff --git a/Marechai/Services/LicensesService.cs b/Marechai/Services/LicensesService.cs index 6526e46c..7bb41fe9 100644 --- a/Marechai/Services/LicensesService.cs +++ b/Marechai/Services/LicensesService.cs @@ -51,7 +51,7 @@ namespace Marechai.Services OsiApproved = l.OsiApproved, SPDX = l.SPDX, Text = l.Text }).FirstOrDefaultAsync(); - public async Task UpdateAsync(License viewModel) + public async Task UpdateAsync(License viewModel, string userId) { License model = await _context.Licenses.FindAsync(viewModel.Id); @@ -65,10 +65,10 @@ namespace Marechai.Services model.SPDX = viewModel.SPDX; model.Text = viewModel.Text; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(License viewModel) + public async Task CreateAsync(License viewModel, string userId) { var model = new License { @@ -77,12 +77,12 @@ namespace Marechai.Services }; await _context.Licenses.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { License item = await _context.Licenses.FindAsync(id); @@ -91,7 +91,7 @@ namespace Marechai.Services _context.Licenses.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/MachineFamiliesService.cs b/Marechai/Services/MachineFamiliesService.cs index 6cce769f..f3f4dab0 100644 --- a/Marechai/Services/MachineFamiliesService.cs +++ b/Marechai/Services/MachineFamiliesService.cs @@ -51,7 +51,7 @@ namespace Marechai.Services Id = m.Id, CompanyId = m.CompanyId, Name = m.Name }).FirstOrDefaultAsync(); - public async Task UpdateAsync(MachineFamilyViewModel viewModel) + public async Task UpdateAsync(MachineFamilyViewModel viewModel, string userId) { MachineFamily model = await _context.MachineFamilies.FindAsync(viewModel.Id); @@ -61,10 +61,10 @@ namespace Marechai.Services model.Name = viewModel.Name; model.CompanyId = viewModel.CompanyId; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(MachineFamilyViewModel viewModel) + public async Task CreateAsync(MachineFamilyViewModel viewModel, string userId) { var model = new MachineFamily { @@ -72,12 +72,12 @@ namespace Marechai.Services }; await _context.MachineFamilies.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { MachineFamily item = await _context.MachineFamilies.FindAsync(id); @@ -86,7 +86,7 @@ namespace Marechai.Services _context.MachineFamilies.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/MachinePhotosService.cs b/Marechai/Services/MachinePhotosService.cs index ef465ec2..48698a38 100644 --- a/Marechai/Services/MachinePhotosService.cs +++ b/Marechai/Services/MachinePhotosService.cs @@ -62,7 +62,7 @@ namespace Marechai.Services WhiteBalance = p.WhiteBalance, OriginalExtension = p.OriginalExtension }).FirstOrDefaultAsync(); - public async Task UpdateAsync(MachinePhotoViewModel viewModel) + public async Task UpdateAsync(MachinePhotoViewModel viewModel, string userId) { MachinePhoto model = await _context.MachinePhotos.FindAsync(viewModel.Id); @@ -104,10 +104,10 @@ namespace Marechai.Services model.VerticalResolution = viewModel.VerticalResolution; model.WhiteBalance = viewModel.WhiteBalance; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(MachinePhotoViewModel viewModel) + public async Task CreateAsync(MachinePhotoViewModel viewModel, string userId) { var model = new MachinePhoto { @@ -132,7 +132,7 @@ namespace Marechai.Services }; await _context.MachinePhotos.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } diff --git a/Marechai/Services/MachinesService.cs b/Marechai/Services/MachinesService.cs index fc99382a..06c32662 100644 --- a/Marechai/Services/MachinesService.cs +++ b/Marechai/Services/MachinesService.cs @@ -72,7 +72,7 @@ namespace Marechai.Services Type = m.Type, FamilyId = m.FamilyId }).FirstOrDefaultAsync(); - public async Task UpdateAsync(MachineViewModel viewModel) + public async Task UpdateAsync(MachineViewModel viewModel, string userId) { Machine model = await _context.Machines.FindAsync(viewModel.Id); @@ -110,10 +110,10 @@ namespace Marechai.Services if(news != null) await _context.News.AddAsync(news); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(MachineViewModel viewModel) + public async Task CreateAsync(MachineViewModel viewModel, string userId) { var model = new Machine { @@ -122,7 +122,7 @@ namespace Marechai.Services }; await _context.Machines.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); var news = new News { @@ -148,7 +148,7 @@ namespace Marechai.Services if(news != null) { await _context.News.AddAsync(news); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } return model.Id; @@ -213,7 +213,7 @@ namespace Marechai.Services return model; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Machine item = await _context.Machines.FindAsync(id); @@ -222,7 +222,7 @@ namespace Marechai.Services _context.Machines.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/MemoriesByMachineService.cs b/Marechai/Services/MemoriesByMachineService.cs index cce788b6..498fccff 100644 --- a/Marechai/Services/MemoriesByMachineService.cs +++ b/Marechai/Services/MemoriesByMachineService.cs @@ -46,7 +46,7 @@ namespace Marechai.Services Speed = m.Speed, MachineId = m.MachineId }).OrderBy(m => m.Type).ThenBy(m => m.Usage).ThenBy(m => m.Size).ThenBy(m => m.Speed).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { MemoryByMachine item = await _context.MemoryByMachine.FindAsync(id); @@ -55,11 +55,11 @@ namespace Marechai.Services _context.MemoryByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } public async Task CreateAsync(int machineId, MemoryType type, MemoryUsage usage, long? size, - double? speed) + double? speed, string userId) { var item = new MemoryByMachine { @@ -68,7 +68,7 @@ namespace Marechai.Services }; await _context.MemoryByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/NewsService.cs b/Marechai/Services/NewsService.cs index c0dcd76e..810c95d5 100644 --- a/Marechai/Services/NewsService.cs +++ b/Marechai/Services/NewsService.cs @@ -23,10 +23,8 @@ // Copyright © 2003-2020 Natalia Portillo *******************************************************************************/ -using System; using System.Collections.Generic; using System.Linq; -using System.Threading; using System.Threading.Tasks; using Marechai.Database; using Marechai.Database.Models; @@ -50,7 +48,8 @@ namespace Marechai.Services public async Task> GetAsync() => await _context.News.OrderByDescending(n => n.Date). Select(n => new NewsViewModel { - Id = n.Id, Timestamp = n.Date, Type = n.Type, AffectedId = n.AddedId + Id = n.Id, Timestamp = n.Date, + Type = n.Type, AffectedId = n.AddedId }).ToListAsync(); public List GetNews() @@ -124,7 +123,7 @@ namespace Marechai.Services return news; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { News item = await _context.News.FindAsync(id); @@ -133,7 +132,7 @@ namespace Marechai.Services _context.News.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/PeopleService.cs b/Marechai/Services/PeopleService.cs index cbfd8ed0..b141bc23 100644 --- a/Marechai/Services/PeopleService.cs +++ b/Marechai/Services/PeopleService.cs @@ -56,7 +56,7 @@ namespace Marechai.Services Facebook = p.Facebook, Photo = p.Photo, Alias = p.Alias, DisplayName = p.DisplayName }).FirstOrDefaultAsync(); - public async Task UpdateAsync(PersonViewModel viewModel) + public async Task UpdateAsync(PersonViewModel viewModel, string userId) { Person model = await _context.People.FindAsync(viewModel.Id); @@ -75,10 +75,10 @@ namespace Marechai.Services model.Alias = viewModel.Alias; model.DisplayName = viewModel.DisplayName; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(PersonViewModel viewModel) + public async Task CreateAsync(PersonViewModel viewModel, string userId) { var model = new Person { @@ -89,12 +89,12 @@ namespace Marechai.Services }; await _context.People.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Person item = await _context.People.FindAsync(id); @@ -103,7 +103,7 @@ namespace Marechai.Services _context.People.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/ProcessorsByMachineService.cs b/Marechai/Services/ProcessorsByMachineService.cs index 21b67ada..3a6d3e0d 100644 --- a/Marechai/Services/ProcessorsByMachineService.cs +++ b/Marechai/Services/ProcessorsByMachineService.cs @@ -46,7 +46,7 @@ namespace Marechai.Services ProcessorId = p.ProcessorId, MachineId = p.MachineId, Speed = p.Speed }).OrderBy(p => p.CompanyName).ThenBy(p => p.Name).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { ProcessorsByMachine item = await _context.ProcessorsByMachine.FindAsync(id); @@ -55,10 +55,10 @@ namespace Marechai.Services _context.ProcessorsByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int processorId, int machineId, float? speed) + public async Task CreateAsync(int processorId, int machineId, float? speed, string userId) { var item = new ProcessorsByMachine { @@ -66,7 +66,7 @@ namespace Marechai.Services }; await _context.ProcessorsByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/ProcessorsService.cs b/Marechai/Services/ProcessorsService.cs index 311c5556..d7f7c901 100644 --- a/Marechai/Services/ProcessorsService.cs +++ b/Marechai/Services/ProcessorsService.cs @@ -80,7 +80,7 @@ namespace Marechai.Services L3 = p.L3, InstructionSet = p.InstructionSet.Name, InstructionSetId = p.InstructionSetId }).FirstOrDefaultAsync(); - public async Task UpdateAsync(ProcessorViewModel viewModel) + public async Task UpdateAsync(ProcessorViewModel viewModel, string userId) { Processor model = await _context.Processors.FindAsync(viewModel.Id); @@ -113,10 +113,10 @@ namespace Marechai.Services model.ThreadsPerCore = viewModel.ThreadsPerCore; model.Transistors = viewModel.Transistors; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(ProcessorViewModel viewModel) + public async Task CreateAsync(ProcessorViewModel viewModel, string userId) { var model = new Processor { @@ -132,12 +132,12 @@ namespace Marechai.Services }; await _context.Processors.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Processor item = await _context.Processors.FindAsync(id); @@ -146,7 +146,7 @@ namespace Marechai.Services _context.Processors.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/ResolutionsByGpuService.cs b/Marechai/Services/ResolutionsByGpuService.cs index e8c2b918..804c147e 100644 --- a/Marechai/Services/ResolutionsByGpuService.cs +++ b/Marechai/Services/ResolutionsByGpuService.cs @@ -54,7 +54,7 @@ namespace Marechai.Services ThenBy(r => r.Resolution.Colors).ThenBy(r => r.Resolution.Palette). ToList(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { ResolutionsByGpu item = await _context.ResolutionsByGpu.FindAsync(id); @@ -63,10 +63,10 @@ namespace Marechai.Services _context.ResolutionsByGpu.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int resolutionId, int gpuId) + public async Task CreateAsync(int resolutionId, int gpuId, string userId) { var item = new ResolutionsByGpu { @@ -74,7 +74,7 @@ namespace Marechai.Services }; await _context.ResolutionsByGpu.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/ResolutionsByScreenService.cs b/Marechai/Services/ResolutionsByScreenService.cs index c66cfe8b..1fc558ea 100644 --- a/Marechai/Services/ResolutionsByScreenService.cs +++ b/Marechai/Services/ResolutionsByScreenService.cs @@ -54,7 +54,7 @@ namespace Marechai.Services ThenBy(r => r.Resolution.Colors).ThenBy(r => r.Resolution.Palette). ToList(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { ResolutionsByScreen item = await _context.ResolutionsByScreen.FindAsync(id); @@ -63,10 +63,10 @@ namespace Marechai.Services _context.ResolutionsByScreen.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int resolutionId, int screenId) + public async Task CreateAsync(int resolutionId, int screenId, string userId) { var item = new ResolutionsByScreen { @@ -74,7 +74,7 @@ namespace Marechai.Services }; await _context.ResolutionsByScreen.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/ResolutionsService.cs b/Marechai/Services/ResolutionsService.cs index 4b51249c..2b7e056f 100644 --- a/Marechai/Services/ResolutionsService.cs +++ b/Marechai/Services/ResolutionsService.cs @@ -53,7 +53,7 @@ namespace Marechai.Services Palette = r.Palette, Chars = r.Chars, Grayscale = r.Grayscale }).FirstOrDefaultAsync(); - public async Task UpdateAsync(ResolutionViewModel viewModel) + public async Task UpdateAsync(ResolutionViewModel viewModel, string userId) { Resolution model = await _context.Resolutions.FindAsync(viewModel.Id); @@ -67,10 +67,10 @@ namespace Marechai.Services model.Palette = viewModel.Palette; model.Width = viewModel.Width; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(ResolutionViewModel viewModel) + public async Task CreateAsync(ResolutionViewModel viewModel, string userId) { var model = new Resolution { @@ -79,12 +79,12 @@ namespace Marechai.Services }; await _context.Resolutions.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Resolution item = await _context.Resolutions.FindAsync(id); @@ -93,7 +93,7 @@ namespace Marechai.Services _context.Resolutions.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/ScreensByMachineService.cs b/Marechai/Services/ScreensByMachineService.cs index be306525..c70f2ea1 100644 --- a/Marechai/Services/ScreensByMachineService.cs +++ b/Marechai/Services/ScreensByMachineService.cs @@ -60,7 +60,7 @@ namespace Marechai.Services } }).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { ScreensByMachine item = await _context.ScreensByMachine.FindAsync(id); @@ -69,10 +69,10 @@ namespace Marechai.Services _context.ScreensByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int machineId, int screenId) + public async Task CreateAsync(int machineId, int screenId, string userId) { if(_context.ScreensByMachine.Any(s => s.MachineId == machineId && s.ScreenId == screenId)) return 0; @@ -83,7 +83,7 @@ namespace Marechai.Services }; await _context.ScreensByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/ScreensService.cs b/Marechai/Services/ScreensService.cs index a8ecd284..ea959737 100644 --- a/Marechai/Services/ScreensService.cs +++ b/Marechai/Services/ScreensService.cs @@ -75,7 +75,7 @@ namespace Marechai.Services NativeResolutionId = s.NativeResolutionId, Type = s.Type, Width = s.Width }).FirstOrDefaultAsync(); - public async Task UpdateAsync(ScreenViewModel viewModel) + public async Task UpdateAsync(ScreenViewModel viewModel, string userId) { Screen model = await _context.Screens.FindAsync(viewModel.Id); @@ -94,10 +94,10 @@ namespace Marechai.Services model.Type = viewModel.Type; model.Width = viewModel.Width; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(ScreenViewModel viewModel) + public async Task CreateAsync(ScreenViewModel viewModel, string userId) { var model = new Screen { @@ -106,12 +106,12 @@ namespace Marechai.Services }; await _context.Screens.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { Screen item = await _context.Screens.FindAsync(id); @@ -120,7 +120,7 @@ namespace Marechai.Services _context.Screens.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/SoundSynthsByMachineService.cs b/Marechai/Services/SoundSynthsByMachineService.cs index ab55bb31..0faa62e9 100644 --- a/Marechai/Services/SoundSynthsByMachineService.cs +++ b/Marechai/Services/SoundSynthsByMachineService.cs @@ -46,7 +46,7 @@ namespace Marechai.Services SoundSynthId = g.SoundSynthId, MachineId = g.MachineId }).OrderBy(g => g.CompanyName).ThenBy(g => g.Name).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { SoundByMachine item = await _context.SoundByMachine.FindAsync(id); @@ -55,10 +55,10 @@ namespace Marechai.Services _context.SoundByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(int soundSynthId, int machineId) + public async Task CreateAsync(int soundSynthId, int machineId, string userId) { var item = new SoundByMachine { @@ -66,7 +66,7 @@ namespace Marechai.Services }; await _context.SoundByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; } diff --git a/Marechai/Services/SoundSynthsService.cs b/Marechai/Services/SoundSynthsService.cs index 85c30efa..0873ab06 100644 --- a/Marechai/Services/SoundSynthsService.cs +++ b/Marechai/Services/SoundSynthsService.cs @@ -75,7 +75,7 @@ namespace Marechai.Services Type = s.Type }).FirstOrDefaultAsync(); - public async Task UpdateAsync(SoundSynthViewModel viewModel) + public async Task UpdateAsync(SoundSynthViewModel viewModel, string userId) { SoundSynth model = await _context.SoundSynths.FindAsync(viewModel.Id); @@ -93,10 +93,10 @@ namespace Marechai.Services model.SquareWave = viewModel.SquareWave; model.WhiteNoise = viewModel.WhiteNoise; - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } - public async Task CreateAsync(SoundSynthViewModel viewModel) + public async Task CreateAsync(SoundSynthViewModel viewModel, string userId) { var model = new SoundSynth { @@ -107,12 +107,12 @@ namespace Marechai.Services }; await _context.SoundSynths.AddAsync(model); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return model.Id; } - public async Task DeleteAsync(int id) + public async Task DeleteAsync(int id, string userId) { SoundSynth item = await _context.SoundSynths.FindAsync(id); @@ -121,7 +121,7 @@ namespace Marechai.Services _context.SoundSynths.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } } } \ No newline at end of file diff --git a/Marechai/Services/StorageByMachineService.cs b/Marechai/Services/StorageByMachineService.cs index 55a9f80b..e6db29bb 100644 --- a/Marechai/Services/StorageByMachineService.cs +++ b/Marechai/Services/StorageByMachineService.cs @@ -47,7 +47,7 @@ namespace Marechai.Services MachineId = s.MachineId }).OrderBy(s => s.Type).ThenBy(s => s.Interface).ThenBy(s => s.Capacity).ToListAsync(); - public async Task DeleteAsync(long id) + public async Task DeleteAsync(long id, string userId) { StorageByMachine item = await _context.StorageByMachine.FindAsync(id); @@ -56,11 +56,11 @@ namespace Marechai.Services _context.StorageByMachine.Remove(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); } public async Task CreateAsync(int machineId, StorageType type, StorageInterface @interface, - long? capacity) + long? capacity, string userId) { var item = new StorageByMachine { @@ -68,7 +68,7 @@ namespace Marechai.Services }; await _context.StorageByMachine.AddAsync(item); - await _context.SaveChangesAsync(); + await _context.SaveChangesWithUserAsync(userId); return item.Id; }