using Disco.Data.Repository;
using Disco.Models.Services.Jobs;
using System;
using System.Collections.Generic;
namespace Disco.Data.Configuration.Modules
{
public class JobPreferencesConfiguration : ConfigurationBase
{
public JobPreferencesConfiguration(DiscoDataContext Database) : base(Database) { }
public override string Scope { get; } = "JobPreferences";
///
/// Initial comments template for new jobs
///
public string InitialCommentsTemplate
{
get => Get(null);
set => Set(value);
}
///
/// Number of days a job is open before it is considered 'Long Running'
///
public int LongRunningJobDaysThreshold
{
get => Get(7);
set
{
if (value < 0)
throw new ArgumentOutOfRangeException(nameof(value), "The Long Running Job Days Threshold cannot be less than zero");
Set(value);
}
}
///
/// Number of minutes since the last recorded action is performed on a job before it is considered 'Stale'
///
public int StaleJobMinutesThreshold
{
get => Get(60 * 24 * 2); // Default to 48 Hours (2 days)
set
{
if (value < 0)
throw new ArgumentOutOfRangeException(nameof(value), "The Stale Job Minutes Threshold cannot be less than zero");
Set(value);
}
}
public bool LodgmentIncludeAllAttachmentsByDefault
{
get => Get(false);
set => Set(value);
}
///
/// Theme used in noticeboards by default.
///
///
public string DefaultNoticeboardTheme
{
get => Get("default");
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentNullException(nameof(DefaultNoticeboardTheme));
Set(value);
}
}
public LocationModes LocationMode
{
get => Get(LocationModes.Unrestricted);
set => Set(value);
}
public List LocationList
{
get => Get(new List());
set => Set(value);
}
public string OnCreateExpression
{
get => Get(null);
set => Set(value);
}
public string OnDeviceReadyForReturnExpression
{
get => Get(null);
set => Set(value);
}
public string OnCloseExpression
{
get => Get(null);
set => Set(value);
}
public JobExportOptions LastExportOptions
{
get => Get(JobExportOptions.DefaultOptions());
set
{
Set(value);
LastExportDate = DateTime.Now;
}
}
public DateTime? LastExportDate
{
get => Get(null);
set => Set(value);
}
}
}