2022-02-09 20:51:35 +01:00
|
|
|
|
using System.Linq;
|
2022-02-09 20:45:14 +01:00
|
|
|
|
using c3stream.DataModels;
|
|
|
|
|
using c3stream.DataModels.Tables;
|
|
|
|
|
using LinqToDB;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
2022-02-09 20:51:35 +01:00
|
|
|
|
namespace c3stream.Pages;
|
2022-02-09 20:45:14 +01:00
|
|
|
|
|
2022-02-09 20:51:35 +01:00
|
|
|
|
public class WatchlistModel : PageModel {
|
|
|
|
|
private readonly ILogger<ConferenceModel> _logger;
|
2022-02-09 20:45:14 +01:00
|
|
|
|
|
2022-02-09 20:51:35 +01:00
|
|
|
|
public WatchlistModel(ILogger<ConferenceModel> logger) => _logger = logger;
|
2022-02-09 20:45:14 +01:00
|
|
|
|
|
2022-02-09 20:51:35 +01:00
|
|
|
|
public void OnGet() {
|
|
|
|
|
var guid = Request.Query["guid"].ToString();
|
|
|
|
|
var state = Request.Query["state"].ToString();
|
|
|
|
|
var userid = Request.Cookies["bookmark"];
|
|
|
|
|
if (string.IsNullOrWhiteSpace(guid) || string.IsNullOrWhiteSpace(state) || !Request.Cookies.ContainsKey("bookmark"))
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
using var db = new Database.DbConn();
|
|
|
|
|
var existing = db.States.FirstOrDefault(p => p.TalkId == guid && p.UserId == userid);
|
|
|
|
|
if (existing != null)
|
|
|
|
|
if (state == "unwatched") {
|
|
|
|
|
db.States.Delete(p => p == existing);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
existing.State = state;
|
|
|
|
|
db.Update(existing);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
db.Insert(new States { State = state, TalkId = guid, UserId = userid });
|
|
|
|
|
|
|
|
|
|
Response.Redirect("/");
|
2022-02-09 20:45:14 +01:00
|
|
|
|
}
|
|
|
|
|
}
|