private void SyncSystemMailCount(DateTime startTime, DateTime endTime) { ExchangeWebservice.ManagerWebService service = new ExchangeWebservice.ManagerWebService(); service.Timeout = -1; //DateTime startTime = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 0, 0, 1); //DateTime endTime = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 23, 23, 59); int iSendMailCount = 0; int iReceiveMailCount = 0; string strError = string.Empty; try { if (!service.GetServerMailCount(startTime, endTime, out iSendMailCount, out iReceiveMailCount, out strError)) { Log4netHelper.Error("获取系统邮件个数, error:" + strError); } } catch (Exception ex) { Log4netHelper.Error("获取系统邮件个数, Exception:" + ex.ToString()); } try { CParameters parameters = new CParameters(); SqlParameter paraDateTime = new SqlParameter("@TotalDate", startTime); parameters.Add(paraDateTime); SqlParameter paraSendCount = new SqlParameter("@SendMailCount", iSendMailCount); parameters.Add(paraSendCount); SqlParameter paraReceiveCount = new SqlParameter("@ReceiveMailCount", iReceiveMailCount); parameters.Add(paraReceiveCount); int iResult = 1; if (!m_db.ExcuteByTransaction(parameters, "dbo.prc_InsertADSystemMailCount", out iResult, out strError)) { Log4netHelper.Error("系统邮件个数存入数据库, error:" + strError); } if (iResult == -1) { Log4netHelper.Error("系统邮件个数存入数据库, error: 调用存储过程 spInsertADSystemMailCount 返回值-1"); } } catch (Exception ex) { Log4netHelper.Error("系统邮件个数存入数据库, Exception:" + ex.ToString()); } }
private void SyncUserMailCount(DateTime startTime, DateTime endTime) { ExchangeWebservice.ManagerWebService service = new ExchangeWebservice.ManagerWebService(); service.Timeout = -1; //DateTime startTime = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 0, 0, 1); //DateTime endTime = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 23, 23, 59); string strError = string.Empty; DataSet ds = new DataSet(); try { //读取ad user string strsql = "select sAMAccountName,UserPrincipalName from dbo.T_Base_ADUser"; if (!m_db.ExcuteByDataAdapter(strsql, out ds, out strError)) { Log4netHelper.Error("获取User信息失败, Error:" + strError); } } catch (Exception ex) { Log4netHelper.Error("获取User信息失败, Exception:" + ex.ToString()); } //循环调用接口同步用户邮件个数 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { int iSendMailCount = 0; int iReceiveMailCount = 0; try { if (!service.GetUserMailCount(startTime, endTime, Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), out iSendMailCount, out iReceiveMailCount, out strError)) { Log4netHelper.Error(string.Format("获取用户邮件个数, sAMAccountName:{0} UserPrincipalName:{1} error:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), strError)); } } catch (Exception ex) { Log4netHelper.Error(string.Format("获取用户邮件个数, sAMAccountName:{0} UserPrincipalName:{1} Exception:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), ex.ToString())); } try { //添加到数据库 CParameters parameters = new CParameters(); SqlParameter parasAMAccountName = new SqlParameter("@sAMAccountName", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"])); parameters.Add(parasAMAccountName); //SqlParameter paraUserPrincipalName = new SqlParameter("@UserPrincipalName", Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"])); //parameters.Add(paraUserPrincipalName); SqlParameter paraStartTime = new SqlParameter("@TotalDate", startTime); parameters.Add(paraStartTime); SqlParameter paraSendCount = new SqlParameter("@SendMailCount", iSendMailCount); parameters.Add(paraSendCount); SqlParameter paraReceiveCount = new SqlParameter("@ReceiveMailCount", iReceiveMailCount); parameters.Add(paraReceiveCount); int iResult = 1; if (!m_db.ExcuteByTransaction(parameters, "dbo.prc_InsertADUserMailCount", out iResult, out strError)) { Log4netHelper.Error(string.Format("用户邮件个数存入数据库, sAMAccountName:{0} UserPrincipalName:{1} error:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), strError)); } if (iResult == -1) { Log4netHelper.Error(string.Format("用户邮件个数存入数据库, sAMAccountName:{0} UserPrincipalName:{1} 调用存储过程spInsertADUserMailCount返回值-1", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]))); } } catch (Exception ex) { Log4netHelper.Error(string.Format("用户邮件个数存入数据库, sAMAccountName:{0} UserPrincipalName:{1} Exception:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), ex.ToString())); } } } }
private void SyncUserMailSize() { ExchangeWebservice.ManagerWebService service = new ExchangeWebservice.ManagerWebService(); service.Timeout = -1; string strError = string.Empty; DataSet ds = new DataSet(); try { do { //读取ad user string strsql = "select sAMAccountName,UserPrincipalName from dbo.T_Base_ADUser"; if (!m_db.ExcuteByDataAdapter(strsql, out ds, out strError)) { Log4netHelper.Error("获取User信息失败, Error:" + strError); break; } //循环调用接口同步用户邮件个数 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { //GB long mailSize = 0; long usedMailSize = 0; string databaseName = string.Empty; string sizename = string.Empty; string usedsizename = string.Empty; if (!service.GetUserMailSize(Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), out sizename, out mailSize, out usedsizename, out usedMailSize, out databaseName, out strError)) { Log4netHelper.Error(string.Format("获取用户邮箱空间, sAMAccountName:{0} UserPrincipalName:{1} error:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), strError)); continue; } //添加到数据库 CParameters parameters = new CParameters(); SqlParameter parasAMAccountName = new SqlParameter("@sAMAccountName", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"])); parameters.Add(parasAMAccountName); SqlParameter paraSizeName = new SqlParameter("@sizename", sizename); parameters.Add(paraSizeName); SqlParameter paraMailSize = new SqlParameter("@mailSize", mailSize); parameters.Add(paraMailSize); SqlParameter paraUsedSizeName = new SqlParameter("@usedsizename", usedsizename); parameters.Add(paraUsedSizeName); SqlParameter paraUsedMailSize = new SqlParameter("@usedMailSize", usedMailSize); parameters.Add(paraUsedMailSize); SqlParameter paraDatabaseName = new SqlParameter("@databaseName", databaseName); parameters.Add(paraDatabaseName); int iResult = 1; if (!m_db.ExcuteByTransaction(parameters, "dbo.prc_UpdateADUserMailSize", out iResult, out strError)) { Log4netHelper.Error(string.Format("用户已用空间存入数据库, sAMAccountName:{0} UserPrincipalName:{1} error:{2}", Convert.ToString(ds.Tables[0].Rows[i]["sAMAccountName"]), Convert.ToString(ds.Tables[0].Rows[i]["UserPrincipalName"]), strError)); continue; } } } } while (false); } catch (Exception ex) { Log4netHelper.Error($"同步用户已用空间异常, Exception:{ex.ToString()}"); } }