#1 basic model for PoemNarration
This commit is contained in:
parent
f81402ced1
commit
dcabfce2e8
39
RMuseum/Models/GanjoorAudio/AudioSyncStatus.cs
Normal file
39
RMuseum/Models/GanjoorAudio/AudioSyncStatus.cs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
namespace RMuseum.Models.GanjoorAudio
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Synchronization Status (binary combination is acceptable)
|
||||||
|
/// </summary>
|
||||||
|
public enum AudioSyncStatus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// no changed
|
||||||
|
/// </summary>
|
||||||
|
Synchronized = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// new upload
|
||||||
|
/// </summary>
|
||||||
|
NewItem = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// meta data should be updated
|
||||||
|
/// </summary>
|
||||||
|
MetadataChanged = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// sound files should be reuploaded
|
||||||
|
/// </summary>
|
||||||
|
SoundFilesChanged = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Xml file should be reuploaded
|
||||||
|
/// </summary>
|
||||||
|
XmlFileChanged = 8,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Item is deleted
|
||||||
|
/// </summary>
|
||||||
|
Deleted = 16
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
152
RMuseum/Models/GanjoorAudio/PoemNarration.cs
Normal file
152
RMuseum/Models/GanjoorAudio/PoemNarration.cs
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
using RSecurityBackend.Models.Auth.Db;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
namespace RMuseum.Models.GanjoorAudio
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Poem Narration
|
||||||
|
/// </summary>
|
||||||
|
public class PoemNarration
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Owner User
|
||||||
|
/// </summary>
|
||||||
|
public RAppUser Owner { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Owner User Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid OwnerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ganjoor Post Id
|
||||||
|
/// </summary>
|
||||||
|
public int GanjoorPostId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This determines where an audio is displayed between a list of sounds related to a specfic poem
|
||||||
|
/// </summary>
|
||||||
|
public int AudioOrder { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Final data is actually exported to a MySQL database which this auto increment field is its key
|
||||||
|
/// </summary>
|
||||||
|
public int GanjoorAudioId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Using this field content you would determine xml, mp3 and ogg file names
|
||||||
|
/// </summary>
|
||||||
|
public string FileNameWithoutExtension { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// combining this with <see cref="FileNameWithoutExtension"/> + .ext would preduce relative path of sound files on our file server the full path would become [HOMEPath] + '/i/' + this value
|
||||||
|
/// </summary>
|
||||||
|
/// <sample>
|
||||||
|
/// "a2"
|
||||||
|
/// </sample>
|
||||||
|
/// <remarks>
|
||||||
|
/// We had previously used different pathes because when a directory became overcrowded our connection time would increase unbearably due to IRAN internet problems, so it is sensible to store it per record and not as a global option value
|
||||||
|
/// </remarks>
|
||||||
|
public string SoundFilesFolder { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MP3 File Path
|
||||||
|
/// </summary>
|
||||||
|
public string Mp3FilePath { get { return $"/i/{SoundFilesFolder}/{FileNameWithoutExtension}.mp3"; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MP3 url
|
||||||
|
/// </summary>
|
||||||
|
public string Mp3Url { get { return $"https://i.ganjoor.net/{SoundFilesFolder}/{FileNameWithoutExtension}.mp3"; } }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OGG File Path
|
||||||
|
/// </summary>
|
||||||
|
public string OggFilePath { get { return $"/i/{SoundFilesFolder}/{FileNameWithoutExtension}.ogg"; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OGG url
|
||||||
|
/// </summary>
|
||||||
|
public string OggUrl { get { return $"https://i.ganjoor.net/{SoundFilesFolder}/{FileNameWithoutExtension}.ogg"; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is also a legacy field
|
||||||
|
/// </summary>
|
||||||
|
/// <sample>
|
||||||
|
/// "/i/a2/x"
|
||||||
|
/// </sample>
|
||||||
|
public string XMLFilePath { get { return $"/i/{SoundFilesFolder}/x/{FileNameWithoutExtension}.xml"; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Title
|
||||||
|
/// </summary>
|
||||||
|
public string AudioTitle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Artist
|
||||||
|
/// </summary>
|
||||||
|
public string AudioArtist { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Artist Url
|
||||||
|
/// </summary>
|
||||||
|
public string AudioArtistUrl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Source
|
||||||
|
/// </summary>
|
||||||
|
public string AudioSrc { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Src Url
|
||||||
|
/// </summary>
|
||||||
|
public string AudioSrcUrl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Legacy Audio Guid
|
||||||
|
/// </summary>
|
||||||
|
public Guid LegacyAudioGuid { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio File CheckSum
|
||||||
|
/// </summary>
|
||||||
|
public string Mp3FileCheckSum { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mp3 size in bytes
|
||||||
|
/// </summary>
|
||||||
|
public int Mp3SizeInBytes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ogg size in bytes
|
||||||
|
/// </summary>
|
||||||
|
public int OggSizeInBytes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio Date
|
||||||
|
/// </summary>
|
||||||
|
public DateTime UploadDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MP3 File temporary pass on Windows Server
|
||||||
|
/// </summary>
|
||||||
|
public string TemporaryUploadedMp3FilePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// XML File temporary pass on Windows Server
|
||||||
|
/// </summary>
|
||||||
|
public string TemporaryUploadedXmlFilePath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Value is one or a combination of <see cref="RMuseum.Models.GanjoorAudio.AudioSyncStatus"/>
|
||||||
|
/// </summary>
|
||||||
|
public int AudioSyncStatus { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1495,6 +1495,185 @@
|
|||||||
User Note
|
User Note
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:RMuseum.Models.GanjoorAudio.AudioSyncStatus">
|
||||||
|
<summary>
|
||||||
|
Audio Synchronization Status (binary combination is acceptable)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.Synchronized">
|
||||||
|
<summary>
|
||||||
|
no changed
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.NewItem">
|
||||||
|
<summary>
|
||||||
|
new upload
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.MetadataChanged">
|
||||||
|
<summary>
|
||||||
|
meta data should be updated
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.SoundFilesChanged">
|
||||||
|
<summary>
|
||||||
|
sound files should be reuploaded
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.XmlFileChanged">
|
||||||
|
<summary>
|
||||||
|
Xml file should be reuploaded
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:RMuseum.Models.GanjoorAudio.AudioSyncStatus.Deleted">
|
||||||
|
<summary>
|
||||||
|
Item is deleted
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:RMuseum.Models.GanjoorAudio.PoemNarration">
|
||||||
|
<summary>
|
||||||
|
Poem Narration
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Id">
|
||||||
|
<summary>
|
||||||
|
Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Owner">
|
||||||
|
<summary>
|
||||||
|
Owner User
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.OwnerId">
|
||||||
|
<summary>
|
||||||
|
Owner User Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.GanjoorPostId">
|
||||||
|
<summary>
|
||||||
|
Ganjoor Post Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioOrder">
|
||||||
|
<summary>
|
||||||
|
This determines where an audio is displayed between a list of sounds related to a specfic poem
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.GanjoorAudioId">
|
||||||
|
<summary>
|
||||||
|
Final data is actually exported to a MySQL database which this auto increment field is its key
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.FileNameWithoutExtension">
|
||||||
|
<summary>
|
||||||
|
Using this field content you would determine xml, mp3 and ogg file names
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.SoundFilesFolder">
|
||||||
|
<summary>
|
||||||
|
combining this with <see cref="P:RMuseum.Models.GanjoorAudio.PoemNarration.FileNameWithoutExtension"/> + .ext would preduce relative path of sound files on our file server the full path would become [HOMEPath] + '/i/' + this value
|
||||||
|
</summary>
|
||||||
|
<sample>
|
||||||
|
"a2"
|
||||||
|
</sample>
|
||||||
|
<remarks>
|
||||||
|
We had previously used different pathes because when a directory became overcrowded our connection time would increase unbearably due to IRAN internet problems, so it is sensible to store it per record and not as a global option value
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Mp3FilePath">
|
||||||
|
<summary>
|
||||||
|
MP3 File Path
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Mp3Url">
|
||||||
|
<summary>
|
||||||
|
MP3 url
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.OggFilePath">
|
||||||
|
<summary>
|
||||||
|
OGG File Path
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.OggUrl">
|
||||||
|
<summary>
|
||||||
|
OGG url
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.XMLFilePath">
|
||||||
|
<summary>
|
||||||
|
This is also a legacy field
|
||||||
|
</summary>
|
||||||
|
<sample>
|
||||||
|
"/i/a2/x"
|
||||||
|
</sample>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioTitle">
|
||||||
|
<summary>
|
||||||
|
Audio Title
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioArtist">
|
||||||
|
<summary>
|
||||||
|
Audio Artist
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioArtistUrl">
|
||||||
|
<summary>
|
||||||
|
Audio Artist Url
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioSrc">
|
||||||
|
<summary>
|
||||||
|
Audio Source
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioSrcUrl">
|
||||||
|
<summary>
|
||||||
|
Audio Src Url
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.LegacyAudioGuid">
|
||||||
|
<summary>
|
||||||
|
Legacy Audio Guid
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Mp3FileCheckSum">
|
||||||
|
<summary>
|
||||||
|
Audio File CheckSum
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.Mp3SizeInBytes">
|
||||||
|
<summary>
|
||||||
|
mp3 size in bytes
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.OggSizeInBytes">
|
||||||
|
<summary>
|
||||||
|
ogg size in bytes
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.UploadDate">
|
||||||
|
<summary>
|
||||||
|
Audio Date
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.TemporaryUploadedMp3FilePath">
|
||||||
|
<summary>
|
||||||
|
MP3 File temporary pass on Windows Server
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.TemporaryUploadedXmlFilePath">
|
||||||
|
<summary>
|
||||||
|
XML File temporary pass on Windows Server
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.GanjoorAudio.PoemNarration.AudioSyncStatus">
|
||||||
|
<summary>
|
||||||
|
Value is one or a combination of <see cref="T:RMuseum.Models.GanjoorAudio.AudioSyncStatus"/>
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:RMuseum.Models.GanjoorIntegration.GanjoorLink">
|
<member name="T:RMuseum.Models.GanjoorIntegration.GanjoorLink">
|
||||||
<summary>
|
<summary>
|
||||||
ganjoor link for artifacts and items
|
ganjoor link for artifacts and items
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user