summaryrefslogtreecommitdiffstats
path: root/ComicRackWebViewer/BCRUser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ComicRackWebViewer/BCRUser.cs')
-rw-r--r--ComicRackWebViewer/BCRUser.cs88
1 files changed, 46 insertions, 42 deletions
diff --git a/ComicRackWebViewer/BCRUser.cs b/ComicRackWebViewer/BCRUser.cs
index f3802fc..b5eb6d3 100644
--- a/ComicRackWebViewer/BCRUser.cs
+++ b/ComicRackWebViewer/BCRUser.cs
@@ -2,6 +2,9 @@ using Nancy.Security;
using System;
using System.Collections.Generic;
using System.Data.SQLite;
+using System.Linq;
+using ComicRackWebViewer;
+using LinqToDB;
namespace BCR
{
@@ -9,11 +12,11 @@ namespace BCR
{
// Cache the entire list of comic progress, so we only need to perform one SQL lookup instead of
// one per comic. This speeds up the displaying of a list of comics.
- public Dictionary<Guid, ComicProgress> comicProgress = new Dictionary<Guid, ComicProgress>();
+ public Dictionary<Guid, comic_progress> comicProgress2 = new Dictionary<Guid, comic_progress>();
public Guid homeListId;
- public UserSettings settings = new UserSettings();
+ public user_settings settings2 = new user_settings();
public IEnumerable<string> Claims { get; set; }
@@ -23,10 +26,10 @@ namespace BCR
public string UserName { get; set; }
- public ComicProgress GetComicProgress(Guid comicId)
+ public comic_progress GetComicProgress(Guid comicId)
{
- ComicProgress progress;
- if (comicProgress.TryGetValue(comicId, out progress))
+ comic_progress progress;
+ if (comicProgress2.TryGetValue(comicId, out progress))
{
return progress;
}
@@ -34,35 +37,34 @@ namespace BCR
return null;
}
- public UserSettings GetSettings()
+ public user_settings GetSettings()
{
- return settings;
+ return settings2;
}
public void Initialize()
{
- settings.Load(this);
+ settings2 = (from s in Database.Instance.DB.user_settings
+ where s.user_id == UserId
+ select s).Single();
- comicProgress.Clear();
- using (SQLiteDataReader reader = Database.Instance.ExecuteReader("SELECT id, comic_id, current_page, last_page_read, date_last_read FROM comic_progress WHERE user_id = " + UserId + ";"))
- {
- while (reader.Read())
- {
- ComicProgress progress = new ComicProgress();
- progress.DatabaseId = reader.GetInt32(0);
- progress.Id = new Guid(reader.GetString(1));
- progress.CurrentPage = reader.GetInt32(2);
- progress.LastPageRead = reader.GetInt32(3);
- progress.DateLastRead = reader.GetString(4);
- comicProgress.Add(progress.Id, progress);
- }
- }
+ comicProgress2.Clear();
+
+ var result = from comic in Database.Instance.DB.comic_progress
+ where comic.user_id == UserId
+ select comic;
+
+ comicProgress2 = result.ToDictionary<comic_progress, Guid>((p) => { return Guid.Parse(p.comic_id); });
}
public void ResetComicProgress(Guid comicId)
{
- comicProgress.Remove(comicId);
- Database.Instance.ExecuteNonQuery("DELETE FROM comic_progress WHERE comic_id = '" + comicId + "' AND user_id = " + UserId + ";");
+ comicProgress2.Remove(comicId);
+ string comic_id = comicId.ToString();
+
+ Database.Instance.DB.comic_progress
+ .Where(p => p.comic_id == comic_id && p.user_id == UserId)
+ .Delete();
}
public bool SetAccessLevel()
@@ -77,35 +79,37 @@ namespace BCR
public void UpdateComicProgress(Guid comicId, int currentPage)
{
- ComicProgress progress;
- if (comicProgress.TryGetValue(comicId, out progress))
+ comic_progress progress2;
+ if (comicProgress2.TryGetValue(comicId, out progress2))
{
- if (currentPage > progress.LastPageRead)
- progress.LastPageRead = currentPage;
+ if (currentPage > progress2.last_page_read)
+ progress2.last_page_read = currentPage;
+
+ progress2.current_page = currentPage;
+ progress2.date_last_read = System.DateTime.Now.ToString("s");
- progress.CurrentPage = currentPage;
- progress.DateLastRead = System.DateTime.Now.ToString("s");
- Database.Instance.ExecuteNonQuery("UPDATE comic_progress SET current_page = " + progress.CurrentPage + ", last_page_read = " + progress.LastPageRead + ", date_last_read = '" + progress.DateLastRead + "' WHERE id = " + progress.DatabaseId);
+ Database.Instance.DB.Update(progress2);
}
else
{
- progress = new ComicProgress();
- progress.Id = comicId;
- progress.LastPageRead = currentPage;
- progress.CurrentPage = currentPage;
- progress.DateLastRead = System.DateTime.Now.ToString("s");
+ progress2 = new comic_progress();
+ progress2.comic_id = comicId.ToString();
+ progress2.last_page_read = currentPage;
+ progress2.current_page = currentPage;
+ progress2.date_last_read = System.DateTime.Now.ToString("s");
- Database.Instance.ExecuteNonQuery("INSERT INTO comic_progress (user_id, comic_id, current_page, last_page_read, date_last_read) VALUES(" + UserId + ", '" + progress.Id.ToString() + "', " + progress.CurrentPage + ", " + progress.LastPageRead + ", '" + progress.DateLastRead + "');");
+ comicProgress2.Add(comicId, progress2);
- progress.DatabaseId = (int)Database.Instance.GetLastInsertRowId();
- comicProgress.Add(comicId, progress);
+ progress2.id = Convert.ToInt64(Database.Instance.DB.InsertWithIdentity(progress2));
+ comicProgress2.Add(comicId, progress2);
+
}
}
- public void UpdateSettings(UserSettings settings)
+ public void UpdateSettings(user_settings settings)
{
- this.settings = settings;
- settings.Save(this);
+ settings2 = settings;
+ Database.Instance.DB.Update(settings2);
}
/*
public Guid GetHomeList()