Files
Umbraco-CMS/src/Umbraco.Infrastructure/Migrations/Install/DatabaseDataCreator.cs
Mole 7df4f84247 V10: Migrate member properties to columns on the member table (#12205)
* Add new columns to the member table

* Add missing IsApproved column

* Add joins with nested query

* Add query for selecting new column values from existing members

* Update the member data from the same query

* Make escapes work for sqlite

* Use GetFieldNameForUpdate instead of GetFieldName

* Left join on memberDto

* Remove the now unused property types and data

* Don't create member columns as properties anymore

* Store old properties in fields on member

Also switch the dates to nullable since they can be null

* Map columns when mapping from DTO to Member object

* Display columns in the member content app

* Fix null exception when creating new user

* Hide value if user doesn't have access to sensitive data

* Remove hardcoded member properties

* Obsolete old member alias constants

* Map and persist member properties

* Correctly update LastLogin when member logs in

* Map IsApproved and IsLockedOut when saving member in backoffice

* Update the query mappers for members

* Fix member service tracks dirty changes test

* Remove no longer existing property types from member type builder

* Fix null error in UpdateMemberProperties

* Fix builder tests

* Fix SetupMemberTestData in MemberControllerUnitTests

* Let LastLoginDate be null and handle check in controller

There's no reason to default a perfectly nullable property to default(DateTime)

* Add translation key for is approved and use that instead of constant

* Obsolete old label constants

* Fix whitespace post merge

* Fix up test comments

* Apply suggestions from code review

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Fix member properties always being sensitive

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2022-04-21 14:47:27 +02:00

1058 lines
78 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using NPoco;
using Umbraco.Cms.Core.Configuration;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Infrastructure.Migrations.Upgrade;
using Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_9_0_0;
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.Migrations.Install
{
/// <summary>
/// Creates the initial database data during install.
/// </summary>
internal class DatabaseDataCreator
{
private readonly IDatabase _database;
private readonly ILogger<DatabaseDataCreator> _logger;
private readonly IUmbracoVersion _umbracoVersion;
private readonly IOptionsMonitor<InstallDefaultDataSettings> _installDefaultDataSettings;
private readonly IDictionary<string, IList<string>> _entitiesToAlwaysCreate = new Dictionary<string, IList<string>>()
{
{
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
new List<string>
{
Cms.Core.Constants.DataTypes.Guids.LabelString,
}
}
};
public DatabaseDataCreator(IDatabase database, ILogger<DatabaseDataCreator> logger, IUmbracoVersion umbracoVersion, IOptionsMonitor<InstallDefaultDataSettings> installDefaultDataSettings)
{
_database = database;
_logger = logger;
_umbracoVersion = umbracoVersion;
_installDefaultDataSettings = installDefaultDataSettings;
}
/// <summary>
/// Initialize the base data creation by inserting the data foundation for umbraco
/// specific to a table
/// </summary>
/// <param name="tableName">Name of the table to create base data for</param>
public void InitializeBaseData(string tableName)
{
_logger.LogInformation("Creating data in {TableName}", tableName);
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.Node))
{
CreateNodeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.Lock))
{
CreateLockData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.ContentType))
{
CreateContentTypeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.User))
{
CreateUserData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup))
{
CreateUserGroupData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.User2UserGroup))
{
CreateUser2UserGroupData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup2App))
{
CreateUserGroup2AppData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup))
{
CreatePropertyTypeGroupData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType))
{
CreatePropertyTypeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.Language))
{
CreateLanguageData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.ContentChildType))
{
CreateContentChildTypeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.DataType))
{
CreateDataTypeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.RelationType))
{
CreateRelationTypeData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.KeyValue))
{
CreateKeyValueData();
}
if (tableName.Equals(Cms.Core.Constants.DatabaseSchema.Tables.LogViewerQuery))
{
CreateLogViewerQueryData();
}
_logger.LogInformation("Completed creating data in {TableName}", tableName);
}
private void CreateNodeData()
{
CreateNodeDataForDataTypes();
CreateNodeDataForMediaTypes();
CreateNodeDataForMemberTypes();
}
private void CreateNodeDataForDataTypes()
{
void InsertDataTypeNodeDto(int id, int sortOrder, string uniqueId, string text)
{
var nodeDto = new NodeDto
{
NodeId = id,
Trashed = false,
ParentId = -1,
UserId = -1,
Level = 1,
Path = "-1," + id,
SortOrder = sortOrder,
UniqueId = new Guid(uniqueId),
Text = text,
NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType,
CreateDate = DateTime.Now,
};
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
uniqueId,
nodeDto,
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
}
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Node, "id", false, new NodeDto { NodeId = -1, Trashed = false, ParentId = -1, UserId = -1, Level = 0, Path = "-1", SortOrder = 0, UniqueId = new Guid("916724a5-173d-4619-b97e-b9de133dd6f5"), Text = "SYSTEM DATA: umbraco master root", NodeObjectType = Cms.Core.Constants.ObjectTypes.SystemRoot, CreateDate = DateTime.Now });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Node, "id", false, new NodeDto { NodeId = -20, Trashed = false, ParentId = -1, UserId = -1, Level = 0, Path = "-1,-20", SortOrder = 0, UniqueId = new Guid("0F582A79-1E41-4CF0-BFA0-76340651891A"), Text = "Recycle Bin", NodeObjectType = Cms.Core.Constants.ObjectTypes.ContentRecycleBin, CreateDate = DateTime.Now });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Node, "id", false, new NodeDto { NodeId = -21, Trashed = false, ParentId = -1, UserId = -1, Level = 0, Path = "-1,-21", SortOrder = 0, UniqueId = new Guid("BF7C7CBC-952F-4518-97A2-69E9C7B33842"), Text = "Recycle Bin", NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaRecycleBin, CreateDate = DateTime.Now });
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelString, 35, Cms.Core.Constants.DataTypes.Guids.LabelString, "Label (string)");
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelInt, 36, Cms.Core.Constants.DataTypes.Guids.LabelInt, "Label (integer)");
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelBigint, 36, Cms.Core.Constants.DataTypes.Guids.LabelBigInt, "Label (bigint)");
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelDateTime, 37, Cms.Core.Constants.DataTypes.Guids.LabelDateTime, "Label (datetime)");
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelTime, 38, Cms.Core.Constants.DataTypes.Guids.LabelTime, "Label (time)");
InsertDataTypeNodeDto(Cms.Core.Constants.DataTypes.LabelDecimal, 39, Cms.Core.Constants.DataTypes.Guids.LabelDecimal, "Label (decimal)");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Upload,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.Upload, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.Upload}", SortOrder = 34, UniqueId = Cms.Core.Constants.DataTypes.Guids.UploadGuid, Text = "Upload File", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.UploadVideo,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.UploadVideo, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.UploadVideo}", SortOrder = 35, UniqueId = Cms.Core.Constants.DataTypes.Guids.UploadVideoGuid, Text = "Upload Video", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.UploadAudio,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.UploadAudio, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.UploadAudio}", SortOrder = 36, UniqueId = Cms.Core.Constants.DataTypes.Guids.UploadAudioGuid, Text = "Upload Audio", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.UploadArticle,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.UploadArticle, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.UploadArticle}", SortOrder = 37, UniqueId = Cms.Core.Constants.DataTypes.Guids.UploadArticleGuid, Text = "Upload Article", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.UploadVectorGraphics,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.UploadVectorGraphics, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.UploadVectorGraphics}", SortOrder = 38, UniqueId = Cms.Core.Constants.DataTypes.Guids.UploadVectorGraphicsGuid, Text = "Upload Vector Graphics", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Textarea,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.Textarea, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.Textarea}", SortOrder = 33, UniqueId = Cms.Core.Constants.DataTypes.Guids.TextareaGuid, Text = "Textarea", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Textstring,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.Textbox, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.Textbox}", SortOrder = 32, UniqueId = Cms.Core.Constants.DataTypes.Guids.TextstringGuid, Text = "Textstring", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.RichtextEditor,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.RichtextEditor, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.RichtextEditor}", SortOrder = 4, UniqueId = Cms.Core.Constants.DataTypes.Guids.RichtextEditorGuid, Text = "Richtext editor", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Numeric,
new NodeDto { NodeId = -51, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,-51", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.NumericGuid, Text = "Numeric", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Checkbox,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.Boolean, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.Boolean}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.CheckboxGuid, Text = "True/false", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.CheckboxList,
new NodeDto { NodeId = -43, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,-43", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.CheckboxListGuid, Text = "Checkbox list", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Dropdown,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DropDownSingle, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DropDownSingle}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.DropdownGuid, Text = "Dropdown", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.DatePicker,
new NodeDto { NodeId = -41, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,-41", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.DatePickerGuid, Text = "Date Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Radiobox,
new NodeDto { NodeId = -40, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,-40", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.RadioboxGuid, Text = "Radiobox", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.DropdownMultiple,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DropDownMultiple, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DropDownMultiple}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.DropdownMultipleGuid, Text = "Dropdown multiple", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ApprovedColor,
new NodeDto { NodeId = -37, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,-37", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ApprovedColorGuid, Text = "Approved Color", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.DatePickerWithTime,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DateTime, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DateTime}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.DatePickerWithTimeGuid, Text = "Date Picker with time", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ListViewContent,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DefaultContentListView, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DefaultContentListView}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ListViewContentGuid, Text = Cms.Core.Constants.Conventions.DataTypes.ListViewPrefix + "Content", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ListViewMedia,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DefaultMediaListView, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DefaultMediaListView}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ListViewMediaGuid, Text = Cms.Core.Constants.Conventions.DataTypes.ListViewPrefix + "Media", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ListViewMembers,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.DefaultMembersListView, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.DefaultMembersListView}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ListViewMembersGuid, Text = Cms.Core.Constants.Conventions.DataTypes.ListViewPrefix + "Members", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.Tags,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.Tags, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.Tags}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.TagsGuid, Text = "Tags", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ImageCropper,
new NodeDto { NodeId = Cms.Core.Constants.DataTypes.ImageCropper, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = $"-1,{Cms.Core.Constants.DataTypes.ImageCropper}", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ImageCropperGuid, Text = "Image Cropper", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
// New UDI pickers with newer Ids
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.ContentPicker,
new NodeDto { NodeId = 1046, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1046", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.ContentPickerGuid, Text = "Content Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MemberPicker,
new NodeDto { NodeId = 1047, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1047", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MemberPickerGuid, Text = "Member Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MediaPicker,
new NodeDto { NodeId = 1048, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1048", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MediaPickerGuid, Text = "Media Picker (legacy)", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MultipleMediaPicker,
new NodeDto { NodeId = 1049, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1049", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MultipleMediaPickerGuid, Text = "Multiple Media Picker (legacy)", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.RelatedLinks,
new NodeDto { NodeId = 1050, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1050", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.RelatedLinksGuid, Text = "Multi URL Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MediaPicker3,
new NodeDto { NodeId = 1051, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1051", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MediaPicker3Guid, Text = "Media Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MediaPicker3Multiple,
new NodeDto { NodeId = 1052, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1052", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MediaPicker3MultipleGuid, Text = "Multiple Media Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MediaPicker3SingleImage,
new NodeDto { NodeId = 1053, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1053", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MediaPicker3SingleImageGuid, Text = "Image Media Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.DataTypes,
Cms.Core.Constants.DataTypes.Guids.MediaPicker3MultipleImages,
new NodeDto { NodeId = 1054, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1054", SortOrder = 2, UniqueId = Cms.Core.Constants.DataTypes.Guids.MediaPicker3MultipleImagesGuid, Text = "Multiple Image Media Picker", NodeObjectType = Cms.Core.Constants.ObjectTypes.DataType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
}
private void CreateNodeDataForMediaTypes()
{
var folderUniqueId = new Guid("f38bd2d7-65d0-48e6-95dc-87ce06ec2d3d");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
folderUniqueId.ToString(),
new NodeDto { NodeId = 1031, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1031", SortOrder = 2, UniqueId = folderUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.Folder, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var imageUniqueId = new Guid("cc07b313-0843-4aa8-bbda-871c8da728c8");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
imageUniqueId.ToString(),
new NodeDto { NodeId = 1032, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1032", SortOrder = 2, UniqueId = imageUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.Image, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var fileUniqueId = new Guid("4c52d8ab-54e6-40cd-999c-7a5f24903e4d");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
fileUniqueId.ToString(),
new NodeDto { NodeId = 1033, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1033", SortOrder = 2, UniqueId = fileUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.File, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var videoUniqueId = new Guid("f6c515bb-653c-4bdc-821c-987729ebe327");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
videoUniqueId.ToString(),
new NodeDto { NodeId = 1034, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1034", SortOrder = 2, UniqueId = videoUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.Video, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var audioUniqueId = new Guid("a5ddeee0-8fd8-4cee-a658-6f1fcdb00de3");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
audioUniqueId.ToString(),
new NodeDto { NodeId = 1035, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1035", SortOrder = 2, UniqueId = audioUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.Audio, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var articleUniqueId = new Guid("a43e3414-9599-4230-a7d3-943a21b20122");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
articleUniqueId.ToString(),
new NodeDto { NodeId = 1036, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1036", SortOrder = 2, UniqueId = articleUniqueId, Text = Cms.Core.Constants.Conventions.MediaTypes.Article, NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
var svgUniqueId = new Guid("c4b1efcf-a9d5-41c4-9621-e9d273b52a9c");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MediaTypes,
svgUniqueId.ToString(),
new NodeDto { NodeId = 1037, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1037", SortOrder = 2, UniqueId = svgUniqueId, Text = "Vector Graphics (SVG)", NodeObjectType = Cms.Core.Constants.ObjectTypes.MediaType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
}
private void CreateNodeDataForMemberTypes()
{
var memberUniqueId = new Guid("d59be02f-1df9-4228-aa1e-01917d806cda");
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.MemberTypes,
memberUniqueId.ToString(),
new NodeDto { NodeId = 1044, Trashed = false, ParentId = -1, UserId = -1, Level = 1, Path = "-1,1044", SortOrder = 0, UniqueId = memberUniqueId, Text = Cms.Core.Constants.Conventions.MemberTypes.DefaultAlias, NodeObjectType = Cms.Core.Constants.ObjectTypes.MemberType, CreateDate = DateTime.Now },
Cms.Core.Constants.DatabaseSchema.Tables.Node,
"id");
}
private void CreateLockData()
{
// all lock objects
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.Servers, Name = "Servers" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.ContentTypes, Name = "ContentTypes" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.ContentTree, Name = "ContentTree" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.MediaTypes, Name = "MediaTypes" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.MediaTree, Name = "MediaTree" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.MemberTypes, Name = "MemberTypes" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.MemberTree, Name = "MemberTree" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.Domains, Name = "Domains" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.KeyValues, Name = "KeyValues" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.Languages, Name = "Languages" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.ScheduledPublishing, Name = "ScheduledPublishing" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.Lock, "id", false, new LockDto { Id = Cms.Core.Constants.Locks.MainDom, Name = "MainDom" });
}
private void CreateContentTypeData()
{
// Insert content types only if the corresponding Node record exists (which may or may not have been created depending on configuration
// of media or member types to create).
// Media types.
if (_database.Exists<NodeDto>(1031))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 532, NodeId = 1031, Alias = Cms.Core.Constants.Conventions.MediaTypes.Folder, Icon = Cms.Core.Constants.Icons.MediaFolder, Thumbnail = Cms.Core.Constants.Icons.MediaFolder, IsContainer = false, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1032))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 533, NodeId = 1032, Alias = Cms.Core.Constants.Conventions.MediaTypes.Image, Icon = Cms.Core.Constants.Icons.MediaImage, Thumbnail = Cms.Core.Constants.Icons.MediaImage, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1033))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 534, NodeId = 1033, Alias = Cms.Core.Constants.Conventions.MediaTypes.File, Icon = Cms.Core.Constants.Icons.MediaFile, Thumbnail = Cms.Core.Constants.Icons.MediaFile, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1034))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 540, NodeId = 1034, Alias = Cms.Core.Constants.Conventions.MediaTypes.VideoAlias, Icon = Cms.Core.Constants.Icons.MediaVideo, Thumbnail = Cms.Core.Constants.Icons.MediaVideo, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1035))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 541, NodeId = 1035, Alias = Cms.Core.Constants.Conventions.MediaTypes.AudioAlias, Icon = Cms.Core.Constants.Icons.MediaAudio, Thumbnail = Cms.Core.Constants.Icons.MediaAudio, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1036))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 542, NodeId = 1036, Alias = Cms.Core.Constants.Conventions.MediaTypes.ArticleAlias, Icon = Cms.Core.Constants.Icons.MediaArticle, Thumbnail = Cms.Core.Constants.Icons.MediaArticle, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<NodeDto>(1037))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 543, NodeId = 1037, Alias = Cms.Core.Constants.Conventions.MediaTypes.VectorGraphicsAlias, Icon = Cms.Core.Constants.Icons.MediaVectorGraphics, Thumbnail = Cms.Core.Constants.Icons.MediaVectorGraphics, AllowAtRoot = true, Variations = (byte)ContentVariation.Nothing });
}
// Member type.
if (_database.Exists<NodeDto>(1044))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentType, "pk", false, new ContentTypeDto { PrimaryKey = 531, NodeId = 1044, Alias = Cms.Core.Constants.Conventions.MemberTypes.DefaultAlias, Icon = Cms.Core.Constants.Icons.Member, Thumbnail = Cms.Core.Constants.Icons.Member, Variations = (byte)ContentVariation.Nothing });
}
}
private void CreateUserData()
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.User, "id", false, new UserDto { Id = Cms.Core.Constants.Security.SuperUserId, Disabled = false, NoConsole = false, UserName = "Administrator", Login = "admin", Password = "default", Email = string.Empty, UserLanguage = "en-US", CreateDate = DateTime.Now, UpdateDate = DateTime.Now });
}
private void CreateUserGroupData()
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup, "id", false, new UserGroupDto { Id = 1, StartMediaId = -1, StartContentId = -1, Alias = Cms.Core.Constants.Security.AdminGroupAlias, Name = "Administrators", DefaultPermissions = "CADMOSKTPIURZ:5F7ïN", CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Icon = "icon-medal" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup, "id", false, new UserGroupDto { Id = 2, StartMediaId = -1, StartContentId = -1, Alias = Cms.Core.Constants.Security.WriterGroupAlias, Name = "Writers", DefaultPermissions = "CAH:FN", CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Icon = "icon-edit" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup, "id", false, new UserGroupDto { Id = 3, StartMediaId = -1, StartContentId = -1, Alias = Cms.Core.Constants.Security.EditorGroupAlias, Name = "Editors", DefaultPermissions = "CADMOSKTPUZ:5FïN", CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Icon = "icon-tools" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup, "id", false, new UserGroupDto { Id = 4, StartMediaId = -1, StartContentId = -1, Alias = Cms.Core.Constants.Security.TranslatorGroupAlias, Name = "Translators", DefaultPermissions = "AF", CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Icon = "icon-globe" });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.UserGroup, "id", false, new UserGroupDto { Id = 5, StartMediaId = -1, StartContentId = -1, Alias = Cms.Core.Constants.Security.SensitiveDataGroupAlias, Name = "Sensitive data", DefaultPermissions = string.Empty, CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Icon = "icon-lock" });
}
private void CreateUser2UserGroupData()
{
_database.Insert(new User2UserGroupDto { UserGroupId = 1, UserId = Cms.Core.Constants.Security.SuperUserId }); // add super to admins
_database.Insert(new User2UserGroupDto { UserGroupId = 5, UserId = Cms.Core.Constants.Security.SuperUserId }); // add super to sensitive data
}
private void CreateUserGroup2AppData()
{
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Content });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Packages });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Media });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Members });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Settings });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Users });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Forms });
_database.Insert(new UserGroup2AppDto { UserGroupId = 1, AppAlias = Cms.Core.Constants.Applications.Translation });
_database.Insert(new UserGroup2AppDto { UserGroupId = 2, AppAlias = Cms.Core.Constants.Applications.Content });
_database.Insert(new UserGroup2AppDto { UserGroupId = 3, AppAlias = Cms.Core.Constants.Applications.Content });
_database.Insert(new UserGroup2AppDto { UserGroupId = 3, AppAlias = Cms.Core.Constants.Applications.Media });
_database.Insert(new UserGroup2AppDto { UserGroupId = 3, AppAlias = Cms.Core.Constants.Applications.Forms });
_database.Insert(new UserGroup2AppDto { UserGroupId = 4, AppAlias = Cms.Core.Constants.Applications.Translation });
}
private void CreatePropertyTypeGroupData()
{
// Insert property groups only if the corresponding content type node record exists (which may or may not have been created depending on configuration
// of media or member types to create).
// Media property groups.
if (_database.Exists<NodeDto>(1032))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 3, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.Image), ContentTypeNodeId = 1032, Text = "Image", Alias = "image", SortOrder = 1 });
}
if (_database.Exists<NodeDto>(1033))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 4, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.File), ContentTypeNodeId = 1033, Text = "File", Alias = "file", SortOrder = 1, });
}
if (_database.Exists<NodeDto>(1034))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 52, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.Video), ContentTypeNodeId = 1034, Text = "Video", Alias = "video", SortOrder = 1 });
}
if (_database.Exists<NodeDto>(1035))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 53, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.Audio), ContentTypeNodeId = 1035, Text = "Audio", Alias = "audio", SortOrder = 1 });
}
if (_database.Exists<NodeDto>(1036))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 54, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.Article), ContentTypeNodeId = 1036, Text = "Article", Alias = "article", SortOrder = 1 });
}
if (_database.Exists<NodeDto>(1037))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 55, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.VectorGraphics), ContentTypeNodeId = 1037, Text = "Vector Graphics", Alias = "vectorGraphics", SortOrder = 1 });
}
// Membership property group.
if (_database.Exists<NodeDto>(1044))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyTypeGroup, "id", false, new PropertyTypeGroupDto { Id = 11, UniqueId = new Guid(Cms.Core.Constants.PropertyTypeGroups.Membership), ContentTypeNodeId = 1044, Text = Cms.Core.Constants.Conventions.Member.StandardPropertiesGroupName, Alias = Cms.Core.Constants.Conventions.Member.StandardPropertiesGroupAlias, SortOrder = 1 });
}
}
private void CreatePropertyTypeData()
{
// Insert property types only if the corresponding property group record exists (which may or may not have been created depending on configuration
// of media or member types to create).
// Media property types.
if (_database.Exists<PropertyTypeGroupDto>(3))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 6, UniqueId = 6.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.ImageCropper, ContentTypeId = 1032, PropertyTypeGroupId = 3, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "Image", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 7, UniqueId = 7.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelInt, ContentTypeId = 1032, PropertyTypeGroupId = 3, Alias = Cms.Core.Constants.Conventions.Media.Width, Name = "Width", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in pixels", Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 8, UniqueId = 8.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelInt, ContentTypeId = 1032, PropertyTypeGroupId = 3, Alias = Cms.Core.Constants.Conventions.Media.Height, Name = "Height", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in pixels", Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 9, UniqueId = 9.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1032, PropertyTypeGroupId = 3, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 10, UniqueId = 10.ToGuid(), DataTypeId = -92, ContentTypeId = 1032, PropertyTypeGroupId = 3, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<PropertyTypeGroupDto>(4))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 24, UniqueId = 24.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.Upload, ContentTypeId = 1033, PropertyTypeGroupId = 4, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "File", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 25, UniqueId = 25.ToGuid(), DataTypeId = -92, ContentTypeId = 1033, PropertyTypeGroupId = 4, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 26, UniqueId = 26.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1033, PropertyTypeGroupId = 4, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<PropertyTypeGroupDto>(52))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 40, UniqueId = 40.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.UploadVideo, ContentTypeId = 1034, PropertyTypeGroupId = 52, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "Video", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 41, UniqueId = 41.ToGuid(), DataTypeId = -92, ContentTypeId = 1034, PropertyTypeGroupId = 52, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 42, UniqueId = 42.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1034, PropertyTypeGroupId = 52, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<PropertyTypeGroupDto>(53))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 43, UniqueId = 43.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.UploadAudio, ContentTypeId = 1035, PropertyTypeGroupId = 53, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "Audio", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 44, UniqueId = 44.ToGuid(), DataTypeId = -92, ContentTypeId = 1035, PropertyTypeGroupId = 53, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 45, UniqueId = 45.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1035, PropertyTypeGroupId = 53, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<PropertyTypeGroupDto>(54))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 46, UniqueId = 46.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.UploadArticle, ContentTypeId = 1036, PropertyTypeGroupId = 54, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "Article", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 47, UniqueId = 47.ToGuid(), DataTypeId = -92, ContentTypeId = 1036, PropertyTypeGroupId = 54, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 48, UniqueId = 48.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1036, PropertyTypeGroupId = 54, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
}
if (_database.Exists<PropertyTypeGroupDto>(55))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 49, UniqueId = 49.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.UploadVectorGraphics, ContentTypeId = 1037, PropertyTypeGroupId = 55, Alias = Cms.Core.Constants.Conventions.Media.File, Name = "Vector Graphics", SortOrder = 0, Mandatory = true, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 50, UniqueId = 50.ToGuid(), DataTypeId = -92, ContentTypeId = 1037, PropertyTypeGroupId = 55, Alias = Cms.Core.Constants.Conventions.Media.Extension, Name = "Type", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing });
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false, new PropertyTypeDto { Id = 51, UniqueId = 51.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.LabelBigint, ContentTypeId = 1037, PropertyTypeGroupId = 55, Alias = Cms.Core.Constants.Conventions.Media.Bytes, Name = "Size", SortOrder = 0, Mandatory = false, ValidationRegExp = null, Description = "in bytes", Variations = (byte)ContentVariation.Nothing });
}
// Membership property types.
if (_database.Exists<PropertyTypeGroupDto>(11))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.PropertyType, "id", false,
new PropertyTypeDto
{
Id = 28, UniqueId = 28.ToGuid(), DataTypeId = Cms.Core.Constants.DataTypes.Textarea,
ContentTypeId = 1044, PropertyTypeGroupId = 11,
Alias = Cms.Core.Constants.Conventions.Member.Comments,
Name = Cms.Core.Constants.Conventions.Member.CommentsLabel, SortOrder = 0, Mandatory = false,
ValidationRegExp = null, Description = null, Variations = (byte)ContentVariation.Nothing
});
}
}
private void CreateLanguageData() =>
ConditionalInsert(
Cms.Core.Constants.Configuration.NamedOptions.InstallDefaultData.Languages,
"en-us",
new LanguageDto { Id = 1, IsoCode = "en-US", CultureName = "English (United States)", IsDefault = true },
Cms.Core.Constants.DatabaseSchema.Tables.Language,
"id");
private void CreateContentChildTypeData()
{
// Insert data if the corresponding Node records exist (which may or may not have been created depending on configuration
// of media types to create).
if (!_database.Exists<NodeDto>(1031))
{
return;
}
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentChildType, "Id", false, new ContentTypeAllowedContentTypeDto { Id = 1031, AllowedId = 1031 });
for (int i = 1032; i <= 1037; i++)
{
if (_database.Exists<NodeDto>(i))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.ContentChildType, "Id", false, new ContentTypeAllowedContentTypeDto { Id = 1031, AllowedId = i });
}
}
}
private void CreateDataTypeData()
{
void InsertDataTypeDto(int id, string editorAlias, string dbType, string configuration = null)
{
var dataTypeDto = new DataTypeDto
{
NodeId = id,
EditorAlias = editorAlias,
DbType = dbType
};
if (configuration != null)
{
dataTypeDto.Configuration = configuration;
}
if (_database.Exists<NodeDto>(id))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, dataTypeDto);
}
}
//layouts for the list view
const string cardLayout = "{\"name\": \"Grid\",\"path\": \"views/propertyeditors/listview/layouts/grid/grid.html\", \"icon\": \"icon-thumbnails-small\", \"isSystem\": 1, \"selected\": true}";
const string listLayout = "{\"name\": \"List\",\"path\": \"views/propertyeditors/listview/layouts/list/list.html\",\"icon\": \"icon-list\", \"isSystem\": 1,\"selected\": true}";
const string layouts = "[" + cardLayout + "," + listLayout + "]";
// Insert data types only if the corresponding Node record exists (which may or may not have been created depending on configuration
// of data types to create).
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.Boolean))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.Boolean, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.Boolean, DbType = "Integer" });
}
if (_database.Exists<NodeDto>(-51))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = -51, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.Integer, DbType = "Integer" });
}
if (_database.Exists<NodeDto>(-87))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = -87,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.TinyMce,
DbType = "Ntext",
Configuration = "{\"value\":\",code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,umbracoembed,mcecharmap,|1|1,2,3,|0|500,400|1049,|true|\"}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.Textbox))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.Textbox, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.TextBox, DbType = "Nvarchar" });
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.Textarea))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.Textarea, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.TextArea, DbType = "Ntext" });
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.Upload))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.Upload, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.UploadField, DbType = "Nvarchar" });
}
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelString, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Nvarchar", "{\"umbracoDataValueType\":\"STRING\"}");
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelInt, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Integer", "{\"umbracoDataValueType\":\"INT\"}");
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelBigint, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Nvarchar", "{\"umbracoDataValueType\":\"BIGINT\"}");
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelDateTime, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Date", "{\"umbracoDataValueType\":\"DATETIME\"}");
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelDecimal, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Decimal", "{\"umbracoDataValueType\":\"DECIMAL\"}");
InsertDataTypeDto(Cms.Core.Constants.DataTypes.LabelTime, Cms.Core.Constants.PropertyEditors.Aliases.Label, "Date", "{\"umbracoDataValueType\":\"TIME\"}");
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.DateTime))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.DateTime, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.DateTime, DbType = "Date" });
}
if (_database.Exists<NodeDto>(-37))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = -37, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ColorPicker, DbType = "Nvarchar" });
}
InsertDataTypeDto(Cms.Core.Constants.DataTypes.DropDownSingle, Cms.Core.Constants.PropertyEditors.Aliases.DropDownListFlexible, "Nvarchar", "{\"multiple\":false}");
if (_database.Exists<NodeDto>(-40))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = -40, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.RadioButtonList, DbType = "Nvarchar" });
}
if (_database.Exists<NodeDto>(-41))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = -41, EditorAlias = "Umbraco.DateTime", DbType = "Date", Configuration = "{\"format\":\"YYYY-MM-DD\"}" });
}
InsertDataTypeDto(Cms.Core.Constants.DataTypes.DropDownMultiple, Cms.Core.Constants.PropertyEditors.Aliases.DropDownListFlexible, "Nvarchar", "{\"multiple\":true}");
if (_database.Exists<NodeDto>(-43))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = -43, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.CheckBoxList, DbType = "Nvarchar" });
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.Tags))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.Tags,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.Tags,
DbType = "Ntext",
Configuration = "{\"group\":\"default\", \"storageType\":\"Json\"}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.ImageCropper))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = Cms.Core.Constants.DataTypes.ImageCropper, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ImageCropper, DbType = "Ntext" });
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.DefaultContentListView))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.DefaultContentListView,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ListView,
DbType = "Nvarchar",
Configuration = "{\"pageSize\":100, \"orderBy\":\"updateDate\", \"orderDirection\":\"desc\", \"layouts\":" + layouts + ", \"includeProperties\":[{\"alias\":\"updateDate\",\"header\":\"Last edited\",\"isSystem\":1},{\"alias\":\"owner\",\"header\":\"Updated by\",\"isSystem\":1}]}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.DefaultMediaListView))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.DefaultMediaListView,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ListView,
DbType = "Nvarchar",
Configuration = "{\"pageSize\":100, \"orderBy\":\"updateDate\", \"orderDirection\":\"desc\", \"layouts\":" + layouts + ", \"includeProperties\":[{\"alias\":\"updateDate\",\"header\":\"Last edited\",\"isSystem\":1},{\"alias\":\"owner\",\"header\":\"Updated by\",\"isSystem\":1}]}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.DefaultMembersListView))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.DefaultMembersListView,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ListView,
DbType = "Nvarchar",
Configuration = "{\"pageSize\":10, \"orderBy\":\"username\", \"orderDirection\":\"asc\", \"includeProperties\":[{\"alias\":\"username\",\"isSystem\":1},{\"alias\":\"email\",\"isSystem\":1},{\"alias\":\"updateDate\",\"header\":\"Last edited\",\"isSystem\":1}]}"
});
}
// New UDI pickers with newer Ids
if (_database.Exists<NodeDto>(1046))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = 1046, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.ContentPicker, DbType = "Nvarchar" });
}
if (_database.Exists<NodeDto>(1047))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = 1047, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MemberPicker, DbType = "Nvarchar" });
}
if (_database.Exists<NodeDto>(1048))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = 1048, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker, DbType = "Ntext" });
}
if (_database.Exists<NodeDto>(1049))
{
_database.Insert(
Cms.Core.Constants.DatabaseSchema.Tables.DataType,
"pk",
false,
new DataTypeDto
{
NodeId = 1049,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker,
DbType = "Ntext",
Configuration = "{\"multiPicker\":1}"
});
}
if (_database.Exists<NodeDto>(1050))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto { NodeId = 1050, EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MultiUrlPicker, DbType = "Ntext" });
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.UploadVideo))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.UploadVideo,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.UploadField,
DbType = "Nvarchar",
Configuration = "{\"fileExtensions\":[{\"id\":0, \"value\":\"mp4\"}, {\"id\":1, \"value\":\"webm\"}, {\"id\":2, \"value\":\"ogv\"}]}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.UploadAudio))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.UploadAudio,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.UploadField,
DbType = "Nvarchar",
Configuration = "{\"fileExtensions\":[{\"id\":0, \"value\":\"mp3\"}, {\"id\":1, \"value\":\"weba\"}, {\"id\":2, \"value\":\"oga\"}, {\"id\":3, \"value\":\"opus\"}]}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.UploadArticle))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.UploadArticle,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.UploadField,
DbType = "Nvarchar",
Configuration = "{\"fileExtensions\":[{\"id\":0, \"value\":\"pdf\"}, {\"id\":1, \"value\":\"docx\"}, {\"id\":2, \"value\":\"doc\"}]}"
});
}
if (_database.Exists<NodeDto>(Cms.Core.Constants.DataTypes.UploadVectorGraphics))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = Cms.Core.Constants.DataTypes.UploadVectorGraphics,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.UploadField,
DbType = "Nvarchar",
Configuration = "{\"fileExtensions\":[{\"id\":0, \"value\":\"svg\"}]}"
});
}
if (_database.Exists<NodeDto>(1051))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = 1051,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker3,
DbType = "Ntext",
Configuration = "{\"multiple\": false, \"validationLimit\":{\"min\":0,\"max\":1}}"
});
}
if (_database.Exists<NodeDto>(1052))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = 1052,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker3,
DbType = "Ntext",
Configuration = "{\"multiple\": true}"
});
}
if (_database.Exists<NodeDto>(1053))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = 1053,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker3,
DbType = "Ntext",
Configuration = "{\"filter\":\"" + Cms.Core.Constants.Conventions.MediaTypes.Image + "\", \"multiple\": false, \"validationLimit\":{\"min\":0,\"max\":1}}"
});
}
if (_database.Exists<NodeDto>(1054))
{
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.DataType, "pk", false, new DataTypeDto
{
NodeId = 1054,
EditorAlias = Cms.Core.Constants.PropertyEditors.Aliases.MediaPicker3,
DbType = "Ntext",
Configuration = "{\"filter\":\"" + Cms.Core.Constants.Conventions.MediaTypes.Image + "\", \"multiple\": true}"
});
}
}
private void CreateRelationTypeData()
{
CreateRelationTypeData(1, Cms.Core.Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias, Cms.Core.Constants.Conventions.RelationTypes.RelateDocumentOnCopyName, Cms.Core.Constants.ObjectTypes.Document, Cms.Core.Constants.ObjectTypes.Document, true, false);
CreateRelationTypeData(2, Cms.Core.Constants.Conventions.RelationTypes.RelateParentDocumentOnDeleteAlias, Cms.Core.Constants.Conventions.RelationTypes.RelateParentDocumentOnDeleteName, Cms.Core.Constants.ObjectTypes.Document, Cms.Core.Constants.ObjectTypes.Document, false, false);
CreateRelationTypeData(3, Cms.Core.Constants.Conventions.RelationTypes.RelateParentMediaFolderOnDeleteAlias, Cms.Core.Constants.Conventions.RelationTypes.RelateParentMediaFolderOnDeleteName, Cms.Core.Constants.ObjectTypes.Media, Cms.Core.Constants.ObjectTypes.Media, false, false);
CreateRelationTypeData(4, Cms.Core.Constants.Conventions.RelationTypes.RelatedMediaAlias, Cms.Core.Constants.Conventions.RelationTypes.RelatedMediaName, null, null, false, true);
CreateRelationTypeData(5, Cms.Core.Constants.Conventions.RelationTypes.RelatedDocumentAlias, Cms.Core.Constants.Conventions.RelationTypes.RelatedDocumentName, null, null, false, true);
}
private void CreateRelationTypeData(int id, string alias, string name, Guid? parentObjectType, Guid? childObjectType, bool dual, bool isDependency)
{
var relationType = new RelationTypeDto { Id = id, Alias = alias, ChildObjectType = childObjectType, ParentObjectType = parentObjectType, Dual = dual, Name = name, IsDependency = isDependency };
relationType.UniqueId = CreateUniqueRelationTypeId(relationType.Alias, relationType.Name);
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.RelationType, "id", false, relationType);
}
internal static Guid CreateUniqueRelationTypeId(string alias, string name)
{
return (alias + "____" + name).ToGuid();
}
private void CreateKeyValueData()
{
// On install, initialize the umbraco migration plan with the final state.
var upgrader = new Upgrader(new UmbracoPlan(_umbracoVersion));
var stateValueKey = upgrader.StateValueKey;
var finalState = upgrader.Plan.FinalState;
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.KeyValue, "key", false, new KeyValueDto { Key = stateValueKey, Value = finalState, UpdateDate = DateTime.Now });
}
private void CreateLogViewerQueryData()
{
LogViewerQueryDto[] defaultData = MigrateLogViewerQueriesFromFileToDb.DefaultLogQueries.ToArray();
for (int i = 0; i < defaultData.Length; i++)
{
LogViewerQueryDto dto = defaultData[i];
dto.Id = i+1;
_database.Insert(Cms.Core.Constants.DatabaseSchema.Tables.LogViewerQuery, "id", false, dto);
}
}
private void ConditionalInsert<TDto>(
string configKey,
string id,
TDto dto,
string tableName,
string primaryKeyName,
bool autoIncrement = false)
{
var alwaysInsert = _entitiesToAlwaysCreate.ContainsKey(configKey) &&
_entitiesToAlwaysCreate[configKey].InvariantContains(id.ToString());
InstallDefaultDataSettings installDefaultDataSettings = _installDefaultDataSettings.Get(configKey);
// If there's no configuration, we assume to create.
if (installDefaultDataSettings == null)
{
alwaysInsert = true;
}
if (!alwaysInsert && installDefaultDataSettings.InstallData == InstallDefaultDataOption.None)
{
return;
}
if (!alwaysInsert && installDefaultDataSettings.InstallData == InstallDefaultDataOption.Values && !installDefaultDataSettings.Values.InvariantContains(id))
{
return;
}
if (!alwaysInsert && installDefaultDataSettings.InstallData == InstallDefaultDataOption.ExceptValues && installDefaultDataSettings.Values.InvariantContains(id))
{
return;
}
_database.Insert(tableName, primaryKeyName, autoIncrement, dto);
}
}
}