@@ -47,6 +47,16 @@ public async Task AddProjectReferences(string projectId, string projectVersion,
47
47
projectReferences . ProjectId = projectId ;
48
48
projectReferences . ProjectVersion = projectVersion ;
49
49
await this . referencesCollection . InsertOneAsync ( projectReferences ) ;
50
+ logger . LogInformation ( "ProjectReferences was added to version : '{0}' of project : '{1}'" , projectVersion , projectId ) ;
51
+ }
52
+
53
+ /// <inheritdoc/>
54
+ public async Task < bool > IsControlInUse ( string controlId )
55
+ {
56
+ var filter = Builders < ProjectReferences > . Filter . ElemMatch ( x => x . ControlReferences ,
57
+ Builders < ControlReference > . Filter . Eq ( x => x . ControlId , controlId ) ) ;
58
+ long count = await this . referencesCollection . CountDocumentsAsync ( filter ) ;
59
+ return count > 0 ;
50
60
}
51
61
52
62
/// <inheritdoc/>
@@ -64,20 +74,21 @@ public async Task<bool> HasControlReference(string projectId, string projectVers
64
74
/// <inheritdoc/>
65
75
public async Task AddControlReference ( string projectId , string projectVersion , ControlReference controlReference )
66
76
{
67
- var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion )
68
- & Builders < ProjectReferences > . Filter . ElemMatch ( x => x . ControlReferences , Builders < ControlReference > . Filter . Eq ( x => x . ControlId , controlReference . ControlId ) ) ;
69
- var update = Builders < ProjectReferences > . Update . Set ( x => x . ControlReferences [ - 1 ] . Version , controlReference . Version ) ;
70
- await this . referencesCollection . UpdateOneAsync ( filter , update ) ;
71
- logger . LogInformation ( "Control reference {0} was updated for project : {1}" , controlReference , projectId ) ;
77
+ var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion ) ;
78
+ var push = Builders < ProjectReferences > . Update . Push ( t => t . ControlReferences , controlReference ) ;
79
+ await this . referencesCollection . UpdateOneAsync ( filter , push ) ;
80
+ logger . LogInformation ( "Control reference {@0} was added to version : '{1}' of project : {2}" , controlReference , projectVersion , projectId ) ;
72
81
}
73
82
74
83
/// <inheritdoc/>
75
84
public async Task UpdateControlReference ( string projectId , string projectVersion , ControlReference controlReference )
76
85
{
77
- var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) ;
78
- var push = Builders < ProjectReferences > . Update . Push ( t => t . ControlReferences , controlReference ) ;
79
- await this . referencesCollection . UpdateOneAsync ( filter , push ) ;
80
- logger . LogInformation ( "Control reference {0} was added to project : {1}" , controlReference , projectId ) ;
86
+ var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion )
87
+ & Builders < ProjectReferences > . Filter . ElemMatch ( x => x . ControlReferences , Builders < ControlReference > . Filter . Eq ( x => x . ControlId , controlReference . ControlId ) ) ;
88
+ var update = Builders < ProjectReferences > . Update . Set ( x => x . ControlReferences [ - 1 ] . Version , controlReference . Version ) ;
89
+ await this . referencesCollection . UpdateOneAsync ( filter , update ) ;
90
+ logger . LogInformation ( "Control reference {@0} was updated for version : '{1}' of project : {2}" , controlReference , projectVersion , projectId ) ;
91
+
81
92
}
82
93
83
94
/// <inheritdoc/>
@@ -90,28 +101,34 @@ public async Task<bool> IsPrefabInUse(string prefabId)
90
101
}
91
102
92
103
/// <inheritdoc/>
93
- public async Task AddOrUpdatePrefabReference ( string projectId , string projectVersion , PrefabReference prefabReference )
104
+ public async Task < bool > HasPrefabReference ( string projectId , string projectVersion , PrefabReference prefabReference )
94
105
{
95
106
var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion )
96
- & Builders < ProjectReferences > . Filter . ElemMatch ( x => x . PrefabReferences , Builders < PrefabReference > . Filter . Eq ( x => x . PrefabId , prefabReference . PrefabId ) ) ;
107
+ & Builders < ProjectReferences > . Filter . ElemMatch ( x => x . PrefabReferences , Builders < PrefabReference > . Filter . Eq ( x => x . PrefabId , prefabReference . PrefabId ) ) ;
97
108
var prefabReferences = ( await this . referencesCollection . FindAsync < List < PrefabReference > > ( filter , new FindOptions < ProjectReferences , List < PrefabReference > > ( )
98
109
{
99
110
Projection = Builders < ProjectReferences > . Projection . Expression ( u => u . PrefabReferences )
100
111
} ) ) . ToList ( ) . FirstOrDefault ( ) ;
112
+ return prefabReferences ? . Contains ( prefabReference ) ?? false ;
113
+ }
101
114
102
- if ( prefabReferences ? . Contains ( prefabReference ) ?? false )
103
- {
104
- var update = Builders < ProjectReferences > . Update . Set ( x => x . PrefabReferences [ - 1 ] . Version , prefabReference . Version ) ;
105
- await this . referencesCollection . UpdateOneAsync ( filter , update ) ;
106
- logger . LogInformation ( "Prefab reference {0} was updated for project : {1}" , prefabReference , projectId ) ;
107
- }
108
- else
109
- {
110
- filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion ) ;
111
- var push = Builders < ProjectReferences > . Update . Push ( t => t . PrefabReferences , prefabReference ) ;
112
- await this . referencesCollection . UpdateOneAsync ( filter , push ) ;
113
- logger . LogInformation ( "Prefab reference {0} was added to project : {1}" , prefabReference , projectId ) ;
114
- }
115
+ /// <inheritdoc/>
116
+ public async Task AddPrefabReference ( string projectId , string projectVersion , PrefabReference prefabReference )
117
+ {
118
+ var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion ) ;
119
+ var push = Builders < ProjectReferences > . Update . Push ( t => t . PrefabReferences , prefabReference ) ;
120
+ await this . referencesCollection . UpdateOneAsync ( filter , push ) ;
121
+ logger . LogInformation ( "Prefab reference {@0} was added to version : '{1}' of project : {2}" , prefabReference , projectVersion , projectId ) ;
122
+ }
123
+
124
+ /// <inheritdoc/>
125
+ public async Task UpdatePrefabReference ( string projectId , string projectVersion , PrefabReference prefabReference )
126
+ {
127
+ var filter = Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectId , projectId ) & Builders < ProjectReferences > . Filter . Eq ( x => x . ProjectVersion , projectVersion )
128
+ & Builders < ProjectReferences > . Filter . ElemMatch ( x => x . PrefabReferences , Builders < PrefabReference > . Filter . Eq ( x => x . PrefabId , prefabReference . PrefabId ) ) ;
129
+ var update = Builders < ProjectReferences > . Update . Set ( x => x . PrefabReferences [ - 1 ] . Version , prefabReference . Version ) ;
130
+ await this . referencesCollection . UpdateOneAsync ( filter , update ) ;
131
+ logger . LogInformation ( "Prefab reference {@0} was updated for version : '{1}' of project : {2}" , prefabReference , projectVersion , projectId ) ;
115
132
}
116
133
117
134
/// <inheritdoc/>
0 commit comments