Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleDikkat Edilmesi Gereken İşlemler

ITask gerçekleştirimi sırasında , "TypeManager(Factory) kullanan sınıflarda dikkat edilmesi gereken kurallar" dokümanı dikkate alınarak hazırlanmalıdıralınmalıdır.

 

 

Code Block
titleÖzel Dosya Önbelleği Temizleme Görevi
languagec#
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ış";
        }
    }
}

...