using System.Collections.Generic;
using NewTempo.Ftp;
using System.IO;
using NshowAdClient.NshowAdServices;
using NshowAdClient.Helper;
namespace NshowAdClient.Services
{
public static class
FtpHelpService
{
static readonly Dictionary<int, FtpInfo> ClientFtpCache = new Dictionary<int, FtpInfo>();
static FtpInfo ShareFtpInfo { get; set; }
static readonly object GetShareFtpLock = new object();
public static MyFtp GetShareFtp()
{
lock (GetShareFtpLock)
{
if (LoginUserHelper.Mode == RoleType.Client)
{
return GetClientFtp(LoginUserHelper.UserId);
}
if (ShareFtpInfo == null)
{
using (var service = new NshowAdServiceClient())
{
ShareFtpInfo = service.GetFtpInfo();
}
}
MyFtp ftp = new MyFtp(ShareFtpInfo.FtpAddress, ShareFtpInfo.User, ShareFtpInfo.Password);
return ftp;
//return new MyFtp("61.145.119.85:21", "wcf", "wcf");
}
}
static readonly object GetClientFtpLock = new object();
public static MyFtp GetClientFtp(int clientId)
{
lock (GetClientFtpLock)
{
FtpInfo ftpInfo;
if (ClientFtpCache.ContainsKey(clientId))
{
ftpInfo = ClientFtpCache[clientId];
}
else
{
using (var service = new NshowAdServiceClient())
{
ftpInfo = service.GetClientFtpInfo(clientId);
ClientFtpCache.Add(clientId, ftpInfo);
}
}
var ftp = new MyFtp(ftpInfo.FtpAddress, ftpInfo.User, ftpInfo.Password);
return ftp;
//return new MyFtp("61.145.119.85:21", "wcf", "wcf");
}
}
public static MyFtp GetFtp(string ftpIp, string userName, string password)
{
return new MyFtp(ftpIp, userName, password);
}
public static void CreateDir(string path, MyFtp myFtp)
{
var dirName = Path.GetDirectoryName(path);
bool ret = myFtp.CreateDirectory(dirName);
}
public static FtpInfo GetClientFtpInfo(int clientId)
{
lock (GetClientFtpLock)
{
if (ClientFtpCache.ContainsKey(clientId))
{
return ClientFtpCache[clientId];
}
else
{
using (var service = new NshowAdServiceClient())
{
FtpInfo ftpInfo = service.GetClientFtpInfo(clientId);
ClientFtpCache.Add(clientId, ftpInfo);
return ftpInfo;
}
}
}
}
}
}