sap 클립보드 기능 추가

This commit is contained in:
chi
2023-04-24 15:06:04 +09:00
parent 569e059b8a
commit 492f33d70b
20 changed files with 5180 additions and 262 deletions

View File

@@ -15,9 +15,119 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Project
{
public static class ServerUtil
{
/// <summary>
/// 내 그룹내에서 센드메일 사용자가 할당되어있는가?
/// </summary>
/// <returns></returns>
public static Boolean SendmailSet()
{
try
{
if (FCOMMON.info.Login.no == null) return false;
if (FCOMMON.info.Login.no.ToLower() == "dev") return false;
var ts = DateTime.Now - sendmailchecktime;
if (ts.TotalMinutes < 1) return ServerUtil.IsMailserver;
sendmailchecktime = DateTime.Now;
bool retval = false;
var sql = "select wdate from EETGW_ServerSetting" +
" where gcode = @gcode " +
" and active = 1" +
" order by wdate desc";
var cn = new SqlConnection(Properties.Settings.Default.gwcs);
cn.Open();
var trans = cn.BeginTransaction();
var cmd = new SqlCommand(sql, cn);
cmd.Transaction = trans;
cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
var value = cmd.ExecuteScalar();
if (value == null || value.ToString().isEmpty())
{
//대상없음
cmd.CommandText = "insert into EETGW_ServerSetting(gcode,active,wuid,wdate) values(@gcode,1,@wuid,GETDATE())";
cmd.Parameters.Clear();
cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
cmd.Parameters.Add("wuid", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.no;
cmd.ExecuteNonQuery();
retval = true;
}
else
{
//있다면
var dt = (DateTime)value;
if (dt >= DateTime.Now.AddMinutes(-10))
{
//이 사용자가 나인지 체크한다
cmd.CommandText = sql = "select wuid from EETGW_ServerSetting" +
" where gcode = @gcode " +
" and active = 1" +
" order by wdate desc";
var uid = cmd.ExecuteScalar();
if(uid.ToString().Equals(FCOMMON.info.Login.no))
{
//아직 10분전이므로 정상이다
ts = DateTime.Now - dt;
if (ts.TotalMinutes > 3)
{
//3분이 넘었다면 갱신해준다
cmd.Parameters.Clear();
cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
cmd.Parameters.Add("wuid", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.no;
//기존데이터를 비활성화
cmd.CommandText = "update EETGW_ServerSetting set active=0 where gcode =@gcode and active=1 and wuid <> @wuid ";
cmd.ExecuteNonQuery();
//내 데이터를 활성화
cmd.CommandText = "update EETGW_ServerSetting set wdate = getdate() where gcode = @gcode and wuid = @wuid and active=1";
var cnt = cmd.ExecuteNonQuery();
}
retval = true;
}
else
{
//다른사용자의 데이터는 내가 처리하지 않는다
}
}
else
{
//10분넘었으니 다시 생성한다
cmd.CommandText = "update EETGW_ServerSetting set active=0 where gcode =@gcode and active=1";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into EETGW_ServerSetting(gcode,active,wuid,wdate) values(@gcode,1,@wuid,GETDATE())";
cmd.Parameters.Clear();
cmd.Parameters.Add("gcode", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
cmd.Parameters.Add("wuid", System.Data.SqlDbType.VarChar).Value = FCOMMON.info.Login.no;
cmd.ExecuteNonQuery();
retval = true;
}
}
trans.Commit();
cmd.Dispose();
cn.Close();
cn.Dispose();
return retval;
}
catch (Exception ex)
{
return false;
}
}
static DateTime sendmailchecktime = DateTime.Now;
public static Boolean IsMailserver = false;
}
public static class Util
{
@@ -506,14 +616,14 @@ namespace Project
public static void RunExplorer(string arg)
{
if(arg.StartsWith("http"))
{
if (arg.StartsWith("http"))
{
System.Diagnostics.Process.Start(arg);
}
else
{
else
{
System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo("explorer");
si.Arguments = arg;