mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Data model conditions - DRY'd predicate code in preparation for events
This commit is contained in:
1 parent
a79223fa75
commit
574c4b21ec
21 files changed
+510
-918
No files matched your search
+6
@@ -0,0 +1,6 @@
|
||||
namespace Artemis.Storage.Entities.Profile.Conditions
|
||||
{
|
||||
public class DataModelConditionGeneralPredicateEntity : DataModelConditionPredicateEntity
|
||||
{
|
||||
}
|
||||
}
|
||||
+2
-16
@@ -1,20 +1,6 @@
|
||||
using System;
|
||||
using Artemis.Storage.Entities.Profile.Abstract;
|
||||
|
||||
namespace Artemis.Storage.Entities.Profile.Conditions
|
||||
namespace Artemis.Storage.Entities.Profile.Conditions
|
||||
{
|
||||
public class DataModelConditionListPredicateEntity : DataModelConditionPartEntity
|
||||
public class DataModelConditionListPredicateEntity : DataModelConditionPredicateEntity
|
||||
{
|
||||
public int PredicateType { get; set; }
|
||||
|
||||
public DataModelPathEntity LeftPath { get; set; }
|
||||
public DataModelPathEntity RightPath { get; set; }
|
||||
|
||||
// Stored as a string to be able to control serialization and deserialization ourselves
|
||||
public string RightStaticValue { get; set; }
|
||||
|
||||
public string OperatorType { get; set; }
|
||||
public Guid? OperatorPluginGuid { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -3,7 +3,7 @@ using Artemis.Storage.Entities.Profile.Abstract;
|
||||
|
||||
namespace Artemis.Storage.Entities.Profile.Conditions
|
||||
{
|
||||
public class DataModelConditionPredicateEntity : DataModelConditionPartEntity
|
||||
public abstract class DataModelConditionPredicateEntity : DataModelConditionPartEntity
|
||||
{
|
||||
public int PredicateType { get; set; }
|
||||
public DataModelPathEntity LeftPath { get; set; }
|
||||
@@ -14,6 +14,5 @@ namespace Artemis.Storage.Entities.Profile.Conditions
|
||||
|
||||
// Stored as a string to be able to control serialization and deserialization ourselves
|
||||
public string RightStaticValue { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Artemis.Storage.Migrations.Interfaces;
|
||||
using LiteDB;
|
||||
|
||||
namespace Artemis.Storage.Migrations
|
||||
{
|
||||
public class M6PredicateAbstraction : IStorageMigration
|
||||
{
|
||||
public int UserVersion => 7;
|
||||
|
||||
public void Apply(LiteRepository repository)
|
||||
{
|
||||
ILiteCollection<BsonDocument> collection = repository.Database.GetCollection("ProfileEntity");
|
||||
foreach (BsonDocument bsonDocument in collection.FindAll())
|
||||
{
|
||||
|
||||
foreach (BsonValue bsonLayer in bsonDocument["Layers"].AsArray)
|
||||
{
|
||||
bsonLayer["DisplayCondition"] = null;
|
||||
foreach (BsonValue bsonPropertyEntity in bsonLayer["PropertyEntities"].AsArray)
|
||||
bsonPropertyEntity["DataBindingEntities"].AsArray.Clear();
|
||||
}
|
||||
|
||||
foreach (BsonValue bsonLayer in bsonDocument["Folders"].AsArray)
|
||||
{
|
||||
bsonLayer["DisplayCondition"] = null;
|
||||
foreach (BsonValue bsonPropertyEntity in bsonLayer["PropertyEntities"].AsArray)
|
||||
bsonPropertyEntity["DataBindingEntities"].AsArray.Clear();
|
||||
}
|
||||
|
||||
collection.Update(bsonDocument);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user