517 lines
15 KiB
C#

using CommunityToolkit.Mvvm.Messaging.Messages;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassiApp.Core.Interfaces.Synchronization;
using gehGassiApp.Domain.Authentication;
using gehGassiApp.Domain.Common;
using gehGassiApp.Domain.Dogs;
using gehGassiApp.Domain.Messages;
using gehGassiApp.Domain.News;
using gehGassiApp.Domain.Users;
using gehGassiApp.Domain.Walkers;
using gehGassiApp.Domain.Walks;
using gehGassi.Dto.Messages;
using gehGassiApp.Domain;
using gehGassiApp.Domain.Favourites;
using gehGassiApp.Domain.Payment;
using gehGassiApp.Domain.Pushnotifications;
namespace gehGassiApp.Core.Messaging
{
/// <summary>
/// Message wenn sich der Online-Status der App geändert hat
/// </summary>
public class OnlineStatusChangedMessage : ValueChangedMessage<OnlineStatusMessage>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">OnlineStatusMessage</param>
public OnlineStatusChangedMessage(OnlineStatusMessage value) : base(value)
{
}
}
/// <summary>
/// Online-Status der Applikation
/// </summary>
public class OnlineStatusMessage
{
/// <summary>
/// Alter Status
/// </summary>
public bool WasOnline { get; set; }
/// <summary>
/// Neuer Status
/// </summary>
public bool IsOnline { get; set; }
}
/// <summary>
/// Message wenn sich Tokens des Benutzers geändert haben.
/// Betrifft Access- und Refreshtoken
/// </summary>
public class TokenChangedMessage : ValueChangedMessage<TokenResponse>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Ergebnis der Tokenabfrage</param>
public TokenChangedMessage(TokenResponse value) : base(value)
{
}
}
/// <summary>
/// Message wenn ein Viewmodel einen Refresh machen soll und damit Daten neu lädt
/// </summary>
public class RefreshViewModelMessage : ValueChangedMessage<string>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Code für das betreffende Viewmodel. Siehe Messages.cs Refresh_</param>
public RefreshViewModelMessage(string value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich der Anmeldestatus eines Benutzers geändert hat
/// </summary>
public class UserLoginStatusChangedMessage
{
}
/// <summary>
/// Message wenn die App mit einer lokalen Push-Nachricht gestartet wurde
/// </summary>
public class UserLoginStatusPushChangedMessage : ValueChangedMessage<LocalPushNotificationInfo>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Lokale Push-Notification</param>
public UserLoginStatusPushChangedMessage(LocalPushNotificationInfo value) : base(value)
{
}
}
/// <summary>
/// Message wenn ein Viewmodel einen Refresh machen soll und damit Daten neu lädt
/// </summary>
public class UserLoginStatusPushServerMessage : ValueChangedMessage<ServerPushNotificationInfo>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Server Push-Notification</param>
public UserLoginStatusPushServerMessage(ServerPushNotificationInfo value) : base(value)
{
}
}
/// <summary>
/// Message wenn eine Server-Pushnotification in Android bei laufender App erhalten wurde
/// </summary>
public class HandlePushServerMessage : ValueChangedMessage<ServerPushNotificationInfo>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Server Push-Notification</param>
public HandlePushServerMessage(ServerPushNotificationInfo value) : base(value)
{
}
}
/// <summary>
/// Message wenn die App aus dem Sleep Mode geholt wurde und Resume begonnen hat
/// </summary>
public class AppResumingMessage
{
}
/// <summary>
/// Message wenn die App aus dem Sleep Mode gekommen und fertig ist
/// </summary>
public class AppResumedMessage
{
}
/// <summary>
/// Message wenn in der Nachrichten-Collectionview gescrollt werden soll
/// </summary>
public class MessagesScrollToMessage : ValueChangedMessage<MessagesToInfo>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Infoo wohin gescrollt werden soll</param>
public MessagesScrollToMessage(MessagesToInfo value) : base(value)
{
}
}
/// <summary>
/// Hilfsklasse die angibt wohin in den Messages gescrollt werden soll
/// </summary>
public class MessagesToInfo
{
/// <summary>
/// Index der Gruppe
/// </summary>
public int GroupIndex { get; set; }
/// <summary>
/// Index der Nachricht
/// </summary>
public int MessageIndex { get; set; }
/// <summary>
/// Soll nach oben gescrollt werden?
/// </summary>
public bool ScrollToTop { get; set; }
/// <summary>
/// Soll das Scrolling animiert werden?
/// </summary>
public bool Animate { get; set; }
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="groupIndex">Index der Gruppe</param>
/// <param name="messageIndex">Index der Nachricht</param>
public MessagesToInfo(int groupIndex, int messageIndex, bool scrollToTop = false, bool animate = true)
{
GroupIndex = groupIndex;
MessageIndex = messageIndex;
ScrollToTop = scrollToTop;
Animate = animate;
}
}
/// <summary>
/// Message wenn in einer Collectionview gescrollt werden soll
/// </summary>
public class ScrollToMessage : ValueChangedMessage<int>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Index wohin gescrollt werden soll</param>
public ScrollToMessage(int value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Daten des AppUsers geöndert haben
/// </summary>
public class AppUserChangedMessage : ValueChangedMessage<SyncResult<AppUser>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Geänderter App-User</param>
public AppUserChangedMessage(SyncResult<AppUser> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich das Profileines Dogwalkers geändert hat
/// </summary>
public class DogWalkerProfileChangedMessage : ValueChangedMessage<SyncResult<DogWalkerProfile>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Geändertes Dogwalker-Profil</param>
public DogWalkerProfileChangedMessage(SyncResult<DogWalkerProfile> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich eine News-Kategorien geöndert hat
/// </summary>
public class NewsCategoriesChangedMessage : ValueChangedMessage<SyncResult<NewsCategory>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Geänderte News-Kategorien</param>
public NewsCategoriesChangedMessage(SyncResult<NewsCategory> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Hunderassen geändert haben
/// </summary>
public class DogRacesChangedMessage : ValueChangedMessage<SyncResult<DogRace>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Geänderte hunderassen</param>
public DogRacesChangedMessage(SyncResult<DogRace> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich hunde geändert haben
/// </summary>
public class DogsChangedMessage : ValueChangedMessage<SyncResult<Dog>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Hunde</param>
public DogsChangedMessage(SyncResult<Dog> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Konversationen geändert haben
/// </summary>
public class ConversationsChangedMessage : ValueChangedMessage<SyncResult<Conversation>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderter Konversationen</param>
public ConversationsChangedMessage(SyncResult<Conversation> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich ungelesene Konversationen geändert haben
/// </summary>
public class ConversationsUnreadChangedMessage
{
}
/// <summary>
/// Message wenn sich Nachrichten geändert haben
/// </summary>
public class MessagesChangedMessage
{
}
/// <summary>
/// Message wenn sich Walk-Anfragen geändert haben
/// </summary>
public class WalkRequestedChangedMessage
{
}
/// <summary>
/// Message wenn sich öffentliche Anfragen geändert haben
/// </summary>
public class PublicWalkRequestsChangedMessage : ValueChangedMessage<SyncResult<PublicWalkRequest>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte öffentliche Anfragen</param>
public PublicWalkRequestsChangedMessage(SyncResult<PublicWalkRequest> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich antworten auf öffentliche Anfragen geändert haben
/// </summary>
public class PublicWalkResponsesChangedMessage : ValueChangedMessage<SyncResult<PublicWalkResponse>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Antworten auf öffentliche Anfragen</param>
public PublicWalkResponsesChangedMessage(SyncResult<PublicWalkResponse> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Walks geändert haben
/// </summary>
public class WalksChangedMessage : ValueChangedMessage<SyncResult<Walk>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Walks</param>
public WalksChangedMessage(SyncResult<Walk> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Verfügbarkeitszeiten eines Walkers geändert haben
/// </summary>
public class WalkingTimesChangedMessage : ValueChangedMessage<SyncResult<WalkingTime>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Verfügbarkeitszeiten</param>
public WalkingTimesChangedMessage(SyncResult<WalkingTime> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Ratings geändert haben
/// </summary>
public class RatingsChangedMessage : ValueChangedMessage<SyncResult<Rating>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Ratings</param>
public RatingsChangedMessage(SyncResult<Rating> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Favoriten geändert haben
/// </summary>
public class FavouritesChangedMessage : ValueChangedMessage<SyncResult<Favourite>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Favoriten</param>
public FavouritesChangedMessage(SyncResult<Favourite> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Systemnachrichten geändert haben
/// </summary>
public class SystemMessagesChangedMessage : ValueChangedMessage<SyncResult<SystemMessage>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Favoriten</param>
public SystemMessagesChangedMessage(SyncResult<SystemMessage> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Transaktionsgebühren geändert haben
/// </summary>
public class TransactionFeesChangedMessage : ValueChangedMessage<SyncResult<TransactionFee>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Favoriten</param>
public TransactionFeesChangedMessage(SyncResult<TransactionFee> value) : base(value)
{
}
}
/// <summary>
/// Message wenn sich Auszahlungen geändert haben
/// </summary>
public class PayoutsChangedMessage : ValueChangedMessage<SyncResult<Payout>>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Liste geänderte Favoriten</param>
public PayoutsChangedMessage(SyncResult<Payout> value) : base(value)
{
}
}
/// <summary>
/// Message wenn der Benutzer abgemeldet werden soll
/// </summary>
public class LogoutMessage
{
}
/// <summary>
/// Message wenn sich die AppVersion am Server geändert hat.
/// Kann aber auch sein, dass keine neue Version verfügbar ist
/// </summary>
public class AppVersionChangedMessage
{
}
/// <summary>
/// Message wenn sich ein Abo geändert hat
/// </summary>
public class SubscriptionChangedMessage
{
}
#region SignalR
/// <summary>
/// Message von SignalR wenn sich der App-User geändert hat
/// </summary>
public class SignalRAppUserChangedMessage
{
}
/// <summary>
/// Message von SignalR wenn sich der News-Kategorien geändert haben
/// </summary>
public class SignalRNewsCategoriesChangedMessage
{
}
/// <summary>
/// Message von SignalR wenn sich der Systemnachrichten geändert haben
/// </summary>
public class SignalRSystemMessagesChangedMessage
{
}
/// <summary>
/// Message wenn sich Ratings geändert haben
/// </summary>
public class SignalRConversationMessageAddedMessage : ValueChangedMessage<string>
{
/// <summary>
/// Erstellt eine Instanz
/// </summary>
/// <param name="value">Id der Kovnersation</param>
public SignalRConversationMessageAddedMessage(string value) : base(value)
{
}
}
#endregion
}