Add nullability to Web.Website, Sqlite & SqlServer

This commit is contained in:
Nikolaj Geisle
2022-04-04 14:47:54 +02:00
parent 4710951185
commit 7994f5c326
50 changed files with 245 additions and 215 deletions

View File

@@ -20,7 +20,7 @@ namespace Umbraco.Cms.Web.Website.Models
public IMemberTypeService MemberTypeService { get; }
protected List<MemberPropertyModel> GetMemberPropertiesViewModel(IMemberType memberType, IMember member = null)
protected List<MemberPropertyModel> GetMemberPropertiesViewModel(IMemberType memberType, IMember? member = null)
{
var viewProperties = new List<MemberPropertyModel>();
@@ -35,10 +35,10 @@ namespace Umbraco.Cms.Web.Website.Models
var value = string.Empty;
if (member != null)
{
IProperty propValue = member.Properties[prop.Alias];
IProperty? propValue = member.Properties[prop.Alias];
if (propValue != null && propValue.GetValue() != null)
{
value = propValue.GetValue().ToString();
value = propValue.GetValue()?.ToString();
}
}

View File

@@ -2,6 +2,6 @@
{
public class NoNodesViewModel
{
public string UmbracoPath { get; set; }
public string? UmbracoPath { get; set; }
}
}

View File

@@ -19,18 +19,18 @@ namespace Umbraco.Cms.Web.Website.Models
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
public string Email { get; set; } = null!;
/// <summary>
/// The member's real name
/// </summary>
public string Name { get; set; }
public string? Name { get; set; }
[ReadOnly(true)]
public string UserName { get; set; }
public string UserName { get; set; } = null!;
[ReadOnly(true)]
public string Comments { get; set; }
public string? Comments { get; set; }
[ReadOnly(true)]
public bool IsApproved { get; set; }

View File

@@ -14,7 +14,7 @@ namespace Umbraco.Cms.Web.Website.Models
{
private readonly IMemberService _memberService;
private readonly IHttpContextAccessor _httpContextAccessor;
private string _redirectUrl;
private string? _redirectUrl;
private bool _lookupProperties;
public ProfileModelBuilder(
@@ -40,16 +40,16 @@ namespace Umbraco.Cms.Web.Website.Models
return this;
}
public async Task<ProfileModel> BuildForCurrentMemberAsync()
public async Task<ProfileModel?> BuildForCurrentMemberAsync()
{
IMemberManager memberManager = _httpContextAccessor.HttpContext?.RequestServices.GetRequiredService<IMemberManager>();
IMemberManager? memberManager = _httpContextAccessor.HttpContext?.RequestServices.GetRequiredService<IMemberManager>();
if (memberManager == null)
{
return null;
}
MemberIdentityUser member = await memberManager.GetUserAsync(_httpContextAccessor.HttpContext.User);
MemberIdentityUser? member = _httpContextAccessor.HttpContext is null ? null : await memberManager.GetUserAsync(_httpContextAccessor.HttpContext.User);
if (member == null)
{
@@ -72,14 +72,14 @@ namespace Umbraco.Cms.Web.Website.Models
Key = member.Key
};
IMemberType memberType = MemberTypeService.Get(member.MemberTypeAlias);
IMemberType? memberType = member.MemberTypeAlias is null ? null : MemberTypeService.Get(member.MemberTypeAlias);
if (memberType == null)
{
throw new InvalidOperationException($"Could not find a member type with alias: {member.MemberTypeAlias}.");
}
// TODO: This wouldn't be required if we support exposing custom member properties on the MemberIdentityUser at the ASP.NET Identity level.
IMember persistedMember = _memberService.GetByKey(member.Key);
IMember? persistedMember = _memberService.GetByKey(member.Key);
if (persistedMember == null)
{
// should never happen

View File

@@ -19,7 +19,7 @@ namespace Umbraco.Cms.Web.Website.Models
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
public string Email { get; set; } = null!;
/// <summary>
/// Returns the member properties
@@ -35,7 +35,7 @@ namespace Umbraco.Cms.Web.Website.Models
/// <summary>
/// The members real name
/// </summary>
public string Name { get; set; }
public string Name { get; set; } = null!;
/// <summary>
/// The members password
@@ -44,17 +44,17 @@ namespace Umbraco.Cms.Web.Website.Models
[StringLength(256)]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
public string Password { get; set; } = null!;
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public string ConfirmPassword { get; set; } = null!;
/// <summary>
/// The username of the model, if UsernameIsEmail is true then this is ignored.
/// </summary>
public string Username { get; set; }
public string Username { get; set; } = null!;
/// <summary>
/// Flag to determine if the username should be the email address, if true then the Username property is ignored

View File

@@ -12,10 +12,10 @@ namespace Umbraco.Cms.Web.Website.Models
/// </summary>
public class RegisterModelBuilder : MemberModelBuilderBase
{
private string _memberTypeAlias;
private string? _memberTypeAlias;
private bool _lookupProperties;
private bool _usernameIsEmail;
private string _redirectUrl;
private string? _redirectUrl;
public RegisterModelBuilder(IMemberTypeService memberTypeService, IShortStringHelper shortStringHelper)
: base(memberTypeService, shortStringHelper)
@@ -49,7 +49,7 @@ namespace Umbraco.Cms.Web.Website.Models
public RegisterModel Build()
{
var providedOrDefaultMemberTypeAlias = _memberTypeAlias ?? Core.Constants.Conventions.MemberTypes.DefaultAlias;
IMemberType memberType = MemberTypeService.Get(providedOrDefaultMemberTypeAlias);
IMemberType? memberType = MemberTypeService.Get(providedOrDefaultMemberTypeAlias);
if (memberType == null)
{
throw new InvalidOperationException($"Could not find a member type with alias: {providedOrDefaultMemberTypeAlias}.");