Files
Common-VS2019/SacsStandardBase/Base/ItemDocs/SaItemDocConsole.cs
T
2021-05-05 15:36:28 +01:00

86 lines
3.4 KiB
C#

using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.Net.Standard.Base.ItemDocs
{
//=======================================================================
public abstract class SaItemDocConsole : SaErrorStateItem
{
//-------------------------------------------------------------------
// Definitions.
/// <summary>Item document category.</summary>
public enum Category
{
// Do not change values - tied to database.
Unknown = 0,
Folder = 10,
Document = 20,
Pdf = 21,
Image = 30,
FileSpec = 90, /* Generic filename with wildcards */
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Static initialisation.
static SaItemDocConsole ()
{
}
//-------------------------------------------------------------------
// Construction.
protected SaItemDocConsole ()
{
}
//-------------------------------------------------------------------
// Properties.
// Database.
public abstract bool DatabaseIsValid { get; }
public abstract bool CanUpdateDatabase { get; }
//-------------------------------------------------------------------
// I t e m D o c s
//-------------------------------------------------------------------
// Category codes.
public abstract List<TypeCodeDesc> GetCategoryCodes ();
/// <summary>eg. for 'Image' documents.</summary>
public abstract List<CodeDesc> GetCategoryTypeCodes (Category category);
//-------------------------------------------------------------------
// 'Recent' and 'Favourite' folders - to populate drop-down list when selecting folder:
/// <summary>How many recent foldes to retain? [default:5]</summary>
public abstract int GetMaxRecentFolderCount ();
/// <summary>List of favourites to always include in dropdown.</summary>
public abstract void SetFavouriteFolders (List<String> folders);
/// <summary>Mix of recent and favourites.</summary>
public abstract List<String> GetSuggestedFolders ();
//-------------------------------------------------------------------
// Retrieve list of docs that match the specified params:
public abstract bool ItemDocsExist (SaItemDoc.Params prmItemDoc);
public abstract List<SaItemDoc> GetItemDocs (SaItemDoc.Params prmItemDoc);
// Create a new document:
public abstract SaItemDoc CreateItemDoc (ItemId itemId, Category category);
// Store documents:
public abstract bool StoreItemDoc (SaItemDoc itemDoc, DbUpdateInfo dbUpdateInfo);
public abstract bool StoreItemDocs (List<SaItemDoc> itemDocs, DbUpdateInfo dbUpdateInfo);
public abstract bool RemoveItemDoc (SaItemDoc itemDoc, DbUpdateInfo dbUpdateInfo);
public abstract bool ClearItemDocs (ItemId itemId, Category category, DbUpdateInfo dbUpdateInfo);
// Auto-assign documents.
// The master items define 'auto-assign' docs for the item's type.
// The 'File part' defines the filename excluding the extension.
// If the extension list is empty, any extension is matched.
public abstract bool AutoAssignDocs (ItemId itemId, List<ItemId> masterItemIds, String filePart, List<String> extension, DbUpdateInfo dbUpdateInfo);
//-------------------------------------------------------------------
}
//=======================================================================
}