96 lines
2.8 KiB
C#
96 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Configuration;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace GestoreTrimestrale.Logic
|
|
{
|
|
public class FtpManagerProcess : IDisposable
|
|
{
|
|
private BackgroundWorker ftpWorker { get; set; } //our thread to process zipping
|
|
|
|
public ManagerProcessStatusEnum Status { get; set; } //process status
|
|
|
|
//will be used for the main controller to handling "process completed" event (enabling textboxes)
|
|
public BackgroundWorker FtpWorker
|
|
{
|
|
get
|
|
{
|
|
return ftpWorker;
|
|
}
|
|
set
|
|
{
|
|
ftpWorker = value;
|
|
}
|
|
|
|
}
|
|
|
|
public string Ambiente { get; private set; } //no idea what's that for :(
|
|
public string TngServer { get; private set; } //no idea what's that for :(
|
|
public string TngJobset { get; private set; } //no idea what's that for :(
|
|
public string TngJob { get; private set; } //no idea what's that for :(
|
|
|
|
//create with default parameters
|
|
public FtpManagerProcess()
|
|
{
|
|
CreateBackgroundWorker();
|
|
Ambiente = "SVILUPPO";
|
|
TngServer = "";
|
|
TngJobset = "";
|
|
TngJob = "";
|
|
}
|
|
|
|
//create with provided parameters
|
|
public FtpManagerProcess(string ambiente, string tngServer, string tngJobset, string tngJob)
|
|
{
|
|
CreateBackgroundWorker();
|
|
this.Ambiente = ambiente;
|
|
this.TngServer = tngServer;
|
|
this.TngJobset = tngJobset;
|
|
this.TngJob = tngJob;
|
|
}
|
|
|
|
//starting process
|
|
public void Start()
|
|
{
|
|
this.Status = ManagerProcessStatusEnum.Processing;
|
|
ftpWorker.RunWorkerAsync();
|
|
}
|
|
|
|
//killing the Backgroud worker (if exists)
|
|
public void Dispose()
|
|
{
|
|
if (ftpWorker != null)
|
|
{
|
|
ftpWorker.CancelAsync();
|
|
}
|
|
}
|
|
|
|
//initialize FtpWorker
|
|
private void CreateBackgroundWorker()
|
|
{
|
|
Status = ManagerProcessStatusEnum.Inactive;
|
|
this.ftpWorker = new BackgroundWorker();
|
|
this.ftpWorker.DoWork += ftpWorker_DoWork;
|
|
this.ftpWorker.RunWorkerCompleted += ftpWorker_RunWorkerCompleted;
|
|
}
|
|
|
|
//work completed
|
|
private void ftpWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
|
{
|
|
this.Status = ManagerProcessStatusEnum.Completed;
|
|
}
|
|
|
|
//do your work
|
|
private void ftpWorker_DoWork(object sender, DoWorkEventArgs e)
|
|
{
|
|
SmartFTPThread.Logic.FtpProcessSeparated.StartProcessing(Ambiente, TngServer, TngJobset, TngJob);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|