Skip to content

Commit baa51d9

Browse files
committed
Merge remote-tracking branch 'origin/v9/dev' into v9/dev
2 parents e95a759 + 85e8caf commit baa51d9

File tree

83 files changed

+259
-178
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+259
-178
lines changed

src/Umbraco.Core/Configuration/Models/RuntimeSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class RuntimeSettings
1515
public int? MaxQueryStringLength { get; set; }
1616

1717
/// <summary>
18-
/// Gets or sets a value for the maximum request length.
18+
/// Gets or sets a value for the maximum request length in kb.
1919
/// </summary>
2020
public int? MaxRequestLength { get; set; }
2121
}

src/Umbraco.Core/Extensions/ClaimsIdentityExtensions.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Globalization;
67
using System.Linq;
78
using System.Security.Claims;
89
using System.Security.Principal;
@@ -267,7 +268,7 @@ public static void AddRequiredClaims(this ClaimsIdentity identity, string userId
267268
/// <returns>Array of start content nodes</returns>
268269
public static int[] GetStartContentNodes(this ClaimsIdentity identity) =>
269270
identity.FindAll(x => x.Type == Constants.Security.StartContentNodeIdClaimType)
270-
.Select(node => int.TryParse(node.Value, out var i) ? i : default)
271+
.Select(node => int.TryParse(node.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i) ? i : default)
271272
.Where(x => x != default).ToArray();
272273

273274
/// <summary>
@@ -277,7 +278,7 @@ public static int[] GetStartContentNodes(this ClaimsIdentity identity) =>
277278
/// <returns>Array of start media nodes</returns>
278279
public static int[] GetStartMediaNodes(this ClaimsIdentity identity) =>
279280
identity.FindAll(x => x.Type == Constants.Security.StartMediaNodeIdClaimType)
280-
.Select(node => int.TryParse(node.Value, out var i) ? i : default)
281+
.Select(node => int.TryParse(node.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i) ? i : default)
281282
.Where(x => x != default).ToArray();
282283

283284
/// <summary>
@@ -293,7 +294,7 @@ public static string[] GetAllowedApplications(this ClaimsIdentity identity) => i
293294
/// </summary>
294295
/// <param name="identity"></param>
295296
/// <returns>User ID as integer</returns>
296-
public static int GetId(this ClaimsIdentity identity) => int.Parse(identity.FindFirstValue(ClaimTypes.NameIdentifier));
297+
public static int GetId(this ClaimsIdentity identity) => int.Parse(identity.FindFirstValue(ClaimTypes.NameIdentifier), CultureInfo.InvariantCulture);
297298

298299
/// <summary>
299300
/// Get the real name belonging to the user from a ClaimsIdentity

src/Umbraco.Core/Extensions/ObjectExtensions.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Collections.Concurrent;
77
using System.Collections.Generic;
88
using System.ComponentModel;
9+
using System.Globalization;
910
using System.Linq;
1011
using System.Linq.Expressions;
1112
using System.Reflection;
@@ -94,8 +95,8 @@ public static Attempt<T> TryConvertTo<T>(this object input)
9495
{
9596
// sure, null can be any object
9697
return Attempt<T>.Succeed((T)input);
97-
}
98-
}
98+
}
99+
}
99100

