using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using gehGassiApp.Domain.Base;
namespace gehGassiApp.Domain.Advertisements
{
///
/// Repräsentiert eine Werbung
///
public class Advertisement : SyncEntity
{
///
/// Id des Kunden
///
public long CustomerId { get; set; }
///
/// Name des kunden
///
public string CustomerName { get; set; }
///
/// Id der Rubrik
///
public string AdvertisementCategoryId { get; set; }
///
/// Name der Rubrik
///
public string AdvertisementCategoryName { get; set; }
///
/// Startdatum der Listung
///
public DateTimeOffset? StartDate { get; set; }
///
/// Enddatum der Listung
///
public DateTimeOffset? EndDate { get; set; }
///
/// Rabatt in Prozent.
/// Wenn 0, dann ignorieren
///
public decimal Discount { get; set; }
///
/// Bild für die Werbung - Allgemein
///
public string Image { get; set; }
///
/// Bild für die Werbung - Allgemein 8:9
///
public string Image2 { get; set; }
///
/// Link für die Werbung - allgemein wenn nicht überschrieben
///
public string Url { get; set; }
///
/// Name der Werbung
///
public string Name { get; set; }
///
/// Beschreibung der Werbung
///
public string Description { get; set; }
///
/// Bild der Werbung für eine Sprache
///
public string ImageLanguage { get; set; }
///
/// Bild der Werbung für eine Sprache 8:9
///
public string Image2Language { get; set; }
///
/// Link für die Werbung für eine Sprache
///
public string UrlLanguage { get; set; }
///
/// Ist diese Werbung ein Favorit des Benutzers?
///
[NotMapped]
public bool IsFavourite
{
get => _isFavourite;
set
{
_isFavourite = value;
OnPropertyChanged();
}
}
private long _leftTicks;
[NotMapped]
public long LeftTicks
{
get => _leftTicks;
set => SetProperty(ref _leftTicks, value);
}
private string _timeLeft;
private bool _isFavourite;
[NotMapped]
public string TimeLeft {
get => _timeLeft;
set => SetProperty(ref _timeLeft, value);
}
public void SetTimeLeft()
{
var timeSpan = EndDate.Value - DateTimeOffset.UtcNow;
LeftTicks = timeSpan.Ticks;
timeSpan = new TimeSpan(timeSpan.Days, timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds);
var days = timeSpan.Days;
var hours = timeSpan.Hours;
var minutes = timeSpan.Minutes;
var seconds = timeSpan.Seconds;
if (days > 0)
{
TimeLeft = $"{days}T {hours:00}h {minutes:00}m";
}
else if (hours > 0)
{
TimeLeft = $"{hours:00}h {minutes:00}m {seconds:00}s";
}
else if (minutes > 0)
{
TimeLeft = $"{minutes:00}m {seconds:00}s";
}
else if (seconds > 0)
{
TimeLeft = $"{seconds:00}s";
}
else
{
TimeLeft = string.Empty;
}
}
}
}