Overall Bug Fixes

This commit is contained in:
s459315 2022-07-27 16:41:36 +02:00
parent d6d7912c96
commit 2ed8e331ec
5 changed files with 63 additions and 6 deletions

View File

@ -10,5 +10,6 @@ namespace RMWPFInterfaceLibrary.Models
string Id { get; set; } string Id { get; set; }
string LastName { get; set; } string LastName { get; set; }
string Token { get; set; } string Token { get; set; }
void LogOffUser();
} }
} }

View File

@ -14,5 +14,15 @@ namespace RMWPFInterfaceLibrary.Models
public string LastName { get; set; } public string LastName { get; set; }
public string EmailAddress { get; set; } public string EmailAddress { get; set; }
public DateTime CreatedDate { get; set; } public DateTime CreatedDate { get; set; }
public void LogOffUser()
{
Token = "";
Id = "";
FirstName = "";
LastName = "";
EmailAddress = "";
CreatedDate = DateTime.MinValue;
}
} }
} }

View File

@ -41,7 +41,20 @@ namespace RMWPFUserInterface.ViewModels
var products = _mapper.Map<List<ProductDisplayModel>>(products_lsit); var products = _mapper.Map<List<ProductDisplayModel>>(products_lsit);
Products = new BindingList<ProductDisplayModel>(products); Products = new BindingList<ProductDisplayModel>(products);
} }
private async Task ResetSalesViewModel()
{
Cart = new BindingList<CartItemDisplayModel>();
// TODO - Add clearing selectedCartItem if that does not clear it
await LoadProducts();
NotifyOfPropertyChange(() => SubTotal);
NotifyOfPropertyChange(() => Tax);
NotifyOfPropertyChange(() => Total);
NotifyOfPropertyChange(() => CanCheckOut);
NotifyOfPropertyChange(() => CanAddToCart);
}
private BindingList<ProductDisplayModel> _products; private BindingList<ProductDisplayModel> _products;
public BindingList<ProductDisplayModel> Products public BindingList<ProductDisplayModel> Products
@ -200,7 +213,7 @@ namespace RMWPFUserInterface.ViewModels
bool output = false; bool output = false;
// Make sure something is selected // Make sure something is selected
if (SelectedCartItem != null && SelectedCartItem?.Product.QuantityInStock > 0) if (SelectedCartItem != null && SelectedCartItem?.QuantityInCart > 0)
{ {
output = true; output = true;
} }
@ -225,6 +238,7 @@ namespace RMWPFUserInterface.ViewModels
NotifyOfPropertyChange(() => Tax); NotifyOfPropertyChange(() => Tax);
NotifyOfPropertyChange(() => Total); NotifyOfPropertyChange(() => Total);
NotifyOfPropertyChange(() => CanCheckOut); NotifyOfPropertyChange(() => CanCheckOut);
NotifyOfPropertyChange(() => CanAddToCart);
} }
public bool CanCheckOut public bool CanCheckOut
@ -256,6 +270,8 @@ namespace RMWPFUserInterface.ViewModels
} }
await _saleEndPoint.PostSale(sale); await _saleEndPoint.PostSale(sale);
await ResetSalesViewModel();
} }
} }
} }

View File

@ -5,6 +5,7 @@ using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Caliburn.Micro; using Caliburn.Micro;
using RMWPFInterfaceLibrary.Models;
using RMWPFUserInterface.EventModels; using RMWPFUserInterface.EventModels;
namespace RMWPFUserInterface.ViewModels namespace RMWPFUserInterface.ViewModels
@ -13,21 +14,50 @@ namespace RMWPFUserInterface.ViewModels
{ {
private IEventAggregator _events; private IEventAggregator _events;
private SalesViewModel _salesVM; private SalesViewModel _salesVM;
private ILoggedInUserModel _user;
public ShellViewModel(IEventAggregator events, SalesViewModel salesVM, public ShellViewModel(IEventAggregator events, SalesViewModel salesVM,
SimpleContainer container) SimpleContainer container, ILoggedInUserModel user)
{ {
_salesVM = salesVM; _salesVM = salesVM;
_events = events; _events = events;
_user = user;
_events.SubscribeOnUIThread(this); _events.SubscribeOnUIThread(this);
ActivateItemAsync(IoC.Get<LoginViewModel>()); ActivateItemAsync(IoC.Get<LoginViewModel>());
} }
public bool IsLoggedIn
{
get
{
bool output = false;
if (string.IsNullOrWhiteSpace(_user.Token) == false)
{
output = true;
}
return output;
}
}
public void ExitApplication()
{
TryCloseAsync();
}
public void LogOut()
{
_user.LogOffUser();
NotifyOfPropertyChange(() => IsLoggedIn);
ActivateItemAsync(IoC.Get<LoginViewModel>());
}
public Task HandleAsync(LogOnEvent message, CancellationToken cancellationToken) public Task HandleAsync(LogOnEvent message, CancellationToken cancellationToken)
{ {
ActivateItemAsync(_salesVM); ActivateItemAsync(_salesVM);
NotifyOfPropertyChange(() => IsLoggedIn);
return Task.CompletedTask; return Task.CompletedTask;
} }
} }

View File

@ -9,10 +9,10 @@
<DockPanel> <DockPanel>
<Menu DockPanel.Dock="Top" FontSize="18"> <Menu DockPanel.Dock="Top" FontSize="18">
<MenuItem Header="_File"> <MenuItem Header="_File">
<MenuItem x:Name="ExitApplication" Header="E_xit"/>
</MenuItem> </MenuItem>
<MenuItem Header="_Account"> <MenuItem Header="_Account" Visibility="{Binding IsLoggedIn, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Collapsed}">
<MenuItem x:Name="LoginScreen" Header="_Login" /> <MenuItem x:Name="LogOut" Header="_Log Out"/>
</MenuItem> </MenuItem>
</Menu> </Menu>
<Grid> <Grid>