feat: add events for drop and chat message

This commit is contained in:
k0t9i
2023-01-31 16:14:13 +04:00
parent 31febdd341
commit d2b20e0666
15 changed files with 101 additions and 69 deletions

View File

@ -3,7 +3,6 @@ using Client.Domain.Common;
using Client.Domain.Entities;
using Client.Domain.Events;
using Client.Domain.ValueObjects;
using Client.Domain.ViewModels;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@ -20,31 +19,14 @@ namespace Client.Application.ViewModels
{
public class MainViewModel :
NotifyPropertyChanged,
MainViewModelInterface,
EventHandlerInterface<HeroCreatedEvent>,
EventHandlerInterface<HeroDeletedEvent>,
EventHandlerInterface<CreatureCreatedEvent>,
EventHandlerInterface<CreatureDeletedEvent>
EventHandlerInterface<CreatureDeletedEvent>,
EventHandlerInterface<DropCreatedEvent>,
EventHandlerInterface<DropDeletedEvent>,
EventHandlerInterface<ChatMessageCreatedEvent>
{
public void AddChatMessage(ChatMessage chatMessage)
{
ChatMessages.Add(new ChatMessageViewModel(chatMessage));
}
public void AddDrop(Drop drop)
{
if (hero != null)
{
Drops.Add(new DropListViewModel(drop, hero));
}
}
public void RemoveDrop(Drop drop)
{
Drops.RemoveAll(x => x.Id == drop.Id);
}
public void Handle(HeroCreatedEvent @event)
{
Hero = new HeroSummaryInfoViewModel(@event.Hero);
@ -72,6 +54,24 @@ namespace Client.Application.ViewModels
Creatures.RemoveAll(x => x.Id == @event.Id);
}
public void Handle(DropCreatedEvent @event)
{
if (hero != null)
{
Drops.Add(new DropListViewModel(@event.Drop, hero));
}
}
public void Handle(DropDeletedEvent @event)
{
Drops.RemoveAll(x => x.Id == @event.Id);
}
public void Handle(ChatMessageCreatedEvent @event)
{
ChatMessages.Add(new ChatMessageViewModel(@event.Message));
}
public ObservableCollection<ChatMessageViewModel> ChatMessages { get; } = new ObservableCollection<ChatMessageViewModel>();
public ObservableCollection<CreatureListViewModel> Creatures { get; } = new ObservableCollection<CreatureListViewModel>();
public ObservableCollection<DropListViewModel> Drops { get; } = new ObservableCollection<DropListViewModel>();