zoukankan      html  css  js  c++  java
  • 自定义任务

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using ScheduleWork;
    using NshowAdClient.Services;
    using NshowAdClient.Helper;
    using NewTempo.Ftp;
    using NshowAdClient.AdExceptions;
    using System.Net;
    
    namespace NshowAdClient.AdScheduleWork
    {
        public abstract class FtpScheduleWork : ScheduleWorkBase
        {
            /// <summary>
            /// Ftp上的文件路径
            /// </summary>
            public string FtpFile { get; private set; }
    
            /// <summary>
            /// 操作FTP的实例对象
            /// </summary>
            public MyFtp MyFtp { get; private set; }
    
    
            public FtpScheduleWork(string ftpFile, MyFtp myftp)
            {
                this.FtpFile = ftpFile;
                this.MyFtp = myftp;
            }
    
            protected override object RunWorking()
            {
                FtpMethodHandle();
                return null;
            }
    
            public override void Rollback()
            {
                base.Rollback();
    
                // 完成没有失败的情况下回滚
                if (IsCompleted && !IsFailed)
                {
                    try
                    {
                        FtpMethodRoolback();
                    }
                    catch (Exception ex)
                    {
                        Logger.Instance.Debug(ex.Message);
                    }
                }
            }
    
            protected abstract void FtpMethodHandle();
    
            protected virtual void FtpMethodRoolback() { }
        }
    
        public class FtpUploadScheduleWork : FtpScheduleWork
        {
            /// <summary>
            /// 本地文件路径
            /// </summary>
            public string LocalFile { get; private set; }
    
            public int Percent { get; set; }
    
    
            /// <param name="ftp">Ftp上的文件路径</param>
            /// <param name="local">本地文件路径</param>
            public FtpUploadScheduleWork(string ftpFile, string local, MyFtp myFtp)
                : base(ftpFile, myFtp)
            {
                this.LocalFile = local;
            }
    
            protected override void FtpMethodHandle()
            {
                FtpHelpService.CreateDir(FtpFile, MyFtp);
                //修改上传方式
    
                bool ulRet = MyFtp.Upload(FtpFile, LocalFile);
                if (ulRet == false)
                {
                    throw new FtpUploadException(FtpFile, LocalFile);
                }
            }
    
            protected override void FtpMethodRoolback()
            {
                this.MyFtp.Delete(this.FtpFile);
            }
        }
    
    
        public class FtpDeleteScheduleWork : FtpScheduleWork
        {
            public FtpDeleteScheduleWork(string ftpFile, MyFtp myFtp)
                : base(ftpFile, myFtp)
            {
            }
    
            protected override void FtpMethodHandle()
            {
                MyFtp.Delete(FtpFile);
            }
        }
    
    
        public class FtpDownloadScheduleWork : FtpScheduleWork
        {
            /// <summary>
            /// 本地文件路径
            /// </summary>
            public string LocalFile { get; private set; }
    
            public FtpDownloadScheduleWork(string ftpFile, string localFile, MyFtp myFtp)
                : base(ftpFile, myFtp)
            {
                this.LocalFile = localFile;
            }
    
            protected override void FtpMethodHandle()
            {
                bool dlRet = MyFtp.Download(this.FtpFile, this.LocalFile);
                if (dlRet == false)
                    throw new FtpDownloadException(this.FtpFile, this.LocalFile);
            }
        }
    }
    
  • 相关阅读:
    asp搜索两个以上的词的原理
    ASP连接MYSQL数据库
    一个用ASP生成html的新方法
    文本框随文本的长度而增长
    ASP实现https和http之间转化
    ASP根据IP来判断跳转页面
    Access数据库在线压缩的实现方法
    aspjpeg 半透明描边的实现函数
    Session对象的集合
    react tsx
  • 原文地址:https://www.cnblogs.com/wywnet/p/4755234.html
Copyright © 2011-2022 走看看