예제 #1
0
        // -----------------------------------------------------
        //    List clients
        // -----------------------------------------------------
        public static List <BackendStatus> List(HeaderInfo headerInfo)
        {
            List <BackendStatus> retBackendStatusList = new List <BackendStatus>();

            using (var connection = new MySqlConnection(ConnString.ConnectionString))
            {
                var commandString = string.Format(
                    " SELECT " +
                    " UID, " +
                    " ProcessName, " +
                    " ReportDateTime, " +
                    " Details, " +
                    " Status " +
                    "  FROM backendstatus" +
                    " WHERE ProcessName = @processName" +
                    "  ORDER BY UID DESC "
                    );

                using (var command = new MySqlCommand(
                           commandString, connection))
                {
                    connection.Open();

                    try
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                BackendStatus backendStatus = new BackendStatus();

                                try { backendStatus.UID = Convert.ToInt32(reader[FCMDBFieldName.BackendStatus.UID]); }
                                catch { backendStatus.UID = 0; }

                                backendStatus.ProcessName = reader[FCMDBFieldName.BackendStatus.ProcessName] as string;
                                backendStatus.Details     = reader[FCMDBFieldName.BackendStatus.Details] as string;
                                backendStatus.Status      = reader[FCMDBFieldName.BackendStatus.Status] as string;

                                try { backendStatus.ReportDateTime = Convert.ToDateTime(reader[FCMDBFieldName.BackendStatus.UID]); }
                                catch { backendStatus.ReportDateTime = DateTime.Today; }

                                retBackendStatusList.Add(backendStatus);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        string error = ex.ToString();
                        LogFile.WriteToTodaysLogFile(ex.ToString(), headerInfo.UserID, "", "Client.cs");
                    }
                }
            }

            return(retBackendStatusList);
        }
예제 #2
0
        // -----------------------------------------------------
        //    List clients
        // -----------------------------------------------------
        public static BackendStatus ReadLast(HeaderInfo headerInfo, string processName)
        {
            var retBackendStatus = new BackendStatus();

            using (var connection = new MySqlConnection(ConnString.ConnectionString))
            {
                var commandString = string.Format(
                    " SELECT " +
                    " UID, " +
                    " ProcessName, " +
                    " ReportDateTime, " +
                    " Details, " +
                    " Status " +
                    "  FROM backendstatus" +
                    " WHERE ProcessName = @processName" +
                    "  ORDER BY UID DESC "
                    );

                using (var command = new MySqlCommand(
                           commandString, connection))
                {
                    connection.Open();

                    command.Parameters.Add("@processName", MySqlDbType.VarChar).Value = processName;

                    try
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                try { retBackendStatus.UID = Convert.ToInt32(reader[FCMDBFieldName.BackendStatus.UID]); }
                                catch { retBackendStatus.UID = 0; }
                                try { retBackendStatus.ReportDateTime = Convert.ToDateTime(reader[FCMDBFieldName.BackendStatus.ReportDateTime]); }
                                catch { retBackendStatus.ReportDateTime = DateTime.Today; }

                                retBackendStatus.ProcessName = reader[FCMDBFieldName.BackendStatus.ProcessName] as string;
                                retBackendStatus.Details     = reader[FCMDBFieldName.BackendStatus.Details] as string;
                                retBackendStatus.Status      = reader[FCMDBFieldName.BackendStatus.Status] as string;

                                break;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        string error = ex.ToString();
                        LogFile.WriteToTodaysLogFile(ex.ToString(), headerInfo.UserID, "", "Client.cs");
                    }
                }
            }

            return(retBackendStatus);
        }
예제 #3
0
        /// <summary>
        /// Report current process status
        /// </summary>
        public static BackendStatus ReportStatus(HeaderInfo headerInfo, string processName, string details, string status = "ACTIVE")
        {
            BackendStatus backendStatus = new BackendStatus();

            backendStatus.Status         = status;
            backendStatus.ProcessName    = processName;
            backendStatus.Details        = details;
            backendStatus.ReportDateTime = DateTime.Now;

            RepBackendStatus.Insert(headerInfo, backendStatus);
            return(backendStatus);
        }
예제 #4
0
        /// <summary>
        /// Add new Client
        /// </summary>
        /// <returns></returns>
        public static void Insert(HeaderInfo headerInfo, BackendStatus backendStatus, MySqlConnection connection = null)
        {
            int uid = 0;

            int nextUID = GetLastUID() + 1;

            backendStatus.UID = uid;

            if (connection == null)
            {
                connection = new MySqlConnection(ConnString.ConnectionString);
                connection.Open();
            }

            var commandString =
                (
                    "INSERT INTO backendstatus " +
                    "(" +
                    FCMDBFieldName.BackendStatus.UID
                    + "," + FCMDBFieldName.BackendStatus.ProcessName
                    + "," + FCMDBFieldName.BackendStatus.ReportDateTime
                    + "," + FCMDBFieldName.BackendStatus.Details
                    + "," + FCMDBFieldName.BackendStatus.Status
                    + ")" +
                    " VALUES " +
                    "( @UID     " +
                    ", @ProcessName    " +
                    ", @ReportDateTime    " +
                    ", @Details    " +
                    ", @Status    " +
                    " )"

                );

            using (var command = new MySqlCommand(
                       commandString, connection))
            {
                command.Parameters.Add("@UID", MySqlDbType.Int32).Value                  = nextUID;
                command.Parameters.Add("@ProcessName", MySqlDbType.VarChar).Value        = backendStatus.ProcessName;
                command.Parameters.Add("@Status", MySqlDbType.VarChar).Value             = backendStatus.Status;
                command.Parameters.Add("@Details", MySqlDbType.VarChar).Value            = backendStatus.Details;
                command.Parameters.Add("@ReportDateTime", MySqlDbType.DateTime, 8).Value = backendStatus.ReportDateTime;

                command.ExecuteNonQuery();
            }

            backendStatus.UID = nextUID;

            return;
        }
예제 #5
0
 private void IndexDownloader_BackendStatusChanged(object sender, BackendStatus e)
 {
     Backend = e;
 }