#104 page modification method (code not complete and working and a db migration is required which is not yet generated)
This commit is contained in:
parent
4ec8b509e7
commit
44f4136020
@ -240,6 +240,11 @@ namespace RMuseum.DbContext
|
||||
/// </summary>
|
||||
public DbSet<GanjoorCommentAbuseReport> GanjoorReportedComments { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ganjoor Page Snapshots
|
||||
/// </summary>
|
||||
public DbSet<GanjoorPageSnapshot> GanjoorPageSnapshots { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
91
RMuseum/Models/Ganjoor/GanjoorPageSnapshot.cs
Normal file
91
RMuseum/Models/Ganjoor/GanjoorPageSnapshot.cs
Normal file
@ -0,0 +1,91 @@
|
||||
using RSecurityBackend.Models.Auth.Db;
|
||||
using System;
|
||||
|
||||
namespace RMuseum.Models.Ganjoor
|
||||
{
|
||||
/// <summary>
|
||||
/// snapshot of ganjoor pages to keep track of their changes
|
||||
/// </summary>
|
||||
public class GanjoorPageSnapshot
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ganjoor page id
|
||||
/// </summary>
|
||||
public int GanjoorPageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ganjoor page
|
||||
/// </summary>
|
||||
public GanjoorPage GanjoorPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// id - this record is then modified by this user and made obsolete
|
||||
/// </summary>
|
||||
public Guid MadeObsoleteByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// this record is then modified by this user and made obsolete
|
||||
/// </summary>
|
||||
public RAppUser MadeObsoleteByUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// record date
|
||||
/// </summary>
|
||||
public DateTime RecordDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// a description of the modfication
|
||||
/// </summary>
|
||||
public string Note { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// title
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// url => slug
|
||||
/// </summary>
|
||||
public string UrlSlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Html Text
|
||||
/// </summary>
|
||||
public string HtmlText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Poem Rhythm
|
||||
/// </summary>
|
||||
public string Rhythm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// rhyme letters
|
||||
/// </summary>
|
||||
public string RhymeLetters { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// source name
|
||||
/// </summary>
|
||||
public string SourceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// source url slug
|
||||
/// </summary>
|
||||
public string SourceUrlSlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
|
||||
/// </summary>
|
||||
public string OldTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// old collection page url e.g /saadi/tayyebat
|
||||
/// </summary>
|
||||
public string OldTagPageUrl { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
namespace RMuseum.Models.Ganjoor.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// modify page view model
|
||||
/// </summary>
|
||||
public class GanjoorModifyPageViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// title
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// url => slug
|
||||
/// </summary>
|
||||
public string UrlSlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Html Text
|
||||
/// </summary>
|
||||
public string HtmlText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Poem Rhythm
|
||||
/// </summary>
|
||||
public string Rhythm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// rhyme letters
|
||||
/// </summary>
|
||||
public string RhymeLetters { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// source name
|
||||
/// </summary>
|
||||
public string SourceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// source url slug
|
||||
/// </summary>
|
||||
public string SourceUrlSlug { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
|
||||
/// </summary>
|
||||
public string OldTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// old collection page url e.g /saadi/tayyebat
|
||||
/// </summary>
|
||||
public string OldTagPageUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// a description of the modfication
|
||||
/// </summary>
|
||||
public string Note { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1399,6 +1399,11 @@
|
||||
Ganjoor Reported Comments
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorPageSnapshots">
|
||||
<summary>
|
||||
Ganjoor Page Snapshots
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Artifact.PublishStatus">
|
||||
<summary>
|
||||
Items or pictures status
|
||||
@ -3924,6 +3929,91 @@
|
||||
post date
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.GanjoorPageSnapshot">
|
||||
<summary>
|
||||
snapshot of ganjoor pages to keep track of their changes
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.Id">
|
||||
<summary>
|
||||
id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.GanjoorPageId">
|
||||
<summary>
|
||||
ganjoor page id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.GanjoorPage">
|
||||
<summary>
|
||||
ganjoor page
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.MadeObsoleteByUserId">
|
||||
<summary>
|
||||
id - this record is then modified by this user and made obsolete
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.MadeObsoleteByUser">
|
||||
<summary>
|
||||
this record is then modified by this user and made obsolete
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.RecordDate">
|
||||
<summary>
|
||||
record date
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.Note">
|
||||
<summary>
|
||||
a description of the modfication
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.Title">
|
||||
<summary>
|
||||
title
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.UrlSlug">
|
||||
<summary>
|
||||
url => slug
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.HtmlText">
|
||||
<summary>
|
||||
Html Text
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.Rhythm">
|
||||
<summary>
|
||||
Poem Rhythm
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.RhymeLetters">
|
||||
<summary>
|
||||
rhyme letters
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.SourceName">
|
||||
<summary>
|
||||
source name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.SourceUrlSlug">
|
||||
<summary>
|
||||
source url slug
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.OldTag">
|
||||
<summary>
|
||||
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.GanjoorPageSnapshot.OldTagPageUrl">
|
||||
<summary>
|
||||
old collection page url e.g /saadi/tayyebat
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.GanjoorPageType">
|
||||
<summary>
|
||||
Ganjoor Page Type
|
||||
@ -4530,6 +4620,61 @@
|
||||
this can be used by clients
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel">
|
||||
<summary>
|
||||
modify page view model
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.Title">
|
||||
<summary>
|
||||
title
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.UrlSlug">
|
||||
<summary>
|
||||
url => slug
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.HtmlText">
|
||||
<summary>
|
||||
Html Text
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.Rhythm">
|
||||
<summary>
|
||||
Poem Rhythm
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.RhymeLetters">
|
||||
<summary>
|
||||
rhyme letters
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.SourceName">
|
||||
<summary>
|
||||
source name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.SourceUrlSlug">
|
||||
<summary>
|
||||
source url slug
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.OldTag">
|
||||
<summary>
|
||||
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.OldTagPageUrl">
|
||||
<summary>
|
||||
old collection page url e.g /saadi/tayyebat
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel.Note">
|
||||
<summary>
|
||||
a description of the modfication
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorPageCompleteViewModel">
|
||||
<summary>
|
||||
Ganjoor Page View Model
|
||||
@ -7453,6 +7598,15 @@
|
||||
<param name="poetId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.ModifyPage(System.Int32,System.Guid,RMuseum.Models.Ganjoor.ViewModels.GanjoorModifyPageViewModel)">
|
||||
<summary>
|
||||
modify page
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<param name="editingUserId"></param>
|
||||
<param name="pageData"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.GanjoorService._context">
|
||||
<summary>
|
||||
Database Context
|
||||
|
||||
@ -1749,6 +1749,63 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// modify page
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="editingUserId"></param>
|
||||
/// <param name="pageData"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorPageCompleteViewModel>> ModifyPage(int id, Guid editingUserId, GanjoorModifyPageViewModel pageData)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dbPage = await _context.GanjoorPages.Where(p => p.Id == id).SingleOrDefaultAsync();
|
||||
if (dbPage == null)
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null);//not found
|
||||
|
||||
|
||||
|
||||
GanjoorPageSnapshot snapshot = new GanjoorPageSnapshot()
|
||||
{
|
||||
GanjoorPageId = id,
|
||||
MadeObsoleteByUserId = editingUserId,
|
||||
RecordDate = DateTime.Now,
|
||||
Note = pageData.Note,
|
||||
Title = dbPage.Title,
|
||||
UrlSlug = dbPage.UrlSlug,
|
||||
HtmlText = dbPage.HtmlText,
|
||||
};
|
||||
|
||||
GanjoorPoem dbPoem = null;
|
||||
|
||||
if (dbPage.GanjoorPageType == GanjoorPageType.PoemPage)
|
||||
{
|
||||
dbPoem = await _context.GanjoorPoems.Include(p => p.GanjoorMetre).Where(p => p.Id == id).SingleOrDefaultAsync();
|
||||
|
||||
snapshot.SourceName = dbPoem.SourceName;
|
||||
snapshot.SourceUrlSlug = dbPoem.SourceUrlSlug;
|
||||
snapshot.Rhythm = dbPoem.GanjoorMetre == null ? null : dbPoem.GanjoorMetre.Rhythm;
|
||||
snapshot.RhymeLetters = dbPoem.RhymeLetters;
|
||||
snapshot.OldTag = dbPoem.OldTag;
|
||||
snapshot.OldTagPageUrl = dbPoem.OldTagPageUrl;
|
||||
}
|
||||
|
||||
_context.GanjoorPageSnapshots.Add(snapshot);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
//TODO actula modification goes here:
|
||||
|
||||
|
||||
return await GetPageByUrl(dbPage.FullUrl);
|
||||
}
|
||||
catch(Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorPageCompleteViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database Context
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user