ITask, Netigma içinde direkt yada zamanlanmış olarak çalıştırabileceğiniz, tanımlı bir işi gerçekleştiren görevler tanımlanmasını sağlayan arayüzdür. ITask, Netigma 4.0.0 sürümü ile birlikte gelmiştir.
Netigma Görevi nedir için bakınız Netigma Görevleri
Yazdığınız, Netigma Görevi tipini kullanmak için, Görev Yönetim sayfasından yazdığınız tipte bir görev tanımlanması gerekmektedir.
Gerçekleştirilen Task'ı Netigma içerisinde kullanabilmek için oluşturulan projede
Dikkat Edilmesi Gereken İşlemler
ITask gerçekleştirimi sırasında , "TypeManager(Factory) kullanan sınıflarda dikkat edilmesi gereken kurallar" dokümanı dikkate alınmalıdır.
Özel Dosya Önbelleği Temizleme Görevi
using Netcad.Netigma; using Netcad.Netigma.Interfaces; using Netcad.Netigma.MultiLang; using System; using System.ComponentModel; using System.IO; namespace SampleTask { public class CustomFileCacheCleanerTask : ITask { public CustomFileCacheCleanerTask() { } public CustomFileCacheCleanerTask(string name) : this() { this.Name = name; } [ml_Category(48, "Temel")] [ml_DisplayName(49, "Türü")] [Browsable(false)] public string TypeName { get { return "CustomFileCacheCleanerTask"; } } [ml_Category(48, "Temel")] public string TypeDisplayName { get { return "Sample Özel Dosya Önbelleği Temizleme Görevi"; } } [ml_Category(48, "Temel")] [ml_DisplayName(7, "Adı")] public string Name { get; private set; } [ml_Category(48, "Temel")] [ml_DisplayName(8, "Gösterim Adı")] public string DisplayName { get { if (string.IsNullOrEmpty(_DisplayName)) return Name; return _DisplayName; } set { _DisplayName = value; } } private string _DisplayName; [ml_Category(48, "Temel")] [ml_DisplayName(51, "Açıklama")] public string Description { get; set; } [Category("Görev Detay")] [DisplayName("Saat Olarak Önbellek Süresi")] [NetigmaSerializationType(WPropertyName = "Path", Referral = true, CreateMethod = CreateMethod.ReferPropertyByPath)] public int CacheTimeSpanInHours { get; set; } public IModuleInfo ModulInfo { get;set; } const string customFileCacheFolderName = "MyCacheFolder"; public void Run(INetigmaDomain domain) { string customFileCacheFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, customFileCacheFolderName); if (!Directory.Exists(customFileCacheFolderPath)) return; DirectoryInfo diCahce = new DirectoryInfo(customFileCacheFolderPath); FileInfo[] fiCacheFiles = diCahce.GetFiles("*", SearchOption.AllDirectories); foreach (FileInfo fi in fiCacheFiles) { if (fi.Exists && DateTime.Now.Subtract(fi.LastWriteTime).TotalHours > CacheTimeSpanInHours) File.Delete(fi.FullName); } } public ITask CreateNew(string name) { return new CustomFileCacheCleanerTask(name); } public ITask Clone() { return new CustomFileCacheCleanerTask(this.Name); } public override string ToString() { if (!string.IsNullOrWhiteSpace(this.DisplayName)) return this.DisplayName; else if (!string.IsNullOrWhiteSpace(this.Name)) return this.Name; else return "Gösterim Adı Tanımlanmamış"; } } }