Esempio n. 1
0
        private String m_strErrorMsg = "";                 // Message from call to server

        #endregion Data Members

        #region Constructors, Initialization & Destructor

        public cUpdatingSecuritiesPriceHistory(cPortfolio cPort)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            m_objDbConnection = m_objPortfolio.OleDBConn;
            param             = new cParameters(m_objErrorHandler);
            param.initParams();
        }//constructor
Esempio n. 2
0
        static void Main(string[] args)
        {
#if DEBUG
            pDebug = true;
#else
            pDebug = false;
#endif
            string _stage  = "Unknown Error";
            string _myName = System.Reflection.Assembly.GetCallingAssembly().GetName().Name;

            try
            {
                Console.WriteLine($"----==== Starting [{_myName}] at {System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} ====----");

                //
                _stage = "Checking OS";
                if (cMiscTools.RunningOS == "Other")
                {
                    throw new Exception("OS not supported!");
                }

                // If the settings file exists, the params will be loaded from it
                _stage = "Loading settings file";
                Console.Write("> Loading settings file... ");
                string[] _lines = File.ReadAllLines((cMiscTools.RunningOS == "Windows" ? Directory.GetCurrentDirectory().Substring(0, 3) : $"/media/bin/{_myName}/") + $"C# Apps Settings/{_myName}.settings", Encoding.Unicode);

                //
                _stage = "Creating Parameters object";
                cParameters _params = new cParameters();

                //
                _stage = "Getting settings from file";
                _params.LoadParameters(_lines);

                //
                _stage = "Getting settings from args";
                Console.Write($"OK!\n> Parameters: {(args.Length!=0?String.Join(" ", args):"NONE")}\n> Getting settings from args... ");
                _params.LoadParameters(args);

                //
                _stage = "Checking settings";
                Console.WriteLine("OK!");
                Console.Write("> Checking settings... ");
                if (String.IsNullOrEmpty(_params.DBServer))
                {
                    throw new Exception("DB server is mandatory: DB_SERVER=<ServerAddress>");
                }
                if (String.IsNullOrEmpty(_params.DBUser))
                {
                    throw new Exception("DB user is mandatory: DB_USER=<UserCode>");
                }
                if (String.IsNullOrEmpty(_params.DBPassword))
                {
                    throw new Exception("DB password is mandatory: DB_PASSWORD=<Password>");
                }
                if (String.IsNullOrEmpty(_params.DBDataBase))
                {
                    throw new Exception("Database is mandatory: DB_DATABASE=<Database>");
                }
                Console.WriteLine("OK!");

                //
                _stage = "Creating connection objects";
                cConnDetails _connDetailsDB   = new cConnDetails(_params.DBServer, _params.DBUser, _params.DBPassword, _params.DBDataBase);
                cConnDetails _connDetailsMail = new cConnDetails(_params.MailServer, _params.MailUser, _params.MailPassword);

                //
                _stage = $"Connecting to {_connDetailsDB.Server}";
                cDataAccess _da = new cDataAccess(_connDetailsDB);
                _da.Connect();

                //
                _stage = "Getting alarms list";
                Recordset _rs = new Recordset("Select Codigo,BD,Tabla,Campo_alarma,Nombre_idreg,idreg_valor,asunto_email,emails_aviso,condicion_alarma,campos_select,flagged=dbo.checkflag(flags,'FLAGGED'),server=isnull(server,''),FechaColumn=dbo.checkflag(flags,'XFEC2FECHA')  from cab_alarmas where dbo.checkFlag(flags,'ACTIVE')=1 and codigo='ALARMTEST'", _da);
                _rs.Open();
                //Dictionary<int, Dictionary<string, string>> _alarms = _rs.ToDictionary();

                //
                string p;
                _stage = "Looping through alarms";

                while (!_rs.EOF)
                {
                    using (cAlarm _alarm = new cAlarm(_da, _rs["Codigo"].ToString(), _rs["BD"].ToString(), _rs["Tabla"].ToString(), _rs["Campo_alarma"].ToString(), _rs["Nombre_idreg"].ToString(), Convert.ToInt32(_rs["idreg_valor"]), _rs["asunto_email"].ToString(), _rs["emails_aviso"].ToString(), _rs["condicion_alarma"].ToString(), _rs["campos_select"].ToString(), Convert.ToInt32(_rs["flagged"]) == 1, _rs["server"].ToString(), Convert.ToInt32(_rs["FechaColumn"]) == 1))
                    {
                        try
                        {
                            //
                            _stage = $"Executing alarm {_alarm.Code}";
                            Console.Write($"> Executing alarm {_alarm.Code}...");
                            _alarm.Process();
                            Console.Write($" {(_alarm.Error ? "ERROR" : "OK")}! Sending {(_alarm.Error ? "error " : "")}email...");

                            //
                            if (_alarm.Triggered || _alarm.Error)
                            {
                                _stage = $"Sending {(_alarm.Error ? "error " : "")} email";
                                using (cEmail _email = new cEmail(_connDetailsMail, _alarm.Error ? _params.MailErrorTo : (!String.IsNullOrEmpty(_params.MailTo) ? _params.MailTo : _alarm.EmailList), $"ALARM: {_alarm.EmailSubject}", _alarm.Contents, error: _alarm.Error))
                                {
                                    if (_alarm.Error)
                                    {
                                        _email.Recipients = _params.MailErrorTo;
                                    }

                                    _email.Send();
                                }
                                Console.WriteLine(" OK!");
                            }
                            else
                            {
                                Console.WriteLine(" Not triggered.");
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                    _rs.MoveNext();
                }

                //
                _stage = "Disconnecting from DB server";
                //_dbt.Disconnect();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[Main#{_stage}] {ex.Message}");
                return;
            }


            Console.WriteLine($"----==== Ending [{_myName}] at {System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} ====----");
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            string _stage  = "Unknown Error";
            string _myName = System.Reflection.Assembly.GetCallingAssembly().GetName().Name;

            try
            {
                Console.WriteLine($"----==== Starting [{_myName}] at {System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} ====----");

                // If the settings file exists, the params will be loaded from it
                _stage = "Loading settings file";
                Console.Write("> Loading settings file... ");
                string[] _lines = File.ReadAllLines((cMiscTools.RunningOS == "Windows" ? Directory.GetCurrentDirectory().Substring(0, 3) : $"/media/bin/{_myName}/") + $"C# Apps Settings\\{_myName}.settings", (Debug)?Encoding.Unicode:Encoding.Default);
                Console.WriteLine("OK");

                //
                _stage = "Creating Parameters object";
                cParameters _params = new cParameters();

                //
                _stage = "Getting settings from file";
                Console.Write("> Loading parameters from settings... ");
                _params.LoadParameters(_lines);
                Console.WriteLine("OK");

                // Just in case there are no data for some or all the mandatory parameters
                _stage                 = "Processing parameters";
                _params.DBServer       = String.IsNullOrEmpty(_params.DBServer) ? "DB01B" : _params.DBServer;
                _params.DBUser         = String.IsNullOrEmpty(_params.DBUser) ? "procesos" : _params.DBUser;
                _params.DBPassword     = String.IsNullOrEmpty(_params.DBPassword) ? "*seso69*" : _params.DBPassword;
                _params.DBDataBase     = String.IsNullOrEmpty(_params.DBDataBase) ? "SISTEMAS" : _params.DBDataBase;
                _params.DBTimeOut      = _params.DBTimeOut == null ? 300 : _params.DBTimeOut;
                _params.DomainServer   = String.IsNullOrEmpty(_params.DomainServer) ? "sauron.systems.espackeuro.com" : _params.DomainServer;
                _params.ExchangeServer = String.IsNullOrEmpty(_params.ExchangeServer) ? "exchange01.systems.espackeuro.com" : _params.ExchangeServer;

                // Create the tuple which contains each server type and its value
                //args = new string[] { /*"NEXTCLOUD=nextcloud.espackeuro.com", */"DOMAIN=sauron.systems.espackeuro.com", "DATABASE=DB01B.local", "EXCHANGE=exchange01.systems.espackeuro.com" };
                args   = new string[] { $"DOMAIN={_params.DomainServer}", $"DATABASE={_params.DBServer}.local", $"EXCHANGE={_params.ExchangeServer}" };
                _stage = "Creating servers tuple";
                args.ToList().ForEach(server =>
                {
                    var tupla = server.Split('=');
                    Values.Servers.Add(tupla[0], tupla[1]);
                });
                Values.DBServer = Values.Servers["DATABASE"];

                //Values.gDatos.Server = Values.Servers["DATABASE"];
                //Values.gDatos.context_info = MasterPassword.MasterBytes;
                //Values.gDatos.TimeOut = 300;
                //Values.gDatos.Connect();
                _stage = "Defining SQL Connection string";
                Values.conn.ConnectionString = new SqlConnectionStringBuilder()
                {
                    InitialCatalog = Values.DataBase,
                    UserID         = Values.User,
                    Password       = Values.Password,
                    DataSource     = Values.DBServer
                }.ConnectionString;

                //
                _stage = "Getting mail domains";
                using (var _domains = new SqlDataAdapter("select domain from MAIL..domain where dbo.CheckFlag(flags,'FORWARD')=1 ", Values.conn))
                {
                    DataTable T = new DataTable();
                    _domains.Fill(T);
                    Values.DomainList = T.Rows.OfType <DataRow>().Select(r => r["domain"].ToString()).ToList();
                    //_domains.Close();
                }

                //
                _stage = "Getting sync flags";
                using (var _frs = new SqlDataAdapter("Select Codigo, DescFlagEng from flags where Servicio='SYNC' and Tabla='Users'", Values.conn))
                {
                    DataTable T = new DataTable();
                    _frs.Fill(T);
                    Values.FlagsDefs = T.Rows.OfType <DataRow>().ToDictionary(dr => dr["Codigo"].ToString(), dr => dr["DescFlagEng"].ToString());//.ToList().Select(fr => new KeyValuePair<string,string>(fr["Codigo"].ToString(), fr["DescFlagEng"].ToString())).ToDictionary<string,string>;
                }

                //
                _stage = "Creating service object";
                if (Environment.UserInteractive)
                {
                    SyncServiceClass service1 = new SyncServiceClass(args);
                    service1.TestStartupAndStop(args);
                }
                else
                {
                    // Put the body of your old Main method here.

                    ServiceBase[] ServicesToRun;
                    ServicesToRun = new ServiceBase[]
                    {
                        new SyncServiceClass(args)
                    };
                    ServiceBase.Run(ServicesToRun);
                }
            } catch (Exception ex)
            {
                Console.WriteLine($"[Main#{_stage}] {ex.Message}");
                return;
            }
        }