Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
namespace TransactionMobile.Maui.BusinessLogic.RequestHandlers
{
using MediatR;
using Requests;
using Services;

public class LoginRequestHandler : IRequestHandler<LoginRequest, String>
{
#region Constructors

public LoginRequestHandler(IAuthenticationService authenticationService)
{
this.AuthenticationService = authenticationService;
}

#endregion

#region Properties

public IAuthenticationService AuthenticationService { get; }

#endregion

#region Methods

public async Task<String> Handle(LoginRequest request,
CancellationToken cancellationToken)
{
var token = await this.AuthenticationService.GetToken(request.UserName, request.Password, cancellationToken);

return token;
}

#endregion
}
}
15 changes: 15 additions & 0 deletions TransactionMobile.Maui.BusinessLogic/Requests/LoginRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace TransactionMobile.Maui.BusinessLogic.Requests
{
using MediatR;

public class LoginRequest : IRequest<String>
{
#region Properties

public String Password { get; set; }

public String UserName { get; set; }

#endregion
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace TransactionMobile.Maui.BusinessLogic.Services;

public class DummyAuthenticationService : IAuthenticationService
{
#region Methods

public async Task<String> GetToken(String username,
String password,
CancellationToken cancellationToken)
{
return "MyToken";
}

#endregion
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace TransactionMobile.Maui.BusinessLogic.Services
{
public interface IAuthenticationService
{
#region Methods

Task<String> GetToken(String username,
String password,
CancellationToken cancellationToken);

#endregion
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MediatR" Version="10.0.1" />
<PackageReference Include="Refractored.MvvmHelpers" Version="1.6.2" />
</ItemGroup>

</Project>
9 changes: 8 additions & 1 deletion TransactionMobile.Maui.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1CBEF4C1-7D9
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{AB312EE3-CBA4-469A-8694-67C5466298C5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransactionMobile.Maui.Tests", "TransactionMobile.Maui.Tests\TransactionMobile.Maui.Tests.csproj", "{BD64046D-7103-44E6-8453-46C895A2AB93}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TransactionMobile.Maui.Tests", "TransactionMobile.Maui.Tests\TransactionMobile.Maui.Tests.csproj", "{BD64046D-7103-44E6-8453-46C895A2AB93}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransactionMobile.Maui.BusinessLogic", "TransactionMobile.Maui.BusinessLogic\TransactionMobile.Maui.BusinessLogic.csproj", "{CC820A65-AC8B-4E42-8BB1-21F5EB348995}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -27,13 +29,18 @@ Global
{BD64046D-7103-44E6-8453-46C895A2AB93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD64046D-7103-44E6-8453-46C895A2AB93}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD64046D-7103-44E6-8453-46C895A2AB93}.Release|Any CPU.Build.0 = Release|Any CPU
{CC820A65-AC8B-4E42-8BB1-21F5EB348995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CC820A65-AC8B-4E42-8BB1-21F5EB348995}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CC820A65-AC8B-4E42-8BB1-21F5EB348995}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CC820A65-AC8B-4E42-8BB1-21F5EB348995}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{73668181-7A26-435D-83E3-CF141AC8FD0B} = {1CBEF4C1-7D90-4A78-AA55-D81F1447A70E}
{BD64046D-7103-44E6-8453-46C895A2AB93} = {AB312EE3-CBA4-469A-8694-67C5466298C5}
{CC820A65-AC8B-4E42-8BB1-21F5EB348995} = {1CBEF4C1-7D90-4A78-AA55-D81F1447A70E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using TransactionMobile.Maui.RequestHandlers;
using TransactionMobile.Maui.Requests;
using TransactionMobile.Maui.Services;
using TransactionMobile.Maui.ViewModels;

namespace TransactionMobile.Maui.Extensions
namespace TransactionMobile.Maui.Extensions
{
using BusinessLogic.RequestHandlers;
using BusinessLogic.Requests;
using BusinessLogic.Services;
using MediatR;
using ViewModels;

public static class MauiAppBuilderExtensions
{
public static MauiAppBuilder ConfigureViewModels(this MauiAppBuilder builder)
#region Methods

public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder)
{
builder.Services.AddTransient<LoginViewModel>();
builder.Services.AddSingleton<IAuthenticationService, DummyAuthenticationService>();

return builder;
}

Expand All @@ -27,15 +24,14 @@ public static MauiAppBuilder ConfigureRequestHandlers(this MauiAppBuilder builde
builder.Services.AddSingleton<ServiceFactory>(ctx => { return t => ctx.GetService(t); });

return builder;
}
}

public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder)
public static MauiAppBuilder ConfigureViewModels(this MauiAppBuilder builder)
{
builder.Services.AddSingleton<IAuthenticationService, DummyAuthenticationService>();

builder.Services.AddTransient<LoginViewModel>();
return builder;
}
}


}
#endregion
}
}
17 changes: 0 additions & 17 deletions TransactionMobile.Maui/Models/Shared/AppSection.cs

