1
- using System ;
2
- using System . Collections . Generic ;
3
1
using System . Data ;
4
- using System . Linq ;
5
2
using System . Net . Mime ;
6
3
using System . Text ;
7
4
using Microsoft . AspNetCore . Authorization ;
8
5
using Microsoft . AspNetCore . Mvc ;
9
6
using Microsoft . Extensions . DependencyInjection ;
10
7
using Microsoft . Extensions . Options ;
11
- using NPoco ;
12
8
using Umbraco . Cms . Core ;
13
9
using Umbraco . Cms . Core . Configuration . Models ;
14
10
using Umbraco . Cms . Core . DependencyInjection ;
15
11
using Umbraco . Cms . Core . Mapping ;
16
12
using Umbraco . Cms . Core . Models ;
17
13
using Umbraco . Cms . Core . Models . ContentEditing ;
14
+ using Umbraco . Cms . Core . Models . Entities ;
18
15
using Umbraco . Cms . Core . PropertyEditors ;
19
16
using Umbraco . Cms . Core . Security ;
20
17
using Umbraco . Cms . Core . Serialization ;
@@ -37,6 +34,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
37
34
[ PluginController ( Constants . Web . Mvc . BackOfficeApiArea ) ]
38
35
[ Authorize ( Policy = AuthorizationPolicies . TreeAccessDocumentsOrDocumentTypes ) ]
39
36
[ ParameterSwapControllerActionSelector ( nameof ( GetById ) , "id" , typeof ( int ) , typeof ( Guid ) , typeof ( Udi ) ) ]
37
+ [ ParameterSwapControllerActionSelector ( nameof ( GetReferences ) , "id" , typeof ( int ) , typeof ( Guid ) ) ]
40
38
public class DataTypeController : BackOfficeNotificationsController
41
39
{
42
40
private readonly PropertyEditorCollection _propertyEditors ;
@@ -51,6 +49,7 @@ public class DataTypeController : BackOfficeNotificationsController
51
49
private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor ;
52
50
private readonly IConfigurationEditorJsonSerializer _serializer ;
53
51
private readonly IDataTypeUsageService _dataTypeUsageService ;
52
+ private readonly IIdKeyMap _idKeyMap ;
54
53
55
54
[ Obsolete ( "Use constructor that takes IDataTypeUsageService, scheduled for removal in V12" ) ]
56
55
public DataTypeController (
@@ -77,11 +76,12 @@ public DataTypeController(
77
76
localizedTextService ,
78
77
backOfficeSecurityAccessor ,
79
78
serializer ,
80
- StaticServiceProvider . Instance . GetRequiredService < IDataTypeUsageService > ( ) )
79
+ StaticServiceProvider . Instance . GetRequiredService < IDataTypeUsageService > ( ) ,
80
+ StaticServiceProvider . Instance . GetRequiredService < IIdKeyMap > ( ) )
81
81
{
82
82
}
83
83
84
- [ ActivatorUtilitiesConstructor ]
84
+ [ Obsolete ( "Use constructor that takes IDataTypeUsageService, scheduled for removal in V17" ) ]
85
85
public DataTypeController (
86
86
PropertyEditorCollection propertyEditors ,
87
87
IDataTypeService dataTypeService ,
@@ -95,6 +95,38 @@ public DataTypeController(
95
95
IBackOfficeSecurityAccessor backOfficeSecurityAccessor ,
96
96
IConfigurationEditorJsonSerializer serializer ,
97
97
IDataTypeUsageService dataTypeUsageService )
98
+ : this (
99
+ propertyEditors ,
100
+ dataTypeService ,
101
+ contentSettings ,
102
+ umbracoMapper ,
103
+ propertyEditorCollection ,
104
+ contentTypeService ,
105
+ mediaTypeService ,
106
+ memberTypeService ,
107
+ localizedTextService ,
108
+ backOfficeSecurityAccessor ,
109
+ serializer ,
110
+ dataTypeUsageService ,
111
+ StaticServiceProvider . Instance . GetRequiredService < IIdKeyMap > ( ) )
112
+ {
113
+ }
114
+
115
+ [ ActivatorUtilitiesConstructor ]
116
+ public DataTypeController (
117
+ PropertyEditorCollection propertyEditors ,
118
+ IDataTypeService dataTypeService ,
119
+ IOptionsSnapshot < ContentSettings > contentSettings ,
120
+ IUmbracoMapper umbracoMapper ,
121
+ PropertyEditorCollection propertyEditorCollection ,
122
+ IContentTypeService contentTypeService ,
123
+ IMediaTypeService mediaTypeService ,
124
+ IMemberTypeService memberTypeService ,
125
+ ILocalizedTextService localizedTextService ,
126
+ IBackOfficeSecurityAccessor backOfficeSecurityAccessor ,
127
+ IConfigurationEditorJsonSerializer serializer ,
128
+ IDataTypeUsageService dataTypeUsageService ,
129
+ IIdKeyMap entityService )
98
130
{
99
131
_propertyEditors = propertyEditors ?? throw new ArgumentNullException ( nameof ( propertyEditors ) ) ;
100
132
_dataTypeService = dataTypeService ?? throw new ArgumentNullException ( nameof ( dataTypeService ) ) ;
@@ -108,6 +140,7 @@ public DataTypeController(
108
140
_backOfficeSecurityAccessor = backOfficeSecurityAccessor ?? throw new ArgumentNullException ( nameof ( backOfficeSecurityAccessor ) ) ;
109
141
_serializer = serializer ?? throw new ArgumentNullException ( nameof ( serializer ) ) ;
110
142
_dataTypeUsageService = dataTypeUsageService ?? throw new ArgumentNullException ( nameof ( dataTypeUsageService ) ) ;
143
+ _idKeyMap = entityService ?? throw new ArgumentNullException ( nameof ( entityService ) ) ;
111
144
}
112
145
113
146
/// <summary>
@@ -421,10 +454,10 @@ public IActionResult PostRenameContainer(int id, string name)
421
454
}
422
455
423
456
/// <summary>
424
- /// Returns the references (usages) for the data type
457
+ /// Returns the references (usages) for the data type.
425
458
/// </summary>
426
- /// <param name="id"></param>
427
- /// <returns></returns>
459
+ /// <param name="id">Data type's integer Id. </param>
460
+ [ HttpGet ]
428
461
public DataTypeReferences GetReferences ( int id )
429
462
{
430
463
var result = new DataTypeReferences ( ) ;
@@ -462,6 +495,19 @@ public DataTypeReferences GetReferences(int id)
462
495
return result ;
463
496
}
464
497
498
+ /// <summary>
499
+ /// Returns the references (usages) for the data type.
500
+ /// </summary>
501
+ /// <param name="id">Data type's key.</param>
502
+ [ HttpGet ]
503
+ public DataTypeReferences GetReferences ( Guid id )
504
+ {
505
+ Attempt < int > dataType = _idKeyMap . GetIdForKey ( id , UmbracoObjectTypes . DataType ) ;
506
+ return dataType . Success
507
+ ? GetReferences ( dataType . Result )
508
+ : new DataTypeReferences ( ) ;
509
+ }
510
+
465
511
[ HttpGet ]
466
512
public ActionResult < DataTypeHasValuesDisplay > HasValues ( int id )
467
513
{
0 commit comments