For some reason, I'm getting build errors when trying to use an expression body for the constructor if a viewmodel.
This works:
public class SolutionMaintenanceViewModel
{
public SolutionMaintenanceViewModel(IActiveUserService currUserSrv)
{
_currUserSrv = currUserSrv;
}
...
}
Whereas this:
public class SolutionMaintenanceViewModel
{
public SolutionMaintenanceViewModel(IActiveUserService currUserSrv) => _currUserSrv = currUserSrv;
...
}
Gives the following:
1>C:\MyPath\Models\SolutionMaintenanceViewModel.cs(16,77,16,79): error CS1002: ; expected
1>C:\MyPath\Models\SolutionMaintenanceViewModel.cs(16,77,16,79): error CS1519: Invalid token '=>' in class, struct, or interface member declaration
1>C:\MyPath\Models\SolutionMaintenanceViewModel.cs(16,93,16,94): error CS1519: Invalid token '=' in class, struct, or interface member declaration
1>C:\MyPath\Models\SolutionMaintenanceViewModel.cs(16,106,16,107): error CS1519: Invalid token ';' in class, struct, or interface member declaration ========== Build: 0 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========
Worth noting, no errors show up under the Error List window in Visual Studio. Only under the Output window.
Why is this happening?
Using .NET Framework 4.7.2
Edit: on request, here's the entirety of the viewmodel:
public class SolutionMaintenanceViewModel
{
private IActiveUserService CurrUserSrv;
public SolutionMaintenanceViewModel(IActiveUserService currUserSrv) => CurrUserSrv = currUserSrv;
public List<ConcernArea> AllConcernAreas { get; set; }
public IEnumerable<DealerFeedback> AllDealerFeedback { get; set; }
public List<PortalProductSubGroup> AllPPSGs { get; set; }
public string AttachmentGUID { get; set; }
public string AttachmentGUIDs { get; set; }
public List<SolutionAttachment> Attachments { get; set; }
public bool CanSaveSubmit =>
(Status == SolutionStatus.NewDraft || Status == SolutionStatus.MaintenanceDraft)
&& IsDealerOrHasMaintenancePermission;
private bool IsDealerOrHasMaintenancePermission =>
CurrUserSrv.GetActiveUser() is IDealer || CurrUserSrv.GetActiveUser() is InternalUser &&
((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.MAINTAINSOLUTIONS
.ToString()) == PermissionsValue.WRITE;
public bool CanApprove =>
Status == SolutionStatus.Pending && CurrUserSrv.GetActiveUser() is InternalUser &&
((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.APPROVESOLUTIONS
.ToString()) == PermissionsValue.WRITE;
public bool CanDelete =>
DealerDraftOrAuthorizedOrLastMaintained
&& HasBeenSaved()
&& (NewDraftCanBeDeleted || !HasEverBeenApproved);
private bool DealerDraftOrAuthorizedOrLastMaintained =>
!string.IsNullOrEmpty(OriginallyCreatedByDealerUsername) || CurrUserSrv.GetActiveUser() is InternalUser &&
(((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.DELETESOLUTIONS
.ToString()) == PermissionsValue.WRITE || CurrUserSrv.GetActiveUser().Username == UserModified);
private bool NewDraftCanBeDeleted =>
Status == SolutionStatus.NewDraft
&& (
string.IsNullOrEmpty(OriginallyCreatedByDealerUsername)
|| CurrUserSrv.GetActiveUser() is IDealer
&& CurrUserSrv.GetActiveUser().Username == OriginallyCreatedByDealerUsername
);
private bool HasBeenSaved() => VersionID != 0;
public bool CanDisapprove =>
(Status == SolutionStatus.Pending || Status == SolutionStatus.Approved)
&& CurrUserSrv.GetActiveUser() is InternalUser
&& ((InternalUser)CurrUserSrv.GetActiveUser()).GetPermission(PermissionsProgramAreas.APPROVESOLUTIONS
.ToString()) == PermissionsValue.WRITE;
public bool CanSeeAttachments =>
CurrUserSrv.GetActiveUser() is InternalUser || Status == SolutionStatus.Approved;
public bool CanAddAttachments =>
CurrUserSrv.GetActiveUser() is InternalUser
&& (Status == SolutionStatus.MaintenanceDraft || Status == SolutionStatus.NewDraft);
[MaxLength(2000)]
public string Cause { get; set; }
[Required]
[MaxLength(2000)]
public string Complaint { get; set; }
[Required]
public int CompanyNumber { get; set; }
[Required]
public int ConcernAreaID { get; set; }
[Required]
[MaxLength(2000)]
public string Correction { get; set; }
[MaxLength(2000)]
public string DealerCreatedNotes { get; set; }
public DealerFeedback DealerFeedback { get; set; }
[MaxLength(2000)]
public string DealerNotes { get; set; }
public bool HasEverBeenApproved { get; set; }
public int HeaderID { get; set; }
[MaxLength(2000)]
public string InternalNotes { get; set; }
public IEnumerable<string> ItemNums { get; set; }
public bool IsSubmit { get; set; }
public string Key { get; set; }
public string OriginallyCreatedByDealerUsername { get; set; }
public int? PortalProductSubGroupID { get; set; }
public IEnumerable<string> SolutionSerialsDistinctSerialNums { get; set; }
public int? SolutionSerialsSerialRangeFrom { get; set; }
public int? SolutionSerialsSerialRangeTo { get; set; }
public SolutionStatus Status { get; set; }
[Required]
[MaxLength(100)]
public string Title { get; set; }
public string UserModified { get; set; }
public int VersionID { get; set; }
}