diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaForm.razor b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor similarity index 100% rename from WatchIt.Website/WatchIt.Website/Components/MediaForm.razor rename to WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaForm.razor.cs b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor.cs similarity index 98% rename from WatchIt.Website/WatchIt.Website/Components/MediaForm.razor.cs rename to WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor.cs index 2adcd76..68d7e8b 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaForm.razor.cs +++ b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor.cs @@ -7,7 +7,7 @@ using WatchIt.Website.Services.WebAPI.Media; namespace WatchIt.Website.Components; -public partial class MediaForm : ComponentBase +public partial class MediaFormComponent : ComponentBase { #region SERVICES diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaForm.razor.css b/WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor.css similarity index 100% rename from WatchIt.Website/WatchIt.Website/Components/MediaForm.razor.css rename to WatchIt.Website/WatchIt.Website/Components/MediaFormComponent.razor.css diff --git a/WatchIt.Website/WatchIt.Website/Pages/Admin.razor b/WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor similarity index 100% rename from WatchIt.Website/WatchIt.Website/Pages/Admin.razor rename to WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor diff --git a/WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor.cs b/WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor.cs new file mode 100644 index 0000000..d37b34c --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor.cs @@ -0,0 +1,6 @@ +namespace WatchIt.Website.Pages; + +public class AdminPage_razor +{ + +} \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Pages/Admin.razor.css b/WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor.css similarity index 100% rename from WatchIt.Website/WatchIt.Website/Pages/Admin.razor.css rename to WatchIt.Website/WatchIt.Website/Pages/AdminPage.razor.css diff --git a/WatchIt.Website/WatchIt.Website/Pages/Auth.razor b/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor similarity index 52% rename from WatchIt.Website/WatchIt.Website/Pages/Auth.razor rename to WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor index ce2dbcb..2ca269d 100644 --- a/WatchIt.Website/WatchIt.Website/Pages/Auth.razor +++ b/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor @@ -1,11 +1,4 @@ @page "/auth" -@using System.Text -@using WatchIt.Common.Model.Accounts -@using WatchIt.Common.Model.Media -@using WatchIt.Website.Services.Utility.Authentication -@using WatchIt.Website.Services.Utility.Tokens -@using WatchIt.Website.Services.WebAPI.Accounts -@using WatchIt.Website.Services.WebAPI.Media @layout EmptyLayout WatchIt - @(_authType == AuthType.SignIn ? "Sign in" : "Sign up") @@ -126,135 +119,4 @@ background-image: linear-gradient(45deg, @_firstGradientColor, @_secondGradientColor); } -} - - - - - -@code -{ - #region SERVICES - - [Inject] public ILogger Logger { get; set; } = default!; - [Inject] public IAuthenticationService AuthenticationService { get; set; } = default!; - [Inject] public ITokensService TokensService { get; set; } = default!; - [Inject] public IMediaWebAPIService MediaWebAPIService { get; set; } = default!; - [Inject] public IAccountsWebAPIService AccountsWebAPIService { get; set; } = default!; - [Inject] public NavigationManager NavigationManager { get; set; } = default!; - - #endregion - - - - #region ENUMS - - private enum AuthType - { - SignIn, - SignUp - } - - #endregion - - - - #region FIELDS - - private bool _loaded = false; - - private AuthType _authType = AuthType.SignIn; - private string _background = "assets/background_temp.jpg"; - private string _firstGradientColor = "#c6721c"; - private string _secondGradientColor = "#85200c"; - - private AuthenticateRequest _loginModel = new AuthenticateRequest - { - UsernameOrEmail = null, - Password = null - }; - - private RegisterRequest _registerModel = new RegisterRequest - { - Username = null, - Email = null, - Password = null - }; - private string _passwordConfirmation; - - private IEnumerable _errors; - - #endregion - - - - #region METHODS - - protected override async Task OnInitializedAsync() - { - if (await AuthenticationService.GetAuthenticationStatusAsync()) - { - NavigationManager.NavigateTo("/"); - } - - Action backgroundSuccess = (data) => - { - string imageBase64 = Convert.ToBase64String(data.Image); - string firstColor = BitConverter.ToString(data.Background.FirstGradientColor) - .Replace("-", string.Empty); - string secondColor = BitConverter.ToString(data.Background.SecondGradientColor) - .Replace("-", string.Empty); - - _background = $"data:{data.MimeType};base64,{imageBase64}"; - _firstGradientColor = $"#{firstColor}"; - _secondGradientColor = $"#{secondColor}"; - }; - await MediaWebAPIService.GetPhotoRandomBackground(backgroundSuccess); - - _loaded = true; - } - - private async Task Login() - { - await AccountsWebAPIService.Authenticate(_loginModel, LoginSuccess, LoginBadRequest, LoginUnauthorized); - - async void LoginSuccess(AuthenticateResponse data) - { - await TokensService.SaveAuthenticationData(data); - NavigationManager.NavigateTo("/"); - } - - void LoginBadRequest(IDictionary data) - { - _errors = data.SelectMany(x => x.Value).Select(x => $"• {x}"); - } - - void LoginUnauthorized() - { - _errors = [ "Incorrect account data" ]; - } - } - - private async Task Register() - { - if (_registerModel.Password != _passwordConfirmation) - { - _errors = [ "Password fields don't match" ]; - return; - } - - await AccountsWebAPIService.Register(_registerModel, RegisterSuccess, RegisterBadRequest); - - void RegisterSuccess(RegisterResponse data) - { - _authType = AuthType.SignIn; - } - - void RegisterBadRequest(IDictionary data) - { - _errors = data.SelectMany(x => x.Value).Select(x => $"• {x}"); - } - } - - #endregion } \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor.cs b/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor.cs new file mode 100644 index 0000000..b58b7e0 --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor.cs @@ -0,0 +1,136 @@ +using Microsoft.AspNetCore.Components; +using WatchIt.Common.Model.Accounts; +using WatchIt.Common.Model.Media; +using WatchIt.Website.Services.Utility.Authentication; +using WatchIt.Website.Services.Utility.Tokens; +using WatchIt.Website.Services.WebAPI.Accounts; +using WatchIt.Website.Services.WebAPI.Media; + +namespace WatchIt.Website.Pages; + +public partial class AuthPage +{ + #region SERVICES + + [Inject] public ILogger Logger { get; set; } = default!; + [Inject] public IAuthenticationService AuthenticationService { get; set; } = default!; + [Inject] public ITokensService TokensService { get; set; } = default!; + [Inject] public IMediaWebAPIService MediaWebAPIService { get; set; } = default!; + [Inject] public IAccountsWebAPIService AccountsWebAPIService { get; set; } = default!; + [Inject] public NavigationManager NavigationManager { get; set; } = default!; + + #endregion + + + + #region ENUMS + + private enum AuthType + { + SignIn, + SignUp + } + + #endregion + + + + #region FIELDS + + private bool _loaded = false; + + private AuthType _authType = AuthType.SignIn; + private string _background = "assets/background_temp.jpg"; + private string _firstGradientColor = "#c6721c"; + private string _secondGradientColor = "#85200c"; + + private AuthenticateRequest _loginModel = new AuthenticateRequest + { + UsernameOrEmail = null, + Password = null + }; + + private RegisterRequest _registerModel = new RegisterRequest + { + Username = null, + Email = null, + Password = null + }; + private string _passwordConfirmation; + + private IEnumerable _errors; + + #endregion + + + + #region METHODS + + protected override async Task OnInitializedAsync() + { + if (await AuthenticationService.GetAuthenticationStatusAsync()) + { + NavigationManager.NavigateTo("/"); + } + + Action backgroundSuccess = (data) => + { + string imageBase64 = Convert.ToBase64String(data.Image); + string firstColor = BitConverter.ToString(data.Background.FirstGradientColor) + .Replace("-", string.Empty); + string secondColor = BitConverter.ToString(data.Background.SecondGradientColor) + .Replace("-", string.Empty); + + _background = $"data:{data.MimeType};base64,{imageBase64}"; + _firstGradientColor = $"#{firstColor}"; + _secondGradientColor = $"#{secondColor}"; + }; + await MediaWebAPIService.GetPhotoRandomBackground(backgroundSuccess); + + _loaded = true; + } + + private async Task Login() + { + await AccountsWebAPIService.Authenticate(_loginModel, LoginSuccess, LoginBadRequest, LoginUnauthorized); + + async void LoginSuccess(AuthenticateResponse data) + { + await TokensService.SaveAuthenticationData(data); + NavigationManager.NavigateTo("/"); + } + + void LoginBadRequest(IDictionary data) + { + _errors = data.SelectMany(x => x.Value).Select(x => $"• {x}"); + } + + void LoginUnauthorized() + { + _errors = [ "Incorrect account data" ]; + } + } + + private async Task Register() + { + if (_registerModel.Password != _passwordConfirmation) + { + _errors = [ "Password fields don't match" ]; + return; + } + + await AccountsWebAPIService.Register(_registerModel, RegisterSuccess, RegisterBadRequest); + + void RegisterSuccess(RegisterResponse data) + { + _authType = AuthType.SignIn; + } + + void RegisterBadRequest(IDictionary data) + { + _errors = data.SelectMany(x => x.Value).Select(x => $"• {x}"); + } + } + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Pages/Auth.razor.css b/WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor.css similarity index 100% rename from WatchIt.Website/WatchIt.Website/Pages/Auth.razor.css rename to WatchIt.Website/WatchIt.Website/Pages/AuthPage.razor.css diff --git a/WatchIt.Website/WatchIt.Website/Pages/Home.razor b/WatchIt.Website/WatchIt.Website/Pages/HomePage.razor similarity index 100% rename from WatchIt.Website/WatchIt.Website/Pages/Home.razor rename to WatchIt.Website/WatchIt.Website/Pages/HomePage.razor diff --git a/WatchIt.Website/WatchIt.Website/Pages/HomePage.razor.cs b/WatchIt.Website/WatchIt.Website/Pages/HomePage.razor.cs new file mode 100644 index 0000000..e93d120 --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Pages/HomePage.razor.cs @@ -0,0 +1,6 @@ +namespace WatchIt.Website.Pages; + +public class HomePage_razor +{ + +} \ No newline at end of file