private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) { resource.EpisodeCount = seriesStatistics.EpisodeCount; resource.EpisodeFileCount = seriesStatistics.EpisodeFileCount; resource.NextAiring = seriesStatistics.NextAiring; resource.PreviousAiring = seriesStatistics.PreviousAiring; resource.SizeOnDisk = seriesStatistics.SizeOnDisk; }
private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) { resource.PreviousAiring = seriesStatistics.PreviousAiring; resource.NextAiring = seriesStatistics.NextAiring; resource.Statistics = seriesStatistics.ToResource(resource.Seasons); if (seriesStatistics.SeasonStatistics != null) { foreach (var season in resource.Seasons) { season.Statistics = seriesStatistics.SeasonStatistics.SingleOrDefault(s => s.SeasonNumber == season.SeasonNumber).ToResource(); } } }
public static SeriesStatisticsResource ToResource(this SeriesStatistics model, List <SeasonResource> seasons) { if (model == null) { return(null); } return(new SeriesStatisticsResource { SeasonCount = seasons == null ? 0 : seasons.Where(s => s.SeasonNumber > 0).Count(), EpisodeFileCount = model.EpisodeFileCount, EpisodeCount = model.EpisodeCount, TotalEpisodeCount = model.TotalEpisodeCount, SizeOnDisk = model.SizeOnDisk }); }
private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) { resource.TotalEpisodeCount = seriesStatistics.TotalEpisodeCount; resource.EpisodeCount = seriesStatistics.EpisodeCount; resource.EpisodeFileCount = seriesStatistics.EpisodeFileCount; resource.NextAiring = seriesStatistics.NextAiring; resource.PreviousAiring = seriesStatistics.PreviousAiring; resource.SizeOnDisk = seriesStatistics.SizeOnDisk; if (seriesStatistics.SeasonStatistics != null) { foreach (var season in resource.Seasons) { season.Statistics = seriesStatistics.SeasonStatistics.SingleOrDefault(s => s.SeasonNumber == season.SeasonNumber).InjectTo <SeasonStatisticsResource>(); } } }
private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) { resource.TotalEpisodeCount = seriesStatistics.TotalEpisodeCount; resource.EpisodeCount = seriesStatistics.EpisodeCount; resource.EpisodeFileCount = seriesStatistics.EpisodeFileCount; resource.NextAiring = seriesStatistics.NextAiring; resource.PreviousAiring = seriesStatistics.PreviousAiring; resource.SizeOnDisk = seriesStatistics.SizeOnDisk; if (seriesStatistics.SeasonStatistics != null) { var dictSeasonStats = seriesStatistics.SeasonStatistics.ToDictionary(v => v.SeasonNumber); foreach (var season in resource.Seasons) { season.Statistics = dictSeasonStats.GetValueOrDefault(season.SeasonNumber).ToResource(); } } }
private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) { resource.EpisodeCount = seriesStatistics.EpisodeCount; resource.EpisodeFileCount = seriesStatistics.EpisodeFileCount; resource.NextAiring = seriesStatistics.NextAiring; }
private async void Base_Loaded(object sender, RoutedEventArgs e) { List <SeriesStatistics> stats = new List <SeriesStatistics>(); double totalSize = 0; await Task.Run(() => { var list = Database.GetSeries(); foreach (var item in list) { SeriesStatistics statistics = new SeriesStatistics(); statistics.Files = new DirectoryInfo(item.libraryPath).GetFiles("*.*", SearchOption.AllDirectories).ToList(); statistics.Series = item; statistics.Files.ForEach(x => { totalSize += x.Length; statistics.Size += x.Length; }); stats.Add(statistics); } double totalTemp = 0; for (int i = 0; i < stats.Count; i++) { totalTemp += stats[i].SizePercentage = (stats[i].Size / totalSize) * 100; } stats = stats.OrderByDescending(x => x.SizePercentage).ToList(); for (int i = stats.Count - 1; i >= 0; i--) { var percentage = (stats[i].SizePercentage / stats[0].SizePercentage) * 100; if (percentage < 5) { stats.RemoveAt(i); } else { stats[i].RecalculatedPercentage = percentage; } } }); for (int i = 0; i < stats.Count; i++) { var baseColumn = new ColumnDefinition(); Grid baseGrid = new Grid(); var spacerLeft = new ColumnDefinition(); var spacerRight = new ColumnDefinition(); spacerLeft.Width = new GridLength(250 / stats.Count, GridUnitType.Star); spacerRight.Width = new GridLength(250 / stats.Count, GridUnitType.Star); baseColumn.Width = new GridLength(1000 / stats.Count, GridUnitType.Star); Base.ColumnDefinitions.Add(spacerLeft); Base.ColumnDefinitions.Add(baseColumn); Base.ColumnDefinitions.Add(spacerRight); Base.Children.Add(baseGrid); Grid.SetColumn(baseGrid, (i + (i * 2)) + 1); var topRow = new RowDefinition(); topRow.Height = new GridLength(100 - stats[i].RecalculatedPercentage, GridUnitType.Star); var bottomRow = new RowDefinition(); bottomRow.Height = new GridLength(stats[i].RecalculatedPercentage, GridUnitType.Star); baseGrid.RowDefinitions.Add(topRow); baseGrid.RowDefinitions.Add(bottomRow); Grid statGrid = new Grid(); statGrid.ToolTip = stats[i].Series.seriesName + ", " + GetSize(stats[i].Size) + ", " + stats[i].SizePercentage.ToString("N2").Replace(",", ".") + "%"; statGrid.Background = (Brush)FindResource("AccentColor"); baseGrid.Children.Add(statGrid); Grid.SetRow(statGrid, 1); } TopText.Text = "Total disk usage: " + GetSize(totalSize); DoubleAnimation doubleAnimation = new DoubleAnimation(0, 245, new TimeSpan(0, 0, 0, 0, 500)); Base.BeginAnimation(Grid.HeightProperty, doubleAnimation); Base.BeginStoryboard((Storyboard)FindResource("OpacityUp")); }