100101
// just try to cast
101102
try
@@ -293,15 +294,15 @@ public static Attempt<object> TryConvertTo(this object input, Type target)
293294
{
294295
if (target == typeof(int))
295296
{
296-
if (int.TryParse(input, out var value))
297+
if (int.TryParse(input, out var value))
297298
{
298299
return Attempt<object>.Succeed(value);
299300
}
300301

301302
// Because decimal 100.01m will happily convert to integer 100, it
302303
// makes sense that string "100.01" *also* converts to integer 100.
303304
var input2 = NormalizeNumberDecimalSeparator(input);
304-
return Attempt<object>.If(decimal.TryParse(input2, out var value2), Convert.ToInt32(value2));
305+
return Attempt<object>.If(decimal.TryParse(input2, out var value2), Convert.ToInt32(value2));
305306
}
306307

307308
if (target == typeof(long))
@@ -320,7 +321,7 @@ public static Attempt<object> TryConvertTo(this object input, Type target)
320321

321322
if (target == typeof(bool))
322323
{
323-
if (bool.TryParse(input, out var value))
324+
if (bool.TryParse(input, out var value))
324325
{
325326
return Attempt<object>.Succeed(value);
326327
}
@@ -337,11 +338,11 @@ public static Attempt<object> TryConvertTo(this object input, Type target)
337338

338339
case TypeCode.Double:
339340
var input2 = NormalizeNumberDecimalSeparator(input);
340-
return Attempt<object>.If(double.TryParse(input2, out var valueD), valueD);
341+
return Attempt<object>.If(double.TryParse(input2, out var valueD), valueD);
341342

342343
case TypeCode.Single:
343344
var input3 = NormalizeNumberDecimalSeparator(input);
344-
return Attempt<object>.If(float.TryParse(input3, out var valueF), valueF);
345+
return Attempt<object>.If(float.TryParse(input3, out var valueF), valueF);
345346

346347
case TypeCode.Char:
347348
return Attempt<object>.If(char.TryParse(input, out var valueC), valueC);
@@ -353,13 +354,13 @@ public static Attempt<object> TryConvertTo(this object input, Type target)
353354
return Attempt<object>.If(sbyte.TryParse(input, out var valueSb), valueSb);
354355

355356
case TypeCode.UInt32:
356-
return Attempt<object>.If(uint.TryParse(input, out var valueU), valueU);
357+
return Attempt<object>.If(uint.TryParse(input, out var valueU), valueU);
357358

358359
case TypeCode.UInt16:
359-
return Attempt<object>.If(ushort.TryParse(input, out var valueUs), valueUs);
360+
return Attempt<object>.If(ushort.TryParse(input, out var valueUs), valueUs);
360361

361362
case TypeCode.UInt64:
362-
return Attempt<object>.If(ulong.TryParse(input, out var valueUl), valueUl);
363+
return Attempt<object>.If(ulong.TryParse(input, out var valueUl), valueUl);
363364
}
364365
}
365366
else if (target == typeof(Guid))

src/Umbraco.Core/Extensions/VersionExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Globalization;
67
using Umbraco.Cms.Core.Semver;
78

