Files
2025-02-12 18:36:30 +11:00

53 lines
2.5 KiB
C#

using Disco.Models.Services.Exporting;
using Disco.Services.Interop.ActiveDirectory;
using Disco.Web.Areas.API.Models.Shared;
using System;
using System.Linq;
namespace Disco.Web.Areas.Config.Models.Export
{
public class ShowModel : EditModel
{
public bool WasSaved { get; set; }
public bool WasExported { get; set; }
public static EditModel FromSavedExport(SavedExport savedExport, string exportTypeName, bool wasSaved, bool wasExported)
{
var model = new ShowModel
{
Id = savedExport.Id,
ExportTypeName = exportTypeName,
Name = savedExport.Name,
Description = savedExport.Description,
IsEnabled = savedExport.Enabled,
FilePath = savedExport.FilePath,
TimestampSuffix = savedExport.TimestampSuffix,
ScheduleEnabled = savedExport.Schedule != null,
ScheduleSunday = savedExport.Schedule?.IncludesDay(DayOfWeek.Sunday) ?? false,
ScheduleMonday = savedExport.Schedule?.IncludesDay(DayOfWeek.Monday) ?? true,
ScheduleTuesday = savedExport.Schedule?.IncludesDay(DayOfWeek.Tuesday) ?? true,
ScheduleWednesday = savedExport.Schedule?.IncludesDay(DayOfWeek.Wednesday) ?? true,
ScheduleThursday = savedExport.Schedule?.IncludesDay(DayOfWeek.Thursday) ?? true,
ScheduleFriday = savedExport.Schedule?.IncludesDay(DayOfWeek.Friday) ?? true,
ScheduleSaturday = savedExport.Schedule?.IncludesDay(DayOfWeek.Saturday) ?? false,
ScheduleStartHour = savedExport.Schedule?.StartHour ?? 0,
ScheduleEndHour = savedExport.Schedule?.EndHour,
WasSaved = wasSaved,
WasExported = wasExported,
};
if (savedExport.OnDemandPrincipals != null)
{
model.OnDemandPrincipals = savedExport.OnDemandPrincipals;
model.OnDemandSubjects = savedExport.OnDemandPrincipals
.Where(p => !string.IsNullOrWhiteSpace(p))
.Distinct(StringComparer.OrdinalIgnoreCase)
.Select(p => ActiveDirectory.RetrieveADObject(p, true))
.Where(ad => ad is ADUserAccount || ad is ADGroup)
.Select(ad => SubjectDescriptorModel.FromActiveDirectoryObject(ad))
.ToList();
}
return model;
}
}
}