using System.ComponentModel.DataAnnotations; namespace LCU.API.Internal.Operations.IncentiveApi.Models.Dayforce; public class EmployeeDetailsUpdate { public string OldEmail { get; set; } public string OldEmployeeId { get; set; } public string OldFullName { get; set; } public string NewEmail { get; set; } public string NewEmployeeId { get; set; } public string NewFullName { get; set; } public bool NewDetailsMatchOld() { return OldEmail.Equals(NewEmail, StringComparison.InvariantCultureIgnoreCase) && OldEmployeeId.Equals(NewEmployeeId, StringComparison.InvariantCultureIgnoreCase) && OldFullName.Equals(NewFullName, StringComparison.InvariantCultureIgnoreCase); } public string InvalidUpdateData() { if (NewDetailsMatchOld()) { return $"Invalid Update Data: Old Details Match Updated Details"; } if (string.IsNullOrWhiteSpace(NewEmail)) { return $"Invalid Update Data: NewEmail: {NewEmail}"; } if (!new EmailAddressAttribute().IsValid(NewEmail)) { return $"Invalid Update Data: NewEmail Is Not A Valid Email: {NewEmail}"; } if (!NewEmail.Contains("@landmarkcu.com", StringComparison.InvariantCultureIgnoreCase)) { return $"Invalid Update Data: NewEmail Is Not A Valid Internal Email: {NewEmail}"; } if (string.IsNullOrWhiteSpace(NewEmployeeId)) { return $"Invalid Update Data: NewEmployeeId: {NewEmployeeId}"; } if (string.IsNullOrWhiteSpace(NewFullName)) { return $"Invalid Update Data: NewFullName: {NewFullName}"; } return ""; } }