Files
VDownload/VDownload/Views/Home/Controls/HomeSerialAddingVideoPanel.xaml.cs

104 lines
3.2 KiB
C#

using System;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using VDownload.Core.Interfaces;
using VDownload.Core.Services;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
namespace VDownload.Views.Home.Controls
{
public sealed partial class HomeSerialAddingVideoPanel : UserControl
{
#region CONSTANTS
private readonly ResourceDictionary ImagesRes = new ResourceDictionary { Source = new Uri("ms-appx:///Resources/Images.xaml") };
#endregion
#region CONSTRUCTORS
public HomeSerialAddingVideoPanel(IVideo videoService)
{
this.InitializeComponent();
// Set video service object
VideoService = videoService;
// Set metadata
ThumbnailImage = VideoService.Metadata.Thumbnail != null ? new BitmapImage { UriSource = VideoService.Metadata.Thumbnail } : (BitmapImage)ImagesRes["UnknownThumbnailImage"];
SourceImage = new BitmapIcon { UriSource = new Uri($"ms-appx:///Assets/Sources/{VideoService.GetType().Namespace.Split(".").Last()}.png"), ShowAsMonochrome = false };
Title = VideoService.Metadata.Title;
Author = VideoService.Metadata.Author;
Views = VideoService.Metadata.Views.ToString();
Date = VideoService.Metadata.Date.ToString(CultureInfo.InstalledUICulture.DateTimeFormat.ShortDatePattern);
Duration = TimeSpanCustomFormat.ToOptTHBaseMMSS(VideoService.Metadata.Duration);
// Set video options control
HomeVideoAddingOptionsControl = new HomeAddingVideoOptions(VideoService);
}
#endregion
#region PROPERTIES
// BASE VIDEO DATA
public IVideo VideoService { get; set; }
// VIDEO DATA
private ImageSource ThumbnailImage { get; set; }
private IconElement SourceImage { get; set; }
private string Title { get; set; }
private string Author { get; set; }
private string Views { get; set; }
private string Date { get; set; }
private string Duration { get; set; }
// OPTIONS CONTROL
public HomeAddingVideoOptions HomeVideoAddingOptionsControl { get; private set; }
#endregion
#region EVENT HANDLERS VOIDS
// ON CONTROL LOADING
private async void HomeSerialAddingVideoPanel_Loading(FrameworkElement sender, object args)
{
await HomeVideoAddingOptionsControl.Init();
HomeSerialAddingVideoExpander.Content = HomeVideoAddingOptionsControl;
}
// SOURCE BUTTON CLICKED
private async void HomeSerialAddingVideoPanelSourceButton_Click(object sender, RoutedEventArgs e)
{
// Launch the website
await Windows.System.Launcher.LaunchUriAsync(VideoService.Url);
}
// DELETE BUTTON CLICKED
private void HomeSerialAddingVideoPanelDeleteButton_Click(object sender, RoutedEventArgs e)
{
DeleteRequested?.Invoke(this, EventArgs.Empty);
}
#endregion
#region EVENT HANDLERS
public event EventHandler DeleteRequested;
#endregion
}
}