diff --git a/PlexRequests.Core/IRequestService.cs b/PlexRequests.Core/IRequestService.cs index 18c8485e9..d8b1b1739 100644 --- a/PlexRequests.Core/IRequestService.cs +++ b/PlexRequests.Core/IRequestService.cs @@ -34,8 +34,8 @@ namespace PlexRequests.Core { long AddRequest(int providerId, RequestedModel model); bool CheckRequest(int providerId); - void DeleteRequest(int tmdbId); - void UpdateRequest(RequestedModel model); + void DeleteRequest(RequestedModel request); + bool UpdateRequest(RequestedModel model); RequestedModel Get(int id); IEnumerable GetAll(); bool BatchUpdate(List model); diff --git a/PlexRequests.Core/JsonRequestService.cs b/PlexRequests.Core/JsonRequestService.cs index f7b5097a4..450dc8822 100644 --- a/PlexRequests.Core/JsonRequestService.cs +++ b/PlexRequests.Core/JsonRequestService.cs @@ -44,6 +44,9 @@ namespace PlexRequests.Core private IRequestRepository Repo { get; } public long AddRequest(int providerId, RequestedModel model) { + var latestId = Repo.GetAll().OrderByDescending(x => x.Id).Select(x => x.Id).FirstOrDefault(); + var newId = latestId + 1; + model.Id = newId; var entity = new RequestBlobs { Type = model.Type, Content = ReturnBytes(model), ProviderId = model.ProviderId}; return Repo.Insert(entity); @@ -55,16 +58,16 @@ namespace PlexRequests.Core return blobs.Any(x => x.ProviderId == providerId); } - public void DeleteRequest(int tmdbId) + public void DeleteRequest(RequestedModel request) { - var blob = Repo.GetAll().FirstOrDefault(x => x.ProviderId == tmdbId); + var blob = Repo.Get(request.Id); Repo.Delete(blob); } - public void UpdateRequest(RequestedModel model) + public bool UpdateRequest(RequestedModel model) { var entity = new RequestBlobs { Type = model.Type, Content = ReturnBytes(model), ProviderId = model.ProviderId, Id = model.Id}; - Repo.Update(entity); + return Repo.Update(entity); } public RequestedModel Get(int id) @@ -85,7 +88,7 @@ namespace PlexRequests.Core public bool BatchUpdate(List model) { - var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ReturnBytes(m), ProviderId = m.ProviderId }).ToList(); + var entities = model.Select(m => new RequestBlobs { Type = m.Type, Content = ReturnBytes(m), ProviderId = m.ProviderId, Id = m.Id}).ToList(); return Repo.UpdateAll(entities); } diff --git a/PlexRequests.Core/RequestService.cs b/PlexRequests.Core/RequestService.cs index 22164fabd..99ab20bf4 100644 --- a/PlexRequests.Core/RequestService.cs +++ b/PlexRequests.Core/RequestService.cs @@ -50,16 +50,15 @@ namespace PlexRequests.Core return Repo.GetAll().Any(x => x.ProviderId == providerId); } - public void DeleteRequest(int tmdbId) + public void DeleteRequest(RequestedModel model) { - var entity = Repo.GetAll().FirstOrDefault(x => x.ProviderId == tmdbId); + var entity = Repo.Get(model.Id); Repo.Delete(entity); } - public void UpdateRequest(RequestedModel model) + public bool UpdateRequest(RequestedModel model) { - - Repo.Update(model); + return Repo.Update(model); } /// diff --git a/PlexRequests.Store/Repository/RequestJsonRepository.cs b/PlexRequests.Store/Repository/RequestJsonRepository.cs index 85b1781bb..54bdfd282 100644 --- a/PlexRequests.Store/Repository/RequestJsonRepository.cs +++ b/PlexRequests.Store/Repository/RequestJsonRepository.cs @@ -53,7 +53,8 @@ namespace PlexRequests.Store.Repository ResetCache(); using (var con = Db.DbConnection()) { - return con.Insert(entity); + var id = con.Insert(entity); + return id; } } diff --git a/PlexRequests.UI/Bootstrapper.cs b/PlexRequests.UI/Bootstrapper.cs index 2082f585d..cba01fd25 100644 --- a/PlexRequests.UI/Bootstrapper.cs +++ b/PlexRequests.UI/Bootstrapper.cs @@ -76,7 +76,7 @@ namespace PlexRequests.UI container.Register, SettingsServiceV2>(); container.Register, SettingsServiceV2>(); container.Register, GenericRepository>(); - container.Register(); + container.Register(); container.Register(); container.Register(); diff --git a/PlexRequests.UI/Modules/ApprovalModule.cs b/PlexRequests.UI/Modules/ApprovalModule.cs index 57bddf2cd..ca3a4bcdb 100644 --- a/PlexRequests.UI/Modules/ApprovalModule.cs +++ b/PlexRequests.UI/Modules/ApprovalModule.cs @@ -44,7 +44,7 @@ namespace PlexRequests.UI.Modules public class ApprovalModule : BaseModule { - public ApprovalModule(IRepository service, ISettingsService cpService, ICouchPotatoApi cpApi, ISonarrApi sonarrApi, + public ApprovalModule(IRequestService service, ISettingsService cpService, ICouchPotatoApi cpApi, ISonarrApi sonarrApi, ISettingsService sonarrSettings) : base("approval") { this.RequiresAuthentication(); @@ -59,12 +59,12 @@ namespace PlexRequests.UI.Modules Post["/approveall"] = x => ApproveAll(); } - private IRepository Service { get; set; } + private IRequestService Service { get; } private static Logger Log = LogManager.GetCurrentClassLogger(); - private ISettingsService SonarrSettings { get; set; } + private ISettingsService SonarrSettings { get; } private ISettingsService CpService { get; } - private ISonarrApi SonarrApi { get; set; } + private ISonarrApi SonarrApi { get; } private ICouchPotatoApi CpApi { get; } /// @@ -135,7 +135,7 @@ namespace PlexRequests.UI.Modules request.Approved = true; // Update the record - var inserted = Service.Update(request); + var inserted = Service.UpdateRequest(request); return Response.AsJson(inserted ? new JsonResponseModel {Result = true} @@ -195,7 +195,7 @@ namespace PlexRequests.UI.Modules try { - var result = Service.UpdateAll(updatedRequests); return Response.AsJson(result + var result = Service.BatchUpdate(updatedRequests); return Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "We could not approve all of the requests. Please try again or check the logs." }); diff --git a/PlexRequests.UI/Modules/RequestsModule.cs b/PlexRequests.UI/Modules/RequestsModule.cs index 68c997560..6b06f657d 100644 --- a/PlexRequests.UI/Modules/RequestsModule.cs +++ b/PlexRequests.UI/Modules/RequestsModule.cs @@ -45,7 +45,7 @@ namespace PlexRequests.UI.Modules public class RequestsModule : BaseModule { - public RequestsModule(IRepository service, ISettingsService prSettings, ISettingsService plex) : base("requests") + public RequestsModule(IRequestService service, ISettingsService prSettings, ISettingsService plex) : base("requests") { Service = service; PrSettings = prSettings; @@ -64,7 +64,7 @@ namespace PlexRequests.UI.Modules Post["/addnote"] = _ => AddNote((int)Request.Form.requestId, (string)Request.Form.noteArea); } - private IRepository Service { get; } + private IRequestService Service { get; } private ISettingsService PrSettings { get; } private ISettingsService PlexSettings { get; } @@ -140,7 +140,7 @@ namespace PlexRequests.UI.Modules } var currentEntity = Service.Get(requestid); - Service.Delete(currentEntity); + Service.DeleteRequest(currentEntity); return Response.AsJson(new JsonResponseModel { Result = true }); } @@ -165,7 +165,7 @@ namespace PlexRequests.UI.Modules : string.Empty; - var result = Service.Update(originalRequest); + var result = Service.UpdateRequest(originalRequest); return Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" }); @@ -186,7 +186,7 @@ namespace PlexRequests.UI.Modules originalRequest.Issues = IssueState.None; originalRequest.OtherMessage = string.Empty; - var result = Service.Update(originalRequest); + var result = Service.UpdateRequest(originalRequest); return Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "Could not clear issue, please try again or check the logs" }); @@ -202,7 +202,7 @@ namespace PlexRequests.UI.Modules originalRequest.Available = available; - var result = Service.Update(originalRequest); + var result = Service.UpdateRequest(originalRequest); return Response.AsJson(result ? new { Result = true, Available = available, Message = string.Empty } : new { Result = false, Available = false, Message = "Could not update the availability, please try again or check the logs" }); @@ -218,7 +218,7 @@ namespace PlexRequests.UI.Modules originalRequest.AdminNote = noteArea; - var result = Service.Update(originalRequest); + var result = Service.UpdateRequest(originalRequest); return Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "Could not update the notes, please try again or check the logs" }); diff --git a/PlexRequests.UI/Program.cs b/PlexRequests.UI/Program.cs index 9db2c673b..8a7d5a6ce 100644 --- a/PlexRequests.UI/Program.cs +++ b/PlexRequests.UI/Program.cs @@ -71,7 +71,6 @@ namespace PlexRequests.UI if (string.IsNullOrEmpty(uri)) uri = GetStartupUri(); -; var options = new StartOptions(uri) { ServerFactory = "Microsoft.Owin.Host.HttpListener"