From fb9f33a42abb34cd4609c70d4203597df4922ebe Mon Sep 17 00:00:00 2001 From: Max Jenke Date: Thu, 14 Nov 2019 20:39:55 +0100 Subject: [PATCH] reduced .Where overhead, fixed a bug when deleting list videos and smoothened transition to list mode --- SubBox/Controllers/ValuesController.cs | 21 ++++++++++++++------- SubBox/SubBox.csproj | 2 +- SubBox/wwwroot/index.html | 22 +++++++++++++++------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/SubBox/Controllers/ValuesController.cs b/SubBox/Controllers/ValuesController.cs index b96ee15..d803602 100644 --- a/SubBox/Controllers/ValuesController.cs +++ b/SubBox/Controllers/ValuesController.cs @@ -25,7 +25,7 @@ public ValuesController(AppDbContext context) [HttpGet("videos")] public async Task>> GetVideos() { - var result = await context.Videos.Where(v => v.New).Where(v => v.List == 0).OrderByDescending(v => v.PublishedAt.Ticks).ToListAsync(); + var result = await context.Videos.Where(v => v.New && v.List == 0).OrderByDescending(v => v.PublishedAt.Ticks).ToListAsync(); return result; } @@ -34,7 +34,7 @@ public async Task>> GetVideos() [HttpGet("videos/old")] public async Task>> GetOldVideos() { - var result = await context.Videos.Where(v => !v.New).Where(v => v.List == 0).OrderByDescending(v => v.PublishedAt.Ticks).ToListAsync(); + var result = await context.Videos.Where(v => !v.New && v.List == 0).OrderByDescending(v => v.PublishedAt.Ticks).ToListAsync(); return result; } @@ -52,7 +52,7 @@ public async Task>> GetChannels() [HttpGet("lists")] public async Task>> GetLists() { - var result = await context.Videos.Where(v => v.List != 0).Where(v => v.Index == 0).OrderBy(v => v.List).ToListAsync(); + var result = await context.Videos.Where(v => v.List != 0 && v.Index == 0).OrderBy(v => v.List).ToListAsync(); return result; } @@ -142,7 +142,7 @@ public void NextEntry(int number) { context.Videos.Where(v => v.List == number).ToList().ForEach(v => v.Index -= 1); - Video video = context.Videos.Where(v => v.List == number).Where(v => v.Index == 1).FirstOrDefault(); + Video video = context.Videos.Where(v => v.List == number && v.Index == 1).FirstOrDefault(); if (video == null) { @@ -158,7 +158,7 @@ public void NextEntry(int number) [HttpPost("list/previous/{number}")] public void PrevEntry(int number) { - Video video = context.Videos.Where(v => v.List == number).Where(v => v.Index == -1).FirstOrDefault(); + Video video = context.Videos.Where(v => v.List == number && v.Index == -1).FirstOrDefault(); if (video == null) { @@ -267,7 +267,14 @@ public void DeleteVideo(string id) { context.Videos.Remove(video); - context.Videos.Where(v => v.List == video.List).Where(v => v.Index > video.Index).ToList().ForEach(v => v.Index -= 1); + if (video.Index >= 0) + { + context.Videos.Where(v => v.List == video.List && v.Index > video.Index).ToList().ForEach(v => v.Index -= 1); + } + else + { + context.Videos.Where(v => v.List == video.List && v.Index < video.Index).ToList().ForEach(v => v.Index += 1); + } } context.SaveChanges(); @@ -293,7 +300,7 @@ public void DeleteChannel(string id) context.Channels.Remove(channel); - IEnumerable