2025-04-15 12:10:19 +02:00

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);
}
}
}