diff --git a/Oqtane.Shared/Models/ConnectionStringField.cs b/Oqtane.Shared/Models/ConnectionStringField.cs
index f3f216a8..585c3b88 100644
--- a/Oqtane.Shared/Models/ConnectionStringField.cs
+++ b/Oqtane.Shared/Models/ConnectionStringField.cs
@@ -1,13 +1,28 @@
namespace Oqtane.Models
{
+ ///
+ /// Helper class for input fields in the setup of the SQL connection
+ ///
public class ConnectionStringField
{
+ ///
+ /// Simple to understand field name / label
+ ///
public string FriendlyName { get; set; }
+ ///
+ /// Instructions / help for the user
+ ///
public string HelpText { get; set; }
+ ///
+ /// Property / Setting name which will be filled in by the user. Typically something like `Server`, `Port` etc.
+ ///
public string Name { get; set; }
+ ///
+ /// Initial value used in the UI and probably later also the user input that was given.
+ ///
public string Value { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Culture.cs b/Oqtane.Shared/Models/Culture.cs
index d426410d..2152c5da 100644
--- a/Oqtane.Shared/Models/Culture.cs
+++ b/Oqtane.Shared/Models/Culture.cs
@@ -1,11 +1,26 @@
namespace Oqtane.Models
{
+ ///
+ /// Culture information describing a Culture
+ ///
public class Culture
{
+ ///
+ /// Short code like `en` or `en-US`
+ ///
public string Name { get; set; }
+ ///
+ /// Nice name for the user, like `English (United States)`
+ ///
public string DisplayName { get; set; }
+ ///
+ /// Information if this is the default culture.
+ ///
+ ///
+ /// Not sure if this is actually valid, as ATM there is no setting to configure a _default_ culture
+ ///
public bool IsDefault { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Database.cs b/Oqtane.Shared/Models/Database.cs
index 0ffb0ae5..ebce1d34 100644
--- a/Oqtane.Shared/Models/Database.cs
+++ b/Oqtane.Shared/Models/Database.cs
@@ -1,15 +1,33 @@
namespace Oqtane.Models
{
+ ///
+ /// Information about a Database used in the current Oqtane installation
+ ///
public class Database
{
+ ///
+ /// Friendly name for the Admin to identify the DB
+ ///
public string FriendlyName { get; set; }
+ ///
+ /// Name of the Database
+ ///
public string Name { get; set; }
+ ///
+ /// Namespace & name of the UI control to configure this database, like `Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client`
+ ///
public string ControlType { get; set; }
+ ///
+ /// Type of DB using the full namespace, like `Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer`
+ ///
public string DBType { get; set; }
+ ///
+ /// Software package responsible for using this DB - like `Oqtane.Database.MySQL`
+ ///
public string Package { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Installation.cs b/Oqtane.Shared/Models/Installation.cs
index 4dc25840..efa0db31 100644
--- a/Oqtane.Shared/Models/Installation.cs
+++ b/Oqtane.Shared/Models/Installation.cs
@@ -1,8 +1,20 @@
-namespace Oqtane.Models
+namespace Oqtane.Models
{
+ ///
+ /// Internal message used internally during installation.
+ ///
+ /// Each part of the installation will return the status / message when installing.
+ ///
public class Installation
{
+ ///
+ /// Status if everything worked.
+ ///
public bool Success { get; set; }
+
+ ///
+ /// Message or error in case something failed.
+ ///
public string Message { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Job.cs b/Oqtane.Shared/Models/Job.cs
index 2d1f40fc..261f5742 100644
--- a/Oqtane.Shared/Models/Job.cs
+++ b/Oqtane.Shared/Models/Job.cs
@@ -1,25 +1,88 @@
-using System;
+using System;
namespace Oqtane.Models
{
+ ///
+ /// Definition of a Job / Task which is run on the server.
+ /// When Jobs run, they create a
+ ///
public class Job : IAuditable
{
+ ///
+ /// Internal ID
+ ///
public int JobId { get; set; }
+
+ ///
+ /// Name for simple identification
+ ///
public string Name { get; set; }
+
+ ///
+ /// What kind of Job this is
+ ///
public string JobType { get; set; }
+
+ ///
+ /// Unit used in how often the job should run - expects a character like `m` (minutes), `H` (hours) etc.
+ ///
public string Frequency { get; set; }
+
+ ///
+ /// How often the Job should run - see also
+ ///
public int Interval { get; set; }
+
+ ///
+ /// When the Job is to be run the first time. See also .
+ ///
public DateTime? StartDate { get; set; }
+
+
+ ///
+ /// When the job is to be run the last time. See also .
+ ///
public DateTime? EndDate { get; set; }
+
+ ///
+ /// Determines if the Job is activated / enabled.
+ ///
public bool IsEnabled { get; set; }
+
+ ///
+ /// If the Job has ever started running
+ ///
public bool IsStarted { get; set; }
+
+ ///
+ /// If the Job is executing right now.
+ ///
public bool IsExecuting { get; set; }
+
+ ///
+ /// When the Job will run again next time.
+ ///
public DateTime? NextExecution { get; set; }
+
+ ///
+ /// Todo: todoc - unsure what this does
+ ///
public int RetentionHistory { get; set; }
+ #region IAuditable Properties
+
+ ///
public string CreatedBy { get; set; }
+
+ ///
public DateTime CreatedOn { get; set; }
+
+ ///
public string ModifiedBy { get; set; }
+
+ ///
public DateTime ModifiedOn { get; set; }
+
+ #endregion
}
}
diff --git a/Oqtane.Shared/Models/JobLog.cs b/Oqtane.Shared/Models/JobLog.cs
index 161d5b54..33ebf49f 100644
--- a/Oqtane.Shared/Models/JobLog.cs
+++ b/Oqtane.Shared/Models/JobLog.cs
@@ -1,16 +1,48 @@
-using System;
+using System;
namespace Oqtane.Models
{
+ ///
+ /// Log / Journal of s executed.
+ ///
public class JobLog
{
+ ///
+ /// Internal ID
+ ///
public int JobLogId { get; set; }
+
+ ///
+ /// Reference to the which was run
+ ///
public int JobId { get; set; }
+
+ ///
+ /// Timestamp when the started.
+ ///
public DateTime StartDate { get; set; }
+
+ ///
+ /// Timestamp when the ended.
+ ///
public DateTime? FinishDate { get; set; }
+
+ ///
+ /// Success information.
+ ///
public bool? Succeeded { get; set; }
+
+ ///
+ /// Additional protocol information that was left after the ran.
+ ///
public string Notes { get; set; }
+ ///
+ /// Reference to the Job.
+ ///
+ ///
+ /// It's not clear if this is always populated.
+ ///
public Job Job { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Language.cs b/Oqtane.Shared/Models/Language.cs
index ccac5210..ef81a78d 100644
--- a/Oqtane.Shared/Models/Language.cs
+++ b/Oqtane.Shared/Models/Language.cs
@@ -20,12 +20,12 @@ namespace Oqtane.Models
public int? SiteId { get; set; }
///
- /// Language Name
+ /// Language Name - corresponds to , _not_
///
public string Name { get; set; }
///
- /// Language / Culture code, like 'en-US'
+ /// Language / Culture code, like 'en-US' - corresponds to
///
public string Code { get; set; }
diff --git a/Oqtane.Shared/Models/ModuleContent.cs b/Oqtane.Shared/Models/ModuleContent.cs
index 124f73f3..c1f5abf7 100644
--- a/Oqtane.Shared/Models/ModuleContent.cs
+++ b/Oqtane.Shared/Models/ModuleContent.cs
@@ -1,9 +1,23 @@
-namespace Oqtane.Models
+namespace Oqtane.Models
{
+ ///
+ /// Generic Model for Module-Contents to enable Import/Export of the Module-Data
+ ///
public class ModuleContent
{
+ ///
+ /// Reference to a for which this content is relevant.
+ ///
public string ModuleDefinitionName { get; set; }
+
+ ///
+ /// Version of the which is used here. _It's not the version of the Content_
+ ///
public string Version { get; set; }
+
+ ///
+ /// Serialized Content of the module for import/export.
+ ///
public string Content { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/ModuleDefinition.cs b/Oqtane.Shared/Models/ModuleDefinition.cs
index 688d1f15..56afd3bf 100644
--- a/Oqtane.Shared/Models/ModuleDefinition.cs
+++ b/Oqtane.Shared/Models/ModuleDefinition.cs
@@ -52,7 +52,15 @@ namespace Oqtane.Models
/// Module description for admin dialogs.
///
public string Description { get; set; }
+
+ ///
+ /// Categories this Module will be shown in (in the admin-dialogs)
+ ///
public string Categories { get; set; }
+
+ ///
+ /// Version information of this Module based on the DLL / NuGet package.
+ ///
public string Version { get; set; }
#region IAuditable Properties
diff --git a/Oqtane.Shared/Models/Notification.cs b/Oqtane.Shared/Models/Notification.cs
index 6795c954..64e0fbc7 100644
--- a/Oqtane.Shared/Models/Notification.cs
+++ b/Oqtane.Shared/Models/Notification.cs
@@ -3,25 +3,95 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace Oqtane.Models
{
+ ///
+ /// Notification for a User - usually meant to be sent as an E-Mail.
+ ///
public class Notification : IDeletable
{
+ ///
+ /// Internal ID
+ ///
public int NotificationId { get; set; }
+
+ ///
+ /// Reference to the on which the Notification was created.
+ ///
public int SiteId { get; set; }
+
+ ///
+ /// Creator ID
+ ///
public int? FromUserId { get; set; }
+
+ ///
+ /// Nice Name of the Creator
+ ///
public string FromDisplayName { get; set; }
+
+ ///
+ /// Creator E-Mail
+ ///
public string FromEmail { get; set; }
+
+ ///
+ /// Recipient ID - nullable, as Recipient could be someone that's not a user.
+ ///
public int? ToUserId { get; set; }
+
+ ///
+ /// Recipient Nice-Name.
+ ///
public string ToDisplayName { get; set; }
+
+ ///
+ /// Recipient Mail
+ ///
public string ToEmail { get; set; }
+
+ ///
+ /// Reference to an optional Parent - in case it's a kind of thread with reply-messages.
+ ///
public int? ParentId { get; set; }
+
+ ///
+ /// Message Subject.
+ ///
public string Subject { get; set; }
+
+ ///
+ /// Body / Contents of this Notification
+ ///
public string Body { get; set; }
+
+ ///
+ /// When the notification was created.
+ ///
public DateTime CreatedOn { get; set; }
+
+ ///
+ /// If it has been delivered. See also .
+ ///
public bool IsDelivered { get; set; }
+
+ ///
+ /// When the Notification was sent/delivered.
+ ///
public DateTime? DeliveredOn { get; set; }
+
+ #region IDeletable
+
+ ///
public string DeletedBy { get; set; }
+ ///
public DateTime? DeletedOn { get; set; }
+ ///
public bool IsDeleted { get; set; }
+
+ #endregion
+
+ ///
+ /// When the Notification _should_ be sent. See also
+ ///
public DateTime? SendOn { get; set; }
public Notification() {}
diff --git a/Oqtane.Shared/Models/Package.cs b/Oqtane.Shared/Models/Package.cs
index b2e0b214..8d78bdc7 100644
--- a/Oqtane.Shared/Models/Package.cs
+++ b/Oqtane.Shared/Models/Package.cs
@@ -1,12 +1,39 @@
-namespace Oqtane.Models
+namespace Oqtane.Models
{
+ ///
+ /// A software Package which is like an Oqtane Plugin / Extension.
+ /// This is used for creating lists from NuGet to offer for installation.
+ ///
public class Package
{
+ ///
+ /// ID of the Package. Usually constructed of the Namespace.
+ ///
public string PackageId { get; set; }
+
+ ///
+ /// Name of the package - may contains part or the entire Namespace.
+ ///
public string Name { get; set; }
+
+ ///
+ /// Nice description of the Package.
+ ///
public string Description { get; set; }
+
+ ///
+ /// Owner / Creator of the package - usually retrieved from NuGet.
+ ///
public string Owner { get; set; }
+
+ ///
+ /// Version as defined in the NuGet package.
+ ///
public string Version { get; set; }
+
+ ///
+ /// Download count on NuGet to show how popular the package is.
+ ///
public long Downloads { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Permission.cs b/Oqtane.Shared/Models/Permission.cs
index aff910f4..da0ec593 100644
--- a/Oqtane.Shared/Models/Permission.cs
+++ b/Oqtane.Shared/Models/Permission.cs
@@ -1,23 +1,79 @@
-using System;
+using System;
namespace Oqtane.Models
{
+ ///
+ /// Permission information for anything in Oqtane.
+ /// Things in Oqtane are identified as Entities, so anything that can be identified can be described here.
+ ///
public class Permission : IAuditable
{
+ ///
+ /// Internal ID storing this information.
+ ///
public int PermissionId { get; set; }
+
+ ///
+ /// Reference to the which contains both the target Entity and permissions.
+ ///
public int SiteId { get; set; }
+
+ ///
+ /// Name of the Entity these permissions apply to.
+ ///
public string EntityName { get; set; }
+
+ ///
+ /// ID of the Entity these permissions apply to.
+ ///
public int EntityId { get; set; }
+
+ ///
+ /// What this permission is called.
+ /// TODO: todoc - must clarify what exactly this means, I assume any module can give it's own names for Permissions
+ ///
public string PermissionName { get; set; }
+
+ ///
+ /// this permission applies to. So if all users in the Role _Customers_ have this permission, then it would reference that Role.
+ /// If null, then the permission doesn't target a role but probably a (see ).
+ ///
public int? RoleId { get; set; }
+
+
+ ///
+ /// this permission applies to.
+ /// If null, then the permission doesn't target a User but probably a (see ).
+ ///
public int? UserId { get; set; }
+
+ ///
+ /// Determines if Authorization is sufficient to receive this permission.
+ ///
public bool IsAuthorized { get; set; }
+ #region IAuditable Properties
+
+ ///
public string CreatedBy { get; set; }
+
+ ///
public DateTime CreatedOn { get; set; }
+
+ ///
public string ModifiedBy { get; set; }
+
+ ///
public DateTime ModifiedOn { get; set; }
+ #endregion
+
+ ///
+ /// Reference to the based on the - can be nullable.
+ ///
+ ///
+ /// It's not certain if this will always be populated. TODO: todoc/verify
+ ///
public Role Role { get; set; }
public Permission()
diff --git a/Oqtane.Shared/Models/PermissionString.cs b/Oqtane.Shared/Models/PermissionString.cs
index 1a68e2ef..cdee673b 100644
--- a/Oqtane.Shared/Models/PermissionString.cs
+++ b/Oqtane.Shared/Models/PermissionString.cs
@@ -1,8 +1,18 @@
-namespace Oqtane.Models
+namespace Oqtane.Models
{
+ ///
+ /// Use this to define a which addresses a set of multiple permissions.
+ ///
public class PermissionString
{
+ ///
+ /// A term describing a set of permissions
+ ///
public string PermissionName { get; set; }
+
+ ///
+ /// The permissions addressed with this name
+ ///
public string Permissions { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Profile.cs b/Oqtane.Shared/Models/Profile.cs
index dc4f6266..a20cbc9f 100644
--- a/Oqtane.Shared/Models/Profile.cs
+++ b/Oqtane.Shared/Models/Profile.cs
@@ -2,24 +2,87 @@ using System;
namespace Oqtane.Models
{
+ ///
+ /// A single Profile Property information of a .
+ /// So a user will have many of these to fully describe his Profile.
+ ///
public class Profile : IAuditable
{
+ ///
+ /// Internal ID
+ ///
public int ProfileId { get; set; }
+
+ ///
+ /// Reference to the .
+ /// It's nullable, probably because certain users like Super-Users don't specifically belong to any site.
+ ///
public int? SiteId { get; set; }
+
+ ///
+ /// Name of the Profile-Property. _NOT_ the User-Name.
+ ///
public string Name { get; set; }
+
+ ///
+ /// Title (label) of the Profile Property.
+ ///
public string Title { get; set; }
+
+ ///
+ /// Description of the Property for the UI.
+ ///
public string Description { get; set; }
+
+ ///
+ /// Category of this Profile-Property for grouping etc.
+ ///
public string Category { get; set; }
+
+ ///
+ /// Order of the Property in the list of Profile-Properties.
+ ///
public int ViewOrder { get; set; }
+
+ ///
+ /// Limits the input length of the property.
+ ///
public int MaxLength { get; set; }
+
+ ///
+ /// Initial/default value of this Property.
+ ///
public string DefaultValue { get; set; }
+
+ ///
+ /// Some Profile Properties are required - marked with this field.
+ ///
public bool IsRequired { get; set; }
+
+ ///
+ /// Some Profile Properties are private, meaning other users won't see them.
+ ///
public bool IsPrivate { get; set; }
+
+ ///
+ /// This gives possible values for dropdown input fields.
+ ///
public string Options { get; set; }
+ #region IAuditable Properties
+
+ ///
public string CreatedBy { get; set; }
+
+ ///
public DateTime CreatedOn { get; set; }
+
+ ///
public string ModifiedBy { get; set; }
+
+ ///
public DateTime ModifiedOn { get; set; }
+
+ #endregion
}
}
diff --git a/Oqtane.Shared/Models/Resource.cs b/Oqtane.Shared/Models/Resource.cs
index 72f26e4b..b87e32ec 100644
--- a/Oqtane.Shared/Models/Resource.cs
+++ b/Oqtane.Shared/Models/Resource.cs
@@ -2,14 +2,45 @@ using Oqtane.Shared;
namespace Oqtane.Models
{
+ ///
+ /// Resource Objects describe a JavaScript or CSS file which is needed by the Module to work.
+ ///
public class Resource
{
+ ///
+ /// A so the Interop can properly create `script` or `link` tags
+ ///
public ResourceType ResourceType { get; set; }
+
+ ///
+ /// Path to the resources.
+ ///
public string Url { get; set; }
+
+ ///
+ /// Integrity checks to increase the security of resources accessed. Especially common in CDN resources.
+ ///
public string Integrity { get; set; }
+
+ ///
+ /// Cross-Origin rules for this Resources. Usually `anonymous`
+ ///
public string CrossOrigin { get; set; }
+
+ ///
+ /// Bundle ID in case this Resource belongs to a set of Resources, which may have already been loaded using LoadJS
+ ///
public string Bundle { get; set; }
+
+ ///
+ /// Determines if the Resource is global, meaning that the entire solution uses it or just some modules.
+ /// TODO: VERIFY that this explanation is correct.
+ ///
public ResourceDeclaration Declaration { get; set; }
+
+ ///
+ /// If the Resource should be included in the `head` of the HTML document or the `body`
+ ///
public ResourceLocation Location { get; set; }
}
}
diff --git a/Oqtane.Shared/Models/Theme.cs b/Oqtane.Shared/Models/Theme.cs
index ba881dd4..0f0be718 100644
--- a/Oqtane.Shared/Models/Theme.cs
+++ b/Oqtane.Shared/Models/Theme.cs
@@ -3,6 +3,9 @@ using System.Collections.Generic;
namespace Oqtane.Models
{
+ ///
+ /// Information about a Theme in Oqtane.
+ ///
public class Theme
{
public Theme()
@@ -20,14 +23,47 @@ namespace Oqtane.Models
PackageName = "";
}
+ ///
+ /// Full Namespace / Identifier of the Theme.
+ ///
public string ThemeName { get; set; }
+
+ ///
+ /// Nice Name of the Theme.
+ ///
public string Name { get; set; }
+
+ ///
+ /// Version as determined by the DLL / NuGet Package.
+ ///
public string Version { get; set; }
+
+ ///
+ /// Author / Creator of the Theme.
+ ///
public string Owner { get; set; }
+
+ ///
+ /// URL (in NuGet) of the Theme
+ ///
public string Url { get; set; }
+
+ ///
+ /// Author Contact information
+ ///
public string Contact { get; set; }
+
+ ///
+ /// Theme License, like `MIT` etc.
+ ///
public string License { get; set; }
+
+ ///
+ /// Theme Dependencies (DLLs) which the system will check if they exist
+ ///
public string Dependencies { get; set; }
+
+
public string ThemeSettingsType { get; set; } // added in 2.0.2
public string ContainerSettingsType { get; set; } // added in 2.0.2
public string PackageName { get; set; } // added in 2.1.0