This file was deleted.

28 changes: 0 additions & 28 deletions TransactionMobile.Maui/RequestHandlers/LoginRequestHandler.cs

This file was deleted.

16 changes: 0 additions & 16 deletions TransactionMobile.Maui/Requests/LoginRequest.cs

This file was deleted.

21 changes: 0 additions & 21 deletions TransactionMobile.Maui/Services/IAuthenticationService.cs

This file was deleted.

8 changes: 8 additions & 0 deletions TransactionMobile.Maui/TransactionMobile.Maui.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@
<PackageReference Include="MediatR" Version="10.0.1" />
<PackageReference Include="Refractored.MvvmHelpers" Version="1.6.2" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\TransactionMobile.Maui.BusinessLogic\TransactionMobile.Maui.BusinessLogic.csproj" />
</ItemGroup>

<ItemGroup>
<Compile Update="Pages\MyAccount\MyAccount.xaml.cs">
Expand Down Expand Up @@ -88,6 +92,10 @@
</MauiXaml>
</ItemGroup>

<ItemGroup>
<Folder Include="Models\" />
</ItemGroup>

<PropertyGroup Condition="$(TargetFramework.Contains('-windows'))">
<OutputType>WinExe</OutputType>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
Expand Down
51 changes: 28 additions & 23 deletions TransactionMobile.Maui/ViewModels/LoginViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,43 +1,47 @@
using MediatR;
using MvvmHelpers;
using MvvmHelpers.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using TransactionMobile.Maui.Requests;
using TransactionMobile.Maui.Services;

namespace TransactionMobile.Maui.ViewModels
namespace TransactionMobile.Maui.ViewModels
{
using System.Windows.Input;
using BusinessLogic.Requests;
using BusinessLogic.Services;
using MediatR;
using MvvmHelpers;
using MvvmHelpers.Commands;

public class LoginViewModel : BaseViewModel
{
public ICommand LoginCommand { get; set; }
{
#region Constructors

//public String Username { get; set; }
//public String Password { get; set; }
public LoginViewModel(IMediator mediator)
{

this.LoginCommand = new AsyncCommand(LoginCommandExecute);
Mediator = mediator;
this.LoginCommand = new AsyncCommand(this.LoginCommandExecute);
this.Mediator = mediator;
}

#endregion

#region Properties

public IAuthenticationService AuthenticationService { get; }

public ICommand LoginCommand { get; set; }

public IMediator Mediator { get; }

#endregion

#region Methods

internal async Task InitializeAsync()
{


}

private async Task LoginCommandExecute()
{
LoginRequest request = new LoginRequest();

var token = await this.Mediator.Send(request);
String token = await this.Mediator.Send(request);

//if (token == null)
//{
Expand All @@ -46,7 +50,8 @@ private async Task LoginCommandExecute()

// TODO: Cache the token as will be needed later
await Shell.Current.GoToAsync("//home");

}

#endregion
}
}
}