Modifications
This commit is contained in:
@ -169,8 +169,8 @@
|
|||||||
createdon = ModuleState.CreatedOn;
|
createdon = ModuleState.CreatedOn;
|
||||||
modifiedby = ModuleState.ModifiedBy;
|
modifiedby = ModuleState.ModifiedBy;
|
||||||
modifiedon = ModuleState.ModifiedOn;
|
modifiedon = ModuleState.ModifiedOn;
|
||||||
_effectivedate = ModuleState.EffectiveDate;
|
_effectivedate = Utilities.UtcAsLocalDate(ModuleState.EffectiveDate);
|
||||||
_expirydate = ModuleState.ExpiryDate;
|
_expirydate = Utilities.UtcAsLocalDate(ModuleState.ExpiryDate);
|
||||||
|
|
||||||
if (ModuleState.ModuleDefinition != null)
|
if (ModuleState.ModuleDefinition != null)
|
||||||
{
|
{
|
||||||
@ -232,7 +232,7 @@
|
|||||||
|
|
||||||
if (!string.IsNullOrEmpty(_title))
|
if (!string.IsNullOrEmpty(_title))
|
||||||
{
|
{
|
||||||
if (!ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
if (!Utilities.ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
||||||
{
|
{
|
||||||
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
||||||
return;
|
return;
|
||||||
@ -241,8 +241,8 @@
|
|||||||
pagemodule.PageId = int.Parse(_pageId);
|
pagemodule.PageId = int.Parse(_pageId);
|
||||||
pagemodule.Title = _title;
|
pagemodule.Title = _title;
|
||||||
pagemodule.Pane = _pane;
|
pagemodule.Pane = _pane;
|
||||||
pagemodule.EffectiveDate = _effectivedate;
|
pagemodule.EffectiveDate = Utilities.LocalDateAndTimeAsUtc(_effectivedate);
|
||||||
pagemodule.ExpiryDate = _expirydate;
|
pagemodule.ExpiryDate = Utilities.LocalDateAndTimeAsUtc(_expirydate);
|
||||||
pagemodule.ContainerType = (_containerType != "-") ? _containerType : string.Empty;
|
pagemodule.ContainerType = (_containerType != "-") ? _containerType : string.Empty;
|
||||||
if (!string.IsNullOrEmpty(pagemodule.ContainerType) && pagemodule.ContainerType == PageState.Page.DefaultContainerType)
|
if (!string.IsNullOrEmpty(pagemodule.ContainerType) && pagemodule.ContainerType == PageState.Page.DefaultContainerType)
|
||||||
{
|
{
|
||||||
@ -292,33 +292,4 @@
|
|||||||
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private bool ValidateEffectiveExpiryDates(DateTime? effectiveDate, DateTime? expiryDate)
|
|
||||||
{
|
|
||||||
// Check if both dates are null, in which case the validation passes
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is not null and ExpiryDate is null
|
|
||||||
if (effectiveDate != DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is null and ExpiryDate is not null
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate != DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if ExpiryDate is not null and EffectiveDate is after ExpiryDate
|
|
||||||
if (expiryDate != DateTime.MinValue && effectiveDate != DateTime.MinValue && effectiveDate > expiryDate)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If none of the above conditions are met, validation passes
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -279,8 +279,8 @@
|
|||||||
_children.Add(p);
|
_children.Add(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_effectivedate = PageState.Page.EffectiveDate;
|
_effectivedate = Utilities.UtcAsLocalDate(PageState.Page.EffectiveDate);
|
||||||
_expirydate = PageState.Page.ExpiryDate;
|
_expirydate = Utilities.UtcAsLocalDate(PageState.Page.ExpiryDate);
|
||||||
ThemeSettings();
|
ThemeSettings();
|
||||||
_initialized = true;
|
_initialized = true;
|
||||||
}
|
}
|
||||||
@ -363,7 +363,7 @@
|
|||||||
Page page = null;
|
Page page = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
if (!Utilities.ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
||||||
{
|
{
|
||||||
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
||||||
return;
|
return;
|
||||||
@ -442,8 +442,8 @@
|
|||||||
page.IsClickable = (_isclickable == null ? true : Boolean.Parse(_isclickable));
|
page.IsClickable = (_isclickable == null ? true : Boolean.Parse(_isclickable));
|
||||||
page.Url = _url;
|
page.Url = _url;
|
||||||
page.IsPersonalizable = (_ispersonalizable == null ? false : Boolean.Parse(_ispersonalizable));
|
page.IsPersonalizable = (_ispersonalizable == null ? false : Boolean.Parse(_ispersonalizable));
|
||||||
page.EffectiveDate = _effectivedate;
|
page.EffectiveDate = Utilities.LocalDateAndTimeAsUtc(_effectivedate);
|
||||||
page.ExpiryDate = _expirydate;
|
page.ExpiryDate = Utilities.LocalDateAndTimeAsUtc(_expirydate);
|
||||||
page.UserId = null;
|
page.UserId = null;
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
@ -513,33 +513,4 @@
|
|||||||
{
|
{
|
||||||
_icon = NewIcon;
|
_icon = NewIcon;
|
||||||
}
|
}
|
||||||
private bool ValidateEffectiveExpiryDates(DateTime? effectiveDate, DateTime? expiryDate)
|
|
||||||
{
|
|
||||||
// Check if both dates are null, in which case the validation passes
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is not null and ExpiryDate is null
|
|
||||||
if (effectiveDate != DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is null and ExpiryDate is not null
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate != DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if ExpiryDate is not null and EffectiveDate is after ExpiryDate
|
|
||||||
if (expiryDate != DateTime.MinValue && effectiveDate != DateTime.MinValue && effectiveDate > expiryDate)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If none of the above conditions are met, validation passes
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -384,8 +384,8 @@
|
|||||||
}
|
}
|
||||||
_url = _page.Url;
|
_url = _page.Url;
|
||||||
_icon = _page.Icon;
|
_icon = _page.Icon;
|
||||||
_effectivedate = _page.EffectiveDate;
|
_effectivedate = Utilities.UtcAsLocalDate(_page.EffectiveDate);
|
||||||
_expirydate = _page.ExpiryDate;
|
_expirydate = Utilities.UtcAsLocalDate(_page.ExpiryDate);
|
||||||
_ispersonalizable = _page.IsPersonalizable.ToString();
|
_ispersonalizable = _page.IsPersonalizable.ToString();
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
@ -503,7 +503,7 @@
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
if (!Utilities.ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
||||||
{
|
{
|
||||||
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
||||||
return;
|
return;
|
||||||
@ -584,8 +584,8 @@
|
|||||||
_page.IsClickable = (_isclickable == null ? true : Boolean.Parse(_isclickable));
|
_page.IsClickable = (_isclickable == null ? true : Boolean.Parse(_isclickable));
|
||||||
_page.Url = _url;
|
_page.Url = _url;
|
||||||
_page.Icon = _icon ?? string.Empty;
|
_page.Icon = _icon ?? string.Empty;
|
||||||
_page.EffectiveDate = _effectivedate;
|
_page.EffectiveDate = Utilities.LocalDateAndTimeAsUtc(_effectivedate);
|
||||||
_page.ExpiryDate = _expirydate;
|
_page.ExpiryDate = Utilities.LocalDateAndTimeAsUtc(_expirydate);
|
||||||
_page.IsPersonalizable = (_ispersonalizable != null && Boolean.Parse(_ispersonalizable));
|
_page.IsPersonalizable = (_ispersonalizable != null && Boolean.Parse(_ispersonalizable));
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
@ -689,33 +689,4 @@
|
|||||||
{
|
{
|
||||||
_icon = NewIcon;
|
_icon = NewIcon;
|
||||||
}
|
}
|
||||||
private bool ValidateEffectiveExpiryDates(DateTime? effectiveDate, DateTime? expiryDate)
|
|
||||||
{
|
|
||||||
// Check if both dates are null, in which case the validation passes
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is not null and ExpiryDate is null
|
|
||||||
if (effectiveDate != DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is null and ExpiryDate is not null
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate != DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if ExpiryDate is not null and EffectiveDate is after ExpiryDate
|
|
||||||
if (expiryDate != DateTime.MinValue && effectiveDate != DateTime.MinValue && effectiveDate > expiryDate)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If none of the above conditions are met, validation passes
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -60,8 +60,8 @@ else
|
|||||||
</Header>
|
</Header>
|
||||||
<Row>
|
<Row>
|
||||||
<td>@context.Role.Name</td>
|
<td>@context.Role.Name</td>
|
||||||
<td>@context.EffectiveDate</td>
|
<td>@Utilities.UtcAsLocalDate(context.EffectiveDate)</td>
|
||||||
<td>@context.ExpiryDate</td>
|
<td>@Utilities.UtcAsLocalDate(context.ExpiryDate)</td>
|
||||||
<td>
|
<td>
|
||||||
<ActionDialog Header="Remove Role" Message="@string.Format(Localizer["Confirm.User.RemoveRole"], context.Role.Name)" Action="Delete" Security="SecurityAccessLevel.Edit" Class="btn btn-danger" OnClick="@(async () => await DeleteUserRole(context.UserRoleId))" Disabled="@(context.Role.IsAutoAssigned || (context.Role.Name == RoleNames.Host && userid == PageState.User.UserId))" ResourceKey="DeleteUserRole" />
|
<ActionDialog Header="Remove Role" Message="@string.Format(Localizer["Confirm.User.RemoveRole"], context.Role.Name)" Action="Delete" Security="SecurityAccessLevel.Edit" Class="btn btn-danger" OnClick="@(async () => await DeleteUserRole(context.UserRoleId))" Disabled="@(context.Role.IsAutoAssigned || (context.Role.Name == RoleNames.Host && userid == PageState.User.UserId))" ResourceKey="DeleteUserRole" />
|
||||||
</td>
|
</td>
|
||||||
@ -113,6 +113,7 @@ else
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId, userid);
|
userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId, userid);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@ -127,7 +128,7 @@ else
|
|||||||
{
|
{
|
||||||
if (roleid != -1)
|
if (roleid != -1)
|
||||||
{
|
{
|
||||||
if (!ValidateEffectiveExpiryDates(_effectivedate,_expirydate))
|
if (!Utilities.ValidateEffectiveExpiryDates(_effectivedate, _expirydate))
|
||||||
{
|
{
|
||||||
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
AddModuleMessage(SharedLocalizer["Message.EffectiveExpiryDateError"], MessageType.Warning);
|
||||||
return;
|
return;
|
||||||
@ -144,8 +145,8 @@ else
|
|||||||
userrole = new UserRole();
|
userrole = new UserRole();
|
||||||
userrole.UserId = userid;
|
userrole.UserId = userid;
|
||||||
userrole.RoleId = roleid;
|
userrole.RoleId = roleid;
|
||||||
userrole.EffectiveDate = _effectivedate;
|
userrole.EffectiveDate = Utilities.UtcAsLocalDate(_effectivedate);
|
||||||
userrole.ExpiryDate = _expirydate;
|
userrole.ExpiryDate = Utilities.UtcAsLocalDate(_expirydate);
|
||||||
await UserRoleService.AddUserRoleAsync(userrole);
|
await UserRoleService.AddUserRoleAsync(userrole);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,34 +183,4 @@ else
|
|||||||
AddModuleMessage(Localizer["Error.User.RemoveRole"], MessageType.Error);
|
AddModuleMessage(Localizer["Error.User.RemoveRole"], MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ValidateEffectiveExpiryDates(DateTime? effectiveDate, DateTime? expiryDate)
|
|
||||||
{
|
|
||||||
// Check if both dates are null, in which case the validation passes
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is not null and ExpiryDate is null
|
|
||||||
if (effectiveDate != DateTime.MinValue && expiryDate == DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if EffectiveDate is null and ExpiryDate is not null
|
|
||||||
if (effectiveDate == DateTime.MinValue && expiryDate != DateTime.MinValue)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if ExpiryDate is not null and EffectiveDate is after ExpiryDate
|
|
||||||
if (expiryDate != DateTime.MinValue && effectiveDate != DateTime.MinValue && effectiveDate > expiryDate)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If none of the above conditions are met, validation passes
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -262,7 +262,7 @@
|
|||||||
bool isAdminOrHost = false;
|
bool isAdminOrHost = false;
|
||||||
if(user != null)
|
if(user != null)
|
||||||
{
|
{
|
||||||
isAdminOrHost = user.Roles.Contains(RoleNames.Host) || user.Roles.Contains(RoleNames.Admin);
|
isAdminOrHost = UserSecurity.IsAuthorized(user, RoleNames.Admin) || UserSecurity.IsAuthorized(user, PermissionNames.Edit, page.PermissionList);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page != null && (isAdminOrHost || IsPageModuleVisible(page.EffectiveDate, page.ExpiryDate)))
|
if (page != null && (isAdminOrHost || IsPageModuleVisible(page.EffectiveDate, page.ExpiryDate)))
|
||||||
@ -270,7 +270,7 @@
|
|||||||
// check if user is authorized to view page
|
// check if user is authorized to view page
|
||||||
if (UserSecurity.IsAuthorized(user, PermissionNames.View, page.PermissionList))
|
if (UserSecurity.IsAuthorized(user, PermissionNames.View, page.PermissionList))
|
||||||
{
|
{
|
||||||
if (isAdminOrHost || IsPageModuleVisible(page.EffectiveDate, page.ExpiryDate))
|
if (isAdminOrHost || Utilities.ValidateEffectiveExpiryDates(page.EffectiveDate, page.ExpiryDate))
|
||||||
{
|
{
|
||||||
// load additional metadata for current page
|
// load additional metadata for current page
|
||||||
page = ProcessPage(page, site, user, SiteState.Alias);
|
page = ProcessPage(page, site, user, SiteState.Alias);
|
||||||
|
@ -94,21 +94,16 @@ namespace Oqtane.Controllers
|
|||||||
site.UploadableFiles = site.Settings.ContainsKey("UploadableFiles") && !string.IsNullOrEmpty(site.Settings["UploadableFiles"])
|
site.UploadableFiles = site.Settings.ContainsKey("UploadableFiles") && !string.IsNullOrEmpty(site.Settings["UploadableFiles"])
|
||||||
? site.Settings["UploadableFiles"] : Constants.UploadableFiles;
|
? site.Settings["UploadableFiles"] : Constants.UploadableFiles;
|
||||||
|
|
||||||
var modelsUser = _userPermissions.GetUser(User);
|
|
||||||
var isAdminOrHost = modelsUser.Roles.Contains(RoleNames.Host) || modelsUser.Roles.Contains(RoleNames.Admin);
|
|
||||||
|
|
||||||
// pages
|
// pages
|
||||||
List<Setting> settings = _settings.GetSettings(EntityNames.Page).ToList();
|
List<Setting> settings = _settings.GetSettings(EntityNames.Page).ToList();
|
||||||
site.Pages = new List<Page>();
|
site.Pages = new List<Page>();
|
||||||
foreach (Page page in _pages.GetPages(site.SiteId).Where(p => !p.IsDeleted && _userPermissions.IsAuthorized(User, PermissionNames.View, p.PermissionList)))
|
foreach (Page page in _pages.GetPages(site.SiteId))
|
||||||
{
|
{
|
||||||
if (isAdminOrHost || IsPageModuleVisible(page.EffectiveDate, page.ExpiryDate))
|
if (!page.IsDeleted && _userPermissions.IsAuthorized(User, PermissionNames.View, page.PermissionList))
|
||||||
{
|
{
|
||||||
page.Settings = settings
|
page.Settings = settings.Where(item => item.EntityId == page.PageId)
|
||||||
.Where(item => item.EntityId == page.PageId)
|
|
||||||
.Where(item => !item.IsPrivate || _userPermissions.IsAuthorized(User, PermissionNames.Edit, page.PermissionList))
|
.Where(item => !item.IsPrivate || _userPermissions.IsAuthorized(User, PermissionNames.Edit, page.PermissionList))
|
||||||
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
||||||
|
|
||||||
site.Pages.Add(page);
|
site.Pages.Add(page);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,7 +116,7 @@ namespace Oqtane.Controllers
|
|||||||
site.Modules = new List<Module>();
|
site.Modules = new List<Module>();
|
||||||
foreach (PageModule pagemodule in _pageModules.GetPageModules(site.SiteId).Where(pm => !pm.IsDeleted && _userPermissions.IsAuthorized(User, PermissionNames.View, pm.Module.PermissionList)))
|
foreach (PageModule pagemodule in _pageModules.GetPageModules(site.SiteId).Where(pm => !pm.IsDeleted && _userPermissions.IsAuthorized(User, PermissionNames.View, pm.Module.PermissionList)))
|
||||||
{
|
{
|
||||||
if (isAdminOrHost || IsPageModuleVisible(pagemodule.EffectiveDate, pagemodule.ExpiryDate))
|
if (!pagemodule.IsDeleted && _userPermissions.IsAuthorized(User, PermissionNames.View, pagemodule.Module.PermissionList))
|
||||||
{
|
{
|
||||||
Module module = new Module
|
Module module = new Module
|
||||||
{
|
{
|
||||||
@ -291,30 +286,5 @@ namespace Oqtane.Controllers
|
|||||||
}
|
}
|
||||||
return hierarchy;
|
return hierarchy;
|
||||||
}
|
}
|
||||||
private bool IsPageModuleVisible(DateTime? effectiveDate, DateTime? expiryDate)
|
|
||||||
{
|
|
||||||
DateTime currentUtcTime = DateTime.UtcNow;
|
|
||||||
|
|
||||||
// Check if either effectiveDate or expiryDate is provided
|
|
||||||
if (effectiveDate.HasValue && expiryDate.HasValue)
|
|
||||||
{
|
|
||||||
return currentUtcTime >= effectiveDate.Value && currentUtcTime <= expiryDate.Value;
|
|
||||||
}
|
|
||||||
// Check if only effectiveDate is provided
|
|
||||||
else if (effectiveDate.HasValue)
|
|
||||||
{
|
|
||||||
return currentUtcTime >= effectiveDate.Value;
|
|
||||||
}
|
|
||||||
// Check if only expiryDate is provided
|
|
||||||
else if (expiryDate.HasValue)
|
|
||||||
{
|
|
||||||
return currentUtcTime <= expiryDate.Value;
|
|
||||||
}
|
|
||||||
// If neither effectiveDate nor expiryDate is provided, consider the page/module visible
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -572,7 +572,35 @@ namespace Oqtane.Shared
|
|||||||
|
|
||||||
return (localDateTime?.Date, localTime);
|
return (localDateTime?.Date, localTime);
|
||||||
}
|
}
|
||||||
|
public static bool ValidateEffectiveExpiryDates(DateTime? effectiveDate, DateTime? expiryDate)
|
||||||
|
{
|
||||||
|
// Check if both dates are null, in which case the validation passes
|
||||||
|
if (effectiveDate == DateTime.MinValue && expiryDate == DateTime.MinValue)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if EffectiveDate is not null and ExpiryDate is null
|
||||||
|
if (effectiveDate != DateTime.MinValue && expiryDate == DateTime.MinValue)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if EffectiveDate is null and ExpiryDate is not null
|
||||||
|
if (effectiveDate == DateTime.MinValue && expiryDate != DateTime.MinValue)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if ExpiryDate is not null and EffectiveDate is after ExpiryDate
|
||||||
|
if (expiryDate != DateTime.MinValue && effectiveDate != DateTime.MinValue && effectiveDate > expiryDate)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If none of the above conditions are met, validation passes
|
||||||
|
return true;
|
||||||
|
}
|
||||||
[Obsolete("ContentUrl(Alias alias, int fileId) is deprecated. Use FileUrl(Alias alias, int fileId) instead.", false)]
|
[Obsolete("ContentUrl(Alias alias, int fileId) is deprecated. Use FileUrl(Alias alias, int fileId) instead.", false)]
|
||||||
public static string ContentUrl(Alias alias, int fileId)
|
public static string ContentUrl(Alias alias, int fileId)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user