//public void VisitMethodStart(DB_Type type, DB_Member member) //{ // //throw new NotImplementedException(); //} //public void VisitMethodEnd(DB_Type type, DB_Member member) //{ // //throw new NotImplementedException(); //} public void VisitType(DB_Type type) { foreach (var m in type.members.Values) { model.AcceptMemberVisitor(this, type, m); } }
public void VisitStatement(DB_Type type, DB_Member member, DB_ReturnStatementSyntax statement, DB_StatementSyntax outer) { if (statement.Expression != null) { model.VisitExp(this, type, member, statement, statement.Expression, null); } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, IndifierExp exp, Exp outer) { Model.IndifierInfo info = model.GetIndifierInfo(exp.Name); if (info.type != null) { typeRef.Add(info.type.GetRefType()); } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, ElementAccessExp exp, Exp outer) { model.VisitExp(this, type, member, statement, exp.exp, exp); foreach (var e in exp.args) { model.VisitExp(this, type, member, statement, e, exp); } }
void VisitDeclareVairable(DB_Type type, DB_Member method, DB_StatementSyntax statement, VariableDeclarationSyntax Declaration) { foreach (var e in Declaration.Variables) { model.AddLocal(e.Identifier, model.Finder.FindType(Declaration.Type, model)); model.VisitExp(this, type, method, statement, e.Initializer, null); } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, ObjectCreateExp exp, Exp outer) { typeRef.Add(exp.Type); foreach (var a in exp.Args) { model.VisitExp(this, type, member, statement, a, exp); } }
public void VisitStatement(DB_Type type, DB_Member member, DB_BlockSyntax statement, DB_StatementSyntax outer) { model.EnterBlock(); foreach (var s in statement.List) { model.VisitStatement(this, type, member, s, statement); } model.LeaveBlock(); }
public void VisitStatement(DB_Type type, DB_Member member, DB_IfStatementSyntax statement, DB_StatementSyntax outer) { model.VisitExp(this, type, member, statement, statement.Condition, null); model.VisitStatement(this, type, member, statement.Statement, statement); if (statement.Else != null) { model.VisitStatement(this, type, member, statement.Else, statement); } }
public void VisitMember(DB_Type type, DB_Member member) { if (member.member_type == (int)Metadata.MemberTypes.Method) { if (member.method_body != null) { model.VisitStatement(this, type, member, member.method_body, null); } } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, IndifierExp exp, Exp outer) { Model.IndifierInfo info = model.GetIndifierInfo(exp.Name); if (info.is_class_type_parameter) { Console.Error.Write("未处理的类型参数标识符 " + exp.Name); } //if (info.type != null) // typeRef.Add(info.type.GetRefType()); }
void VisitType(DB_Type type, ITypeVisitor visitor) { StartUsing(type.usingNamespace); EnterNamespace(type._namespace); EnterType(type); visitor.VisitType(type); LeaveType(); LeaveNamespace(); ClearUsing(); }
public NNTP_API(string dataPath) { m_DataPath = dataPath; DataSet dsTmp = new DataSet(); dsTmp.ReadXml(dataPath + "Settings.xml"); DataRow dr = dsTmp.Tables["Settings"].Rows[0]; m_NNTPStorePath = dr["NNTPRoot"].ToString(); m_ConStr = dr["ConnectionString"].ToString(); m_DB_Type = (DB_Type)Enum.Parse(typeof(DB_Type),dr["DataBaseType"].ToString()); }
//public IMethodVisitor GetMethodVisitor() { return this; } //public void VisitStatement(DB_Type type, DB_Member member, DB_BreakStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_BlockSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // EnterBlock(); // foreach (var s in statement.List) // { // VisitStatement(type, member,s, statement); // } // LeaveBlock(); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_DoStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // DB_DoStatementSyntax ss = statement as DB_DoStatementSyntax; // VisitExp(type, member, statement, ss.Condition,null); // VisitStatement(type, member, ss.Statement,ss); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_ExpressionStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // VisitExp(type, member, statement, statement.Exp, null); //} //void VisitDeclareVairable(DB_Type type, DB_Member method, DB_StatementSyntax statement, VariableDeclarationSyntax Declaration) //{ // foreach (var e in Declaration.Variables) // { // AddLocal(e.Identifier, Finder.FindType(Declaration.Type)); // VisitExp(type, method, statement, e.Initializer,null); // } //} //public void VisitStatement(DB_Type type, DB_Member member, DB_ForStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // EnterBlock(); // DB_ForStatementSyntax ss = statement as DB_ForStatementSyntax; // if (ss.Declaration != null) // { // VisitDeclareVairable(type, member, statement, ss.Declaration); // } // VisitExp(type, member, statement, ss.Condition,null); // foreach (var inc in ss.Incrementors) // VisitExp(type, member, statement, inc,null); // VisitStatement(type, member, ss.Statement,statement); // LeaveBlock(); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_IfStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // DB_IfStatementSyntax ss = statement as DB_IfStatementSyntax; // VisitExp(type, member, statement, ss.Condition,null); // VisitStatement(type, member, ss.Statement,ss); // if (ss.Else != null) // { // VisitStatement(type, member, ss.Else,ss); // } //} //public void VisitStatement(DB_Type type, DB_Member member, DB_LocalDeclarationStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // DB_LocalDeclarationStatementSyntax ss = statement as DB_LocalDeclarationStatementSyntax; // VisitDeclareVairable(type, member, statement, ss.Declaration); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_ReturnStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // DB_ReturnStatementSyntax ss = statement as DB_ReturnStatementSyntax; // if (ss.Expression != null) // { // VisitExp(type, member, ss, ss.Expression,null); // } //} //public void VisitStatement(DB_Type type, DB_Member member, DB_SwitchStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // VisitExp(type, member, statement, statement.Expression,null); // EnterBlock(); // foreach (var sec in statement.Sections) // { // foreach (var l in sec.Labels) // { // VisitExp(type, member, statement, l,null); // } // foreach (var s in sec.Statements) // { // VisitStatement(type, member, s, statement); // } // } // LeaveBlock(); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_ThrowStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // VisitExp(type, member, statement, statement.Expression,null); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_TryStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // DB_TryStatementSyntax ss = statement as DB_TryStatementSyntax; // VisitStatement(type, member, ss.Block,statement); // foreach (var c in ss.Catches) // { // VisitStatement(type, member, c.Block, statement); // } // if (ss.Finally != null) // VisitStatement(type, member, ss.Finally.Block, statement); //} //public void VisitStatement(DB_Type type, DB_Member member, DB_WhileStatementSyntax statement, DB_StatementSyntax outer) //{ // methodVisitor.VisitStatement(type, member, statement, outer); // VisitExp(type, member, statement, statement.Condition,null); // VisitStatement(type, member, statement.Statement, statement); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.AssignmentExpressionSyntax exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.BaseExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.BinaryExpressionSyntax exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.ConstExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.FieldExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.MethodExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); // VisitExp(type, member, statement, exp.Caller,exp); // List<DB_Type> argTypes = new List<DB_Type>(); // foreach (var a in exp.Args) // { // VisitExp(type, member, statement, a,null); // } //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.ObjectCreateExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); // foreach (var a in exp.Args) // { // VisitExp(type, member, statement, a, exp); // } //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.ParenthesizedExpressionSyntax exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.PostfixUnaryExpressionSyntax exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.PrefixUnaryExpressionSyntax exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.ThisExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.ThrowExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} //public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, Expression.IndifierExp exp, Expression.Exp outer) //{ // methodVisitor.VisitExp(type, member, statement, exp, outer); //} public void VisitStatement(IMethodVisitor visitor, DB_Type type, DB_Member method, DB_StatementSyntax statement, DB_StatementSyntax outer) { if (statement is DB_BlockSyntax) { visitor.VisitStatement(type, method, statement as DB_BlockSyntax, outer); } else if (statement is DB_IfStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_IfStatementSyntax, outer); } else if (statement is DB_ForStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_ForStatementSyntax, outer); } else if (statement is DB_LocalDeclarationStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_LocalDeclarationStatementSyntax, outer); } else if (statement is DB_DoStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_DoStatementSyntax, outer); } else if (statement is DB_ExpressionStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_ExpressionStatementSyntax, outer); } else if (statement is DB_SwitchStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_SwitchStatementSyntax, outer); } else if (statement is DB_WhileStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_WhileStatementSyntax, outer); } else if (statement is DB_TryStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_TryStatementSyntax, outer); } else if (statement is DB_ThrowStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_ThrowStatementSyntax, outer); } else if (statement is DB_ReturnStatementSyntax) { visitor.VisitStatement(type, method, statement as DB_ReturnStatementSyntax, outer); } else { throw new NotSupportedException("不支持的语句 " + statement.GetType().Name); } }
public void VisitType(DB_Type type) { if (!type.base_type.IsVoid) { result.Add(type.base_type); } foreach (var i in type.interfaces) { result.Add(i); } foreach (var m in type.members.Values) { model.AcceptMemberVisitor(this, type, m); } }
public void VisitStatement(DB_Type type, DB_Member member, DB_TryStatementSyntax statement, DB_StatementSyntax outer) { foreach (var c in statement.Catches) { typeRef.Add(c.Type); } foreach (var c in statement.Catches) { model.VisitStatement(this, type, member, c.Block, statement); } if (statement.Finally != null) { model.VisitStatement(this, type, member, statement.Finally.Block, statement); } }
public void VisitStatement(DB_Type type, DB_Member member, DB_SwitchStatementSyntax statement, DB_StatementSyntax outer) { model.VisitExp(this, type, member, statement, statement.Expression, null); foreach (var sec in statement.Sections) { foreach (var l in sec.Labels) { model.VisitExp(this, type, member, statement, l, null); } foreach (var s in sec.Statements) { model.VisitStatement(this, type, member, s, statement); } } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, MethodExp exp, Exp outer) { foreach (var a in exp.Args) { model.VisitExp(this, type, member, statement, a, exp); } if (exp.Caller is IndifierExp) { } else { model.VisitExp(this, type, member, statement, exp.Caller, exp); } //DB_Type returnType = model.GetExpType(exp); //if (returnType != null) // typeRef.Add(returnType.GetRefType()); }
//public IMemberVisitor GetMemberVisitor() { return this; } public void AcceptMemberVisitor(IMemberVisitor visitor, DB_Type type, DB_Member member) { IMemberVisitor memberVisitor = visitor; if (memberVisitor != null) { if (member.member_type == (int)MemberTypes.Method) { EnterMethod(member); memberVisitor.VisitMember(type, member); LeaveMethod(); } else { memberVisitor.VisitMember(type, member); } } }
/// <summary> /// Exporting a SQL server database table to the local CSV file. /// </summary> public void MakeAddressbookCSVsample(DB_Type db_type) { cDatabase sqlDB = new cDatabase(db_type); try { sqlDB.OpenConnection(); Console.WriteLine("Connection opened"); sqlDB.Table2Csv(@"Data/CSV/addressbook v4.csv", "addressbook_v4", true); Console.WriteLine("The file addressbook v4.csv was created."); } catch (Exception ex) { Console.WriteLine("Making of a addressbook csv file failed!.. " + ex.Message); } finally { sqlDB.CloseConnection(); } }
/// <summary> /// Uploading CSV file to the SQL server database table. /// </summary> public void UploadCsvToOrders(DB_Type db_type) { cDatabase sqlDB = new cDatabase(db_type); try { sqlDB.OpenConnection(); Console.WriteLine("Connection opened"); sqlDB.Csv2Table(@"Data/CSV/orders 1000 with order id.csv", "orders", "order_id", 10, true); Console.WriteLine("The orders CSV file was uploaded to the SQL server."); } catch (Exception ex) { Console.WriteLine("Uploading of the CSV file to the SQL server failed!.. " + ex.Message); } finally { sqlDB.CloseConnection(); } }
/// <summary> /// Uploading JSON orders file to the SQL server's database table. /// </summary> public void UploadOrdersJSONtoSQL(DB_Type db_type) { cDatabase sqlDB = new cDatabase(db_type); try { sqlDB.OpenConnection(); Console.WriteLine("Connection opened"); sqlDB.Json2Table(@"Data/JSON/get orders RESPONSE.json", "orders", "id", R4M_DataType.Order); Console.WriteLine("The JSON file was uploaded to the SQL server."); } catch (Exception ex) { Console.WriteLine("Uploading of the JSON file to the SQL server failed!.. " + ex.Message); } finally { sqlDB.CloseConnection(); } }
/// <summary> /// Uploading CSV file to the SQL server's database table. /// </summary> public void UploadCsvToAddressbookV4(DB_Type db_type) { cDatabase sqlDB = new cDatabase(db_type); try { sqlDB.OpenConnection(); Console.WriteLine("Connection opened"); sqlDB.Csv2Table(@"Data/CSV/Route4Me Address Book 03-09-2017.csv", "addressbook_v4", "id", 33, true); Console.WriteLine("The file orders.csv was uploaded to the SQL server."); } catch (Exception ex) { Console.WriteLine("Uploading of the CSV file to the SQL server failed!.. " + ex.Message); } finally { sqlDB.CloseConnection(); } }
public cDatabase(DB_Type db_type) { switch (db_type) { case DB_Type.MySQL: _conStngInstitute = ConfigurationManager.ConnectionStrings["conMySQL"]; break; case DB_Type.MSSQL: _conStngInstitute = ConfigurationManager.ConnectionStrings["conMSSQL"]; break; case DB_Type.SQLCE: _conStngInstitute = ConfigurationManager.ConnectionStrings["conSQLCE"]; break; case DB_Type.PostgreSQL: _conStngInstitute = ConfigurationManager.ConnectionStrings["conPostgreSQL"]; break; case DB_Type.SQLite: //_conStngInstitute = ConfigurationManager.ConnectionStrings["conInstitute"]; break; case DB_Type.MS_Access: _conStngInstitute = ConfigurationManager.ConnectionStrings["conOLEDB"]; break; } _factory = DbProviderFactories.GetFactory(_conStngInstitute.ProviderName); _con = _factory.CreateConnection(); _con.ConnectionString = _conStngInstitute.ConnectionString; _cmd = _con.CreateCommand(); _adapter = _factory.CreateDataAdapter(); _isDisposed = false; sStartupFolder = AppDomain.CurrentDomain.BaseDirectory; }
public void VisitStatement(DB_Type type, DB_Member member, DB_ForStatementSyntax statement, DB_StatementSyntax outer) { typeRef.Add(statement.Declaration.Type); model.EnterBlock(); DB_ForStatementSyntax ss = statement as DB_ForStatementSyntax; if (ss.Declaration != null) { VisitDeclareVairable(type, member, statement, ss.Declaration); } model.VisitExp(this, type, member, statement, ss.Condition, null); foreach (var inc in ss.Incrementors) { model.VisitExp(this, type, member, statement, inc, null); } model.VisitStatement(this, type, member, ss.Statement, statement); model.LeaveBlock(); }
public DB_Type FindTypeInNamespace(string name, string ns) { do { DB_Type type = Finder.FindType(ns + "." + name); if (type != null) { return(type); } if (ns.Contains(".")) { ns = ns.Substring(0, ns.LastIndexOf('.')); } else { break; } }while (ns != null); return(null); }
/// <summary> /// Uploading JSON addressbook file to the SQL server's database table. /// </summary> public void UploadAddressbookJSONtoSQL(DB_Type db_type) { cDatabase sqlDB = new cDatabase(db_type); try { sqlDB.OpenConnection(); Console.WriteLine("Connection opened"); sqlDB.Json2Table(@"Data/JSON/Addressbook Get Contacts RESPONSE.json", "addressbook_v4", "id", R4M_DataType.Addressbook); Console.WriteLine("The file 'Addressbook Get Contacts RESPONSE.json' was uploaded to the SQL server."); } catch (Exception ex) { Console.WriteLine("Uploading of the JSON file to the SQL server failed!.. " + ex.Message); } finally { sqlDB.CloseConnection(); } }
public void VisitMember(DB_Type type, DB_Member m) { if (m.member_type == (int)Metadata.MemberTypes.Field) { result.Add(m.type); } else if (m.member_type == (int)Metadata.MemberTypes.Method) { if (!m.type.IsVoid) { result.Add(m.type); } foreach (var a in m.method_args) { result.Add(a.type); } } else if (m.member_type == (int)Metadata.MemberTypes.Property) { result.Add(m.type); } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, FieldExp exp, Exp outer) { //DB_Type caller = model.GetExpType(exp.Caller); //typeRef.Add(caller.GetRefType()); //if (caller.members.ContainsKey(exp.Name)) //{ // typeRef.Add(caller.members[exp.Name].typeName); //} //else //{ // List<DB_Member> methods = caller.FindMethod(exp.Name, model); // if(methods.Count>0) // { // //typeRef.Add(caller.members[exp.Name].typeName); // } //} model.VisitExp(this, type, member, statement, exp.Caller, exp); }
public void VisitMember(DB_Type type, DB_Member member) { if (member.member_type == (int)Metadata.MemberTypes.Method) { if (member.method_body != null) { model.VisitStatement(this, type, member, member.method_body, null); } if (member.method_args != null) { foreach (var t in member.method_args) { t.type = ReplaceType(type, t.type); } } } if (!member.type.IsVoid) { member.type = ReplaceType(type, member.type); } }
//public HashSet<Expression.TypeSyntax> typeRef = new HashSet<Expression.TypeSyntax>(); //将oldTs替换为DB_Type的真实泛型参数 TypeSyntax ReplaceType(DB_Type type, TypeSyntax oldTs) { if (oldTs.isGenericParameter) { for (int i = 0; i < type.generic_parameter_definitions.Count; i++) { if (type.generic_parameter_definitions[i].type_name == oldTs.Name) { return(type.generic_parameters[i]); } } } //替换泛型参数 if (oldTs.isGenericType) { for (int i = 0; i < oldTs.args.Length; i++) { oldTs.args[i] = ReplaceType(type, oldTs.args[i]); } } return(oldTs); }
/// <summary> /// /// </summary> /// <param name="valueObj"></param> /// <param name="dbType">0:SQL;1:Oracle;2:Access</param> /// <returns></returns> private static Hashtable setPara(object valueObj, DB_Type dbType, Manual_Type manualType, out string fieldStr) { string flag = ":"; if (dbType == DB_Type.SQLServer || dbType == DB_Type.Access) { flag = "@"; } fieldStr = ""; string vals = ""; Hashtable result = new Hashtable(); int i = 0; foreach (PropertyInfo p in valueObj.GetType().GetProperties()) { if (getObjValue(p.Name, valueObj) != null) { result.Add(flag + p.Name, getObjValue(p.Name, valueObj)); if (i == 0) { i++; } else { fieldStr += ","; vals += ","; } if (manualType == Manual_Type.Insert) { vals += p.Name; fieldStr += flag + p.Name; } else if (manualType == Manual_Type.Update) { fieldStr += " " + p.Name + "=" + flag + p.Name; } } } if (dbType == DB_Type.Access) { vals = ""; fieldStr = ""; int j = 0; foreach (string str in result.Keys) { if (j == 0) { j++; } else { fieldStr += ","; vals += ","; } if (manualType == Manual_Type.Insert) { vals += str.Replace(flag, ""); fieldStr += str; } else if (manualType == Manual_Type.Update) { fieldStr += " " + str.Replace(flag, "") + "=" + str; } } } if (manualType == Manual_Type.Insert) { fieldStr = "(" + vals + ") values (" + fieldStr + ") "; } return(result); }
private void LoadSettings() { try { lock(this) { dsSettings = m_API.GetSettings(); DataRow dr = dsSettings.Tables["Settings"].Rows[0]; m_connStr = dr["ConnectionString"].ToString(); m_DB_Type = (DB_Type)Enum.Parse(typeof(DB_Type),dr["DataBaseType"].ToString()); string nntpStorePath = dr["NNTPRoot"].ToString(); if(!nntpStorePath.EndsWith("\\")) { nntpStorePath += "\\"; } if(nntpStorePath.Length < 3) { nntpStorePath = m_StartUpPath + "NNTPStore\\"; } m_NNTPStorePath = nntpStorePath; m_PullInterval = Convert.ToInt32(dr["PullInterval"]); //------- NNTP Settings ---------------------------------------------// m_pServer.IpAddress = dr["NNTP_IPAddress"].ToString(); m_pServer.Port = Convert.ToInt32(dr["NNTP_Port"]); m_pServer.Threads = Convert.ToInt32(dr["NNTP_Threads"]); m_pServer.SessionIdleTimeOut = Convert.ToInt32(dr["NNTP_SessionIdleTimeOut"]) * 1000; // Seconds to milliseconds m_pServer.CommandIdleTimeOut = Convert.ToInt32(dr["NNTP_CommandIdleTimeOut"]) * 1000; // Seconds to milliseconds m_pServer.MaxMessageSize = Convert.ToInt32(dr["MaxMessageSize"]) * 1000000; // Mb to byte. m_pServer.MaxBadCommands = Convert.ToInt32(dr["NNTP_MaxBadCommands"]); m_pServer.Enabled = Convert.ToBoolean(dr["NNTP_Enabled"]); } } catch(Exception x) { Error.DumpError(x,new System.Diagnostics.StackTrace()); } }
/// <summary> /// For administration only. /// </summary> /// <param name="dataPath"></param> /// <param name="webServicesUrl"></param> /// <param name="webServicesUser"></param> /// <param name="webServicesPwd"></param> public ServerAPI(string dataPath,string webServicesUrl,string webServicesUser,string webServicesPwd) { m_WebServicesUrl = webServicesUrl; m_WebServicesUser = webServicesUser; m_WebServicesPwd = webServicesPwd; m_DB_Type = DB_Type.WebServices; }
/// <summary> /// Sets Settings.xml specified Database type. /// </summary> public void DatabaseTypeChanged() { DataSet dsTmp = new DataSet(); dsTmp.ReadXml(m_DataPath + "Settings.xml"); DataRow dr = dsTmp.Tables["Settings"].Rows[0]; m_MailStorePath = dr["MailRoot"].ToString(); m_ConStr = dr["ConnectionString"].ToString(); m_DB_Type = (DB_Type)Enum.Parse(typeof(DB_Type),dr["DataBaseType"].ToString()); dsUsers = new DataSet(); dsAliases = new DataSet(); dsDomains = new DataSet(); dsRouting = new DataSet(); dsSecurity = new DataSet(); dsFilters = new DataSet(); // We need to load all stuff to memory for XML if(m_DB_Type == DB_Type.XML){ LoadUsers(); LoadAliases(); LoadRouting(); LoadDomains(); LoadSecurity(); } LoadFilters(); }
/// <summary> /// Checks if database connection is ok. /// </summary> /// <param name="dataPath"></param> /// <param name="conStr"></param> /// <param name="dbType"></param> /// <returns></returns> public static bool IsConnection(string dataPath,string conStr,DB_Type dbType) { try { switch(dbType) { case DB_Type.XML: return Directory.Exists(dataPath); case DB_Type.MSSQL: using(WSqlCommand sqlCmd = new WSqlCommand(conStr,"lspr_CheckConnection")){ sqlCmd.Execute(); } return true; } } catch{ } return false; }
private void LoadSettings() { try { lock(this){ m_pAPI.DatabaseTypeChanged(); dsSettings = m_pAPI.GetSettings(); m_SettingsDate = File.GetLastWriteTime(m_SartUpPath + "\\Settings\\Settings.xml"); DataRow dr = dsSettings.Tables["Settings"].Rows[0]; m_connStr = dr["ConnectionString"].ToString(); m_DB_Type = (DB_Type)Enum.Parse(typeof(DB_Type),dr["DataBaseType"].ToString()); string mailStorePath = dr["MailRoot"].ToString(); if(!mailStorePath.EndsWith("\\")){ mailStorePath += "\\"; } if(mailStorePath.Length < 3){ mailStorePath = m_SartUpPath + "MailStore\\"; } m_MailStorePath = mailStorePath; //------- SMTP Settings ---------------------------------------------// SMTP_Server.IpAddress = dr["SMTP_IPAddress"].ToString(); SMTP_Server.Port = Convert.ToInt32(dr["SMTP_Port"]); SMTP_Server.Threads = Convert.ToInt32(dr["SMTP_Threads"]); SMTP_Server.SessionIdleTimeOut = Convert.ToInt32(dr["SMTP_SessionIdleTimeOut"]) * 1000; // Seconds to milliseconds SMTP_Server.CommandIdleTimeOut = Convert.ToInt32(dr["SMTP_CommandIdleTimeOut"]) * 1000; // Seconds to milliseconds SMTP_Server.MaxMessageSize = Convert.ToInt32(dr["MaxMessageSize"]) * 1000000; // Mb to byte. SMTP_Server.MaxRecipients = Convert.ToInt32(dr["MaxRecipients"]); SMTP_Server.MaxBadCommands = Convert.ToInt32(dr["SMTP_MaxBadCommands"]); SMTP_Server.Enabled = Convert.ToBoolean(dr["SMTP_Enabled"]); m_DefaultDomain = dr["SMTP_DefaultDomain"].ToString(); //-------------------------------------------------------------------// //------- POP3 Settings -------------------------------------// POP3_Server.IpAddress = dr["POP3_IPAddress"].ToString(); POP3_Server.Port = Convert.ToInt32(dr["POP3_Port"]); POP3_Server.Threads = Convert.ToInt32(dr["POP3_Threads"]); POP3_Server.SessionIdleTimeOut = Convert.ToInt32(dr["POP3_SessionIdleTimeOut"]) * 1000; // Seconds to milliseconds POP3_Server.CommandIdleTimeOut = Convert.ToInt32(dr["POP3_CommandIdleTimeOut"]) * 1000; // Seconds to milliseconds POP3_Server.MaxBadCommands = Convert.ToInt32(dr["POP3_MaxBadCommands"]); POP3_Server.Enabled = Convert.ToBoolean(dr["POP3_Enabled"]); //-----------------------------------------------------------// //------- IMAP Settings -------------------------------------// IMAP_Server.IpAddress = dr["IMAP_IPAddress"].ToString(); IMAP_Server.Port = Convert.ToInt32(dr["IMAP_Port"]); IMAP_Server.Threads = Convert.ToInt32(dr["IMAP_Threads"]); IMAP_Server.SessionIdleTimeOut = Convert.ToInt32(dr["IMAP_SessionIdleTimeOut"]) * 1000; // Seconds to milliseconds IMAP_Server.CommandIdleTimeOut = Convert.ToInt32(dr["IMAP_CommandIdleTimeOut"]) * 1000; // Seconds to milliseconds IMAP_Server.MaxBadCommands = Convert.ToInt32(dr["IMAP_MaxBadCommands"]); IMAP_Server.Enabled = Convert.ToBoolean(dr["IMAP_Enabled"]); //-----------------------------------------------------------// //------- Delivery ------------------------------------------// Relay.SmartHost = dr["SmartHost"].ToString(); Relay.UseSmartHost = Convert.ToBoolean(dr["UseSmartHost"]); Relay.Dns1 = dr["Dns1"].ToString(); Relay.Dns2 = dr["Dns2"].ToString(); Relay.RelayInterval = Convert.ToInt32(dr["RelayInterval"]); Relay.RelayRetryInterval = Convert.ToInt32(dr["RelayRetryInterval"]); Relay.RelayUndelWarning = Convert.ToInt32(dr["RelayUndeliveredWarning"]); Relay.RelayUndelivered = Convert.ToInt32(dr["RelayUndelivered"]); Relay.MaxRelayThreads = Convert.ToInt32(dr["MaxRelayThreads"]); Relay.UndeliveredTemplate = dr["UndeliveredTemplate"].ToString(); Relay.UndelWarningTemplate = dr["UndeliveredWarningTemplate"].ToString(); Relay.StoreUndeliveredMessages = Convert.ToBoolean(dr["StoreUndeliveredMessages"]); //-----------------------------------------------------------// //----- Logging settings -------------------------------------// SMTP_Server.LogCommands = Convert.ToBoolean(dr["LogSMTPCmds"]); POP3_Server.LogCommands = Convert.ToBoolean(dr["LogPOP3Cmds"]); IMAP_Server.LogCommands = Convert.ToBoolean(dr["LogIMAPCmds"]); m_SMTP_LogPath = dr["SMTP_LogPath"].ToString() + "\\"; m_POP3_LogPath = dr["POP3_LogPath"].ToString() + "\\"; m_IMAP_LogPath = dr["IMAP_LogPath"].ToString() + "\\"; m_Server_LogPath = dr["Server_LogPath"].ToString() + "\\"; //----- If no log path, use default ---------------- if(dr["SMTP_LogPath"].ToString().Trim().Length == 0){ m_SMTP_LogPath = m_SartUpPath + "Logs\\SMTP\\"; } if(dr["POP3_LogPath"].ToString().Trim().Length == 0){ m_POP3_LogPath = m_SartUpPath + "Logs\\POP3\\"; } if(dr["IMAP_LogPath"].ToString().Trim().Length == 0){ m_IMAP_LogPath = m_SartUpPath + "Logs\\IMAP\\"; } if(dr["Server_LogPath"].ToString().Trim().Length == 0){ m_Server_LogPath = m_SartUpPath + "Logs\\Server\\"; } //------------------------------------------------------------// SCore.WriteLog(m_Server_LogPath + "server.log","//---- Server settings loaded " + DateTime.Now); } } catch(Exception x) { Error.DumpError(x,new System.Diagnostics.StackTrace()); } }