89
namespace Umbraco.Extensions
@@ -12,7 +13,7 @@ public static class VersionExtensions
1213
public static Version GetVersion(this SemVersion semVersion, int maxParts = 4)
1314
{
1415
int build = 0;
15-
int.TryParse(semVersion.Build, out build);
16+
int.TryParse(semVersion.Build, NumberStyles.Integer, CultureInfo.InvariantCulture, out build);
1617

1718
if (maxParts >= 4)
1819
{

src/Umbraco.Core/Media/Exif/ExifBitConverter.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Globalization;
23
using System.Text;
34

45
namespace Umbraco.Cms.Core.Media.Exif
@@ -65,12 +66,12 @@ public static DateTime ToDateTime(byte[] data, bool hastime)
6566
// yyyy:MM:dd HH:mm:ss
6667
// This is the expected format though some cameras
6768
// can use single digits. See Issue 21.
68-
return new DateTime(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]), int.Parse(parts[4]), int.Parse(parts[5]));
69+
return new DateTime(int.Parse(parts[0], CultureInfo.InvariantCulture), int.Parse(parts[1], CultureInfo.InvariantCulture), int.Parse(parts[2], CultureInfo.InvariantCulture), int.Parse(parts[3], CultureInfo.InvariantCulture), int.Parse(parts[4], CultureInfo.InvariantCulture), int.Parse(parts[5], CultureInfo.InvariantCulture));
6970
}
7071
else if (!hastime && parts.Length == 3)
7172
{
7273
// yyyy:MM:dd
73-
return new DateTime(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]));
74+
return new DateTime(int.Parse(parts[0], CultureInfo.InvariantCulture), int.Parse(parts[1], CultureInfo.InvariantCulture), int.Parse(parts[2], CultureInfo.InvariantCulture));
7475
}
7576
else
7677
{

src/Umbraco.Core/Media/Exif/MathEx.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Globalization;
23
using System.Text;
34

45
namespace Umbraco.Cms.Core.Media.Exif
@@ -701,7 +702,7 @@ private static Fraction32 FromString(string s)
701702
if (sa.Length == 1)
702703
{
703704
// Try to parse as int
704-
if (int.TryParse(sa[0], out numerator))
705+
if (int.TryParse(sa[0], NumberStyles.Integer, CultureInfo.InvariantCulture, out numerator))
705706
{
706707
denominator = 1;
707708
}
@@ -714,8 +715,8 @@ private static Fraction32 FromString(string s)
714715
}
715716
else if (sa.Length == 2)
716717
{
717-
numerator = int.Parse(sa[0]);
718-
denominator = int.Parse(sa[1]);
718+
numerator = int.Parse(sa[0], CultureInfo.InvariantCulture);
719+
denominator = int.Parse(sa[1], CultureInfo.InvariantCulture);
719720
}
720721
else
721722
throw new FormatException("The input string must be formatted as n/d where n and d are integers");
@@ -1329,7 +1330,7 @@ private static UFraction32 FromString(string s)
13291330
if (sa.Length == 1)
13301331
{
13311332
// Try to parse as uint
1332-
if (uint.TryParse(sa[0], out numerator))
1333+
if (uint.TryParse(sa[0], NumberStyles.Integer, CultureInfo.InvariantCulture, out numerator))
13331334
{
13341335
denominator = 1;
13351336
}
@@ -1342,8 +1343,8 @@ private static UFraction32 FromString(string s)
13421343
}
13431344
else if (sa.Length == 2)
13441345
{
1345-
numerator = uint.Parse(sa[0]);
1346-
denominator = uint.Parse(sa[1]);
1346+
numerator = uint.Parse(sa[0], CultureInfo.InvariantCulture);
1347+
denominator = uint.Parse(sa[1], CultureInfo.InvariantCulture);
13471348
}
13481349
else
13491350
throw new FormatException("The input string must be formatted as n/d where n and d are integers");

src/Umbraco.Core/Media/Exif/SvgFile.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.IO;
1+
using System.Globalization;
2+
using System.IO;
23
using System.Linq;
34
using System.Xml.Linq;
45

@@ -16,9 +17,9 @@ public SvgFile(Stream fileStream)
1617
var height = document.Root?.Attributes().Where(x => x.Name == "height").Select(x => x.Value).FirstOrDefault();
1718

1819
Properties.Add(new ExifSInt(ExifTag.PixelYDimension,
19-
height == null ? Constants.Conventions.Media.DefaultSize : int.Parse(height)));
20+
height == null ? Constants.Conventions.Media.DefaultSize : int.Parse(height, CultureInfo.InvariantCulture)));
2021
Properties.Add(new ExifSInt(ExifTag.PixelXDimension,
21-
width == null ? Constants.Conventions.Media.DefaultSize : int.Parse(width)));
22+
width == null ? Constants.Conventions.Media.DefaultSize : int.Parse(width, CultureInfo.InvariantCulture)));
2223

2324
Format = ImageFileFormat.SVG;
2425
}

