86 lines
3.4 KiB
C#
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);
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|