src/Umbraco.Core/Models/Mapping/ContentTypeMapDefinition.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using System.Linq;
45
using Microsoft.Extensions.Logging;
56
using Microsoft.Extensions.Options;
@@ -601,7 +602,7 @@ private IEnumerable<string> MapLockedCompositions(IContentTypeComposition source
601602
return Enumerable.Empty<string>();
602603

603604
var aliases = new List<string>();
604-
var ancestorIds = parent.Path.Split(Constants.CharArrays.Comma).Select(int.Parse);
605+
var ancestorIds = parent.Path.Split(Constants.CharArrays.Comma).Select(s => int.Parse(s, CultureInfo.InvariantCulture));
605606
// loop through all content types and return ordered aliases of ancestors
606607
var allContentTypes = _contentTypeService.GetAll().ToArray();
607608
foreach (var ancestorId in ancestorIds)

src/Umbraco.Core/Packaging/PackagesRepository.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.ComponentModel.DataAnnotations;
4+
using System.Globalization;
45
using System.IO;
56
using System.IO.Compression;
67
using System.Linq;
@@ -294,7 +295,7 @@ private void PackageDataTypes(PackageDefinition definition, XContainer root)
294295
var dataTypes = new XElement("DataTypes");
295296
foreach (var dtId in definition.DataTypes)
296297
{
297-
if (!int.TryParse(dtId, out var outInt))
298+
if (!int.TryParse(dtId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
298299
continue;
299300
var dataType = _dataTypeService.GetDataType(outInt);
300301
if (dataType == null)
@@ -309,7 +310,7 @@ private void PackageLanguages(PackageDefinition definition, XContainer root)
309310
var languages = new XElement("Languages");
310311
foreach (var langId in definition.Languages)
311312
{
312-
if (!int.TryParse(langId, out var outInt))
313+
if (!int.TryParse(langId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
313314
continue;
314315
var lang = _languageService.GetLanguageById(outInt);
315316
if (lang == null)
@@ -326,7 +327,7 @@ private void PackageDictionaryItems(PackageDefinition definition, XContainer roo
326327

327328
foreach (var dictionaryId in definition.DictionaryItems)
328329
{
329-
if (!int.TryParse(dictionaryId, out var outInt))
330+
if (!int.TryParse(dictionaryId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
330331
{
331332
continue;
332333
}
@@ -397,7 +398,7 @@ private void PackageMacros(PackageDefinition definition, XContainer root)
397398
var macros = new XElement("Macros");
398399
foreach (var macroId in definition.Macros)
399400
{
400-
if (!int.TryParse(macroId, out int outInt))
401+
if (!int.TryParse(macroId, NumberStyles.Integer, CultureInfo.InvariantCulture, out int outInt))
401402
{
402403
continue;
403404
}
@@ -477,7 +478,7 @@ private void PackageTemplates(PackageDefinition definition, XContainer root)
477478
var templatesXml = new XElement("Templates");
478479
foreach (var templateId in definition.Templates)
479480
{
480-
if (!int.TryParse(templateId, out var outInt))
481+
if (!int.TryParse(templateId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
481482
continue;
482483
var template = _fileService.GetTemplate(outInt);
483484
if (template == null)
@@ -520,7 +521,7 @@ private void PackageDocumentTypes(PackageDefinition definition, XContainer root)
520521
var docTypesXml = new XElement("DocumentTypes");
521522
foreach (var dtId in definition.DocumentTypes)
522523
{
523-
if (!int.TryParse(dtId, out var outInt))
524+
if (!int.TryParse(dtId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
524525
continue;
525526
var contentType = _contentTypeService.Get(outInt);
526527
if (contentType == null)
@@ -539,7 +540,7 @@ private void PackageMediaTypes(PackageDefinition definition, XContainer root)
539540
var mediaTypesXml = new XElement("MediaTypes");
540541
foreach (var mediaTypeId in definition.MediaTypes)
541542
{
542-
if (!int.TryParse(mediaTypeId, out var outInt))
543+
if (!int.TryParse(mediaTypeId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var outInt))
543544
continue;
544545
var mediaType = _mediaTypeService.Get(outInt);
545546
if (mediaType == null)
@@ -555,7 +556,7 @@ private void PackageMediaTypes(PackageDefinition definition, XContainer root)
555556
private void PackageDocumentsAndTags(PackageDefinition definition, XContainer root)
556557
{
557558
//Documents and tags
558-
if (string.IsNullOrEmpty(definition.ContentNodeId) == false && int.TryParse(definition.ContentNodeId, out var contentNodeId))
559+
if (string.IsNullOrEmpty(definition.ContentNodeId) == false && int.TryParse(definition.ContentNodeId, NumberStyles.Integer, CultureInfo.InvariantCulture, out var contentNodeId))
559560
{
560561
if (contentNodeId > 0)
561562
{

src/Umbraco.Core/PropertyEditors/ValueConverters/LabelValueConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public override object ConvertSourceToIntermediate(IPublishedElement owner, IPub
7171
case ValueTypes.Integer:
7272
if (source is int sourceInt) return sourceInt;
7373
if (source is string sourceIntString)
74-
return int.TryParse(sourceIntString, out var i) ? i : 0;
74+
return int.TryParse(sourceIntString, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i) ? i : 0;
7575
return 0;
7676
case ValueTypes.Bigint:
7777
if (source is string sourceLongString)

0 commit comments

Comments
 (0)