Exemplo n.º 1
0
        public bool SelectFromDbMethod()
        {
            DbEntity result;

            PushNotificationsLists.ListNotificationsForSend.Clear();

            try
            {
                OracleConnection conn = DBUtils.GetDBConnection();
                // Создать объект Command.
                OracleCommand cmd = new OracleCommand();

                // Сочетать Command с Connection.
                cmd.Connection  = conn;
                cmd.CommandText = procedure1;

                try
                {
                    if (conn?.State != System.Data.ConnectionState.Open)
                    {
                        conn.Open();
                    }

                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            int numberOfColumns = reader.FieldCount;

                            while (reader.Read())
                            {
                                result = new DbEntity();

                                for (int i = 0; i < numberOfColumns; i++)
                                {
                                    string nameOfColumn = reader.GetName(i);
                                    int    indexOfFiled = reader.GetOrdinal(nameOfColumn);
                                    object fieldValue   = reader.GetValue(indexOfFiled);

                                    switch (nameOfColumn)
                                    {
                                    case "MSG_ID":          result.Message_id = fieldValue.ToString();              break;

                                    case "MSG_TEXT":        result.Message_text = fieldValue.ToString();    break;

                                    case "PUSH_ID":         result.Push_id = fieldValue.ToString();                 break;

                                    case "PHONE":           result.Phone = fieldValue.ToString();                   break;

                                    case "SERVICE_ID":      result.Service_id = fieldValue.ToString();              break;

                                    case "SERVICE_NAME": result.Service_name = fieldValue.ToString();        break;

                                    case "MSG_TTL":         result.Msg_Ttl = Convert.ToInt32(fieldValue);   break;

                                    default:
                                        Console.WriteLine($"Неизвестная ошибка. Поле [{nameOfColumn}] не опознано");
                                        return(false);
                                    }
                                }

                                PushNotificationsLists.ListNotificationsForSend.Add(result);
                            }
                        }
                        else
                        {
#if DEBUG
                            Console.WriteLine("В БД нет новых данных для считывания");
#endif
                            return(false);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("## ERROR: " + ex.Message);
                    return(false);
                }
                finally
                {
                    cmd.CommandText = "ROLLBACK";
                    if (conn?.State != System.Data.ConnectionState.Open)
                    {
                        conn.Open();
                    }
                    cmd.ExecuteNonQuery();

                    if (conn.State != System.Data.ConnectionState.Closed)
                    {
                        conn.Close();
                    }
                    conn?.Dispose();
                }

#if DEBUG
                Console.WriteLine("\n=====================\r\n============List of Android entities: =========");
                foreach (var item in
                         PushNotificationsLists
                         .ListNotificationsForSend
                         .Where(el => el.Service_name == "FCM"))
                {
                    Console.WriteLine("=================");
                    Console.WriteLine($"{nameof(item.Message_id)}	:\t	{item.Message_id}");
                    Console.WriteLine($"{nameof(item.Message_text)} :\t	{item.Message_text}");
                    Console.WriteLine($"{nameof(item.Push_id)}		:\t	{item.Push_id}");
                    Console.WriteLine($"{nameof(item.Phone)}		:\t	{item.Phone}");
                    Console.WriteLine($"{nameof(item.Service_id)}	:\t	{item.Service_id}");
                    Console.WriteLine($"{nameof(item.Service_name)}	:\t	{item.Service_name}");
                    Console.WriteLine($"{nameof(item.Msg_Ttl)}		:\t	{item.Msg_Ttl}");
                }
                Console.WriteLine("\n=====================\r\n============End of the List of Android ========");

                Console.WriteLine("\n=====================\r\n================List of IOs entities: =========");
                foreach (var item in
                         PushNotificationsLists
                         .ListNotificationsForSend
                         .Where(el => el.Service_name == "APNS"))
                {
                    Console.WriteLine("=================");
                    Console.WriteLine($"{nameof(item.Message_id)}	:\t	{item.Message_id}");
                    Console.WriteLine($"{nameof(item.Message_text)} :\t	{item.Message_text}");
                    Console.WriteLine($"{nameof(item.Push_id)}		:\t	{item.Push_id}");
                    Console.WriteLine($"{nameof(item.Phone)}		:\t	{item.Phone}");
                    Console.WriteLine($"{nameof(item.Service_id)}	:\t	{item.Service_id}");
                    Console.WriteLine($"{nameof(item.Service_name)}	:\t	{item.Service_name}");
                    Console.WriteLine($"{nameof(item.Msg_Ttl)}		:\t	{item.Msg_Ttl}");
                }
                Console.WriteLine("\n=====================\r\n============End of the List of IOs ============");
                Console.WriteLine($"Количество записей для отправки: {PushNotificationsLists.ListNotificationsForSend.Count}");
#endif
                return(PushNotificationsLists.ListNotificationsForSend.Count != 0);
            }

            catch (Exception ex)
            {
                Console.WriteLine($"Error: Exception.Message = [{ex.Message}], Exception.StackTrace = [{ex.StackTrace}]");
                return(false);
            }
        }
Exemplo n.º 2
0
        public void SendToDb(List <InvalidPush> input)
        {
#if DEBUG
            Console.WriteLine("Вошли в метод SendToDb");
#endif

            inAnswer = input.ToString();

            OracleConnection conn = DBUtils.GetDBConnection();
#if DEBUG
            Console.WriteLine("Отправляем ответ ***************в БД");
#endif

            OracleCommand cmd = new OracleCommand(procedure, conn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.Add(nameof(inAnswer), OracleDbType.Clob);

            cmd.Parameters.Add(new OracleParameter(nameof(outErrCode), OracleDbType.Int32));
            cmd.Parameters.Add(new OracleParameter(nameof(outErrText), OracleDbType.Varchar2));

            cmd.Parameters[nameof(inAnswer)].Direction   = System.Data.ParameterDirection.Input;
            cmd.Parameters[nameof(outErrCode)].Direction = System.Data.ParameterDirection.Output;
            cmd.Parameters[nameof(outErrText)].Direction = System.Data.ParameterDirection.Output;

            cmd.Parameters[nameof(inAnswer)].Value = inAnswer;

            try
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }
                cmd.ExecuteNonQuery();
#if DEBUG
                Console.WriteLine($"Процедура {procedure} извлечена успешно");
#endif
                inAnswer   = cmd.Parameters[nameof(inAnswer)].Value.ToString();
                outErrCode = Convert.ToInt32(cmd.Parameters[nameof(outErrCode)].Value?.ToString());
                outErrText = cmd.Parameters[nameof(outErrText)].Value.ToString();

#if DEBUG
                Console.WriteLine(cmd.Parameters[nameof(inAnswer)].ParameterName + "\t:\t" + inAnswer);
                Console.WriteLine(cmd.Parameters[nameof(outErrCode)].ParameterName + "\t:\t" + outErrCode);
                Console.WriteLine(cmd.Parameters[nameof(outErrText)].ParameterName + "\t:\t" + outErrText);
#endif
#if !DEBUG
                if (outErrCode != 0)
                {
                    Console.WriteLine(cmd.Parameters[nameof(outErrText)].ParameterName + "\t:\t" + outErrText);
                }
#endif
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex);
                //Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
                conn?.Dispose();
            }
        }
Exemplo n.º 3
0
        //static private ResponseEntity pushResult;

        public static void SendAnswer(DbEntity record, ResponseEntity pushResult)
        {
#if DEBUG
            Console.WriteLine("Вошли в метод SendAnswer");
#endif
            //pushResult = result;

            inMsg_id = pushResult.MessageId;
            inAnswer = GetResponseXml(pushResult).ToString();
            inStatus = pushResult.Exception == null
                                                        ? 1
                                                        : -1;


            OracleConnection conn = DBUtils.GetDBConnection();
#if DEBUG
            Console.WriteLine("Отправляем ответ от сервера PUSH в БД");
#endif

            OracleCommand cmd = new OracleCommand(procedure, conn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.Add(nameof(inMsg_id), OracleDbType.Varchar2);
            cmd.Parameters.Add(nameof(inStatus), OracleDbType.Int32);
            cmd.Parameters.Add(nameof(inAnswer), OracleDbType.Clob);

            cmd.Parameters.Add(new OracleParameter(nameof(outErrCode), OracleDbType.Int32));
            cmd.Parameters.Add(new OracleParameter(nameof(outErrText), OracleDbType.Varchar2));

            cmd.Parameters[nameof(inMsg_id)].Direction   = System.Data.ParameterDirection.Input;
            cmd.Parameters[nameof(inStatus)].Direction   = System.Data.ParameterDirection.Input;
            cmd.Parameters[nameof(inAnswer)].Direction   = System.Data.ParameterDirection.Input;
            cmd.Parameters[nameof(outErrCode)].Direction = System.Data.ParameterDirection.Output;
            cmd.Parameters[nameof(outErrText)].Direction = System.Data.ParameterDirection.Output;

            cmd.Parameters[nameof(inMsg_id)].Value = inMsg_id;
            cmd.Parameters[nameof(inAnswer)].Value = inAnswer;
            cmd.Parameters[nameof(inStatus)].Value = inStatus;

            try
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }
                cmd.ExecuteNonQuery();
#if DEBUG
                Console.WriteLine($"Процедура {procedure} извлечена успешно");
#endif
                inMsg_id   = cmd.Parameters[nameof(inMsg_id)].Value.ToString();
                inStatus   = Convert.ToInt32(cmd.Parameters[nameof(inStatus)].Value?.ToString());
                inAnswer   = cmd.Parameters[nameof(inAnswer)].Value.ToString();
                outErrCode = Convert.ToInt32(cmd.Parameters[nameof(outErrCode)].Value?.ToString());
                outErrText = cmd.Parameters[nameof(outErrText)].Value.ToString();

#if DEBUG
                Console.WriteLine(cmd.Parameters[nameof(inMsg_id)].ParameterName + "\t:\t" + inMsg_id);
                Console.WriteLine(cmd.Parameters[nameof(inStatus)].ParameterName + "\t:\t" + inStatus);
                Console.WriteLine(cmd.Parameters[nameof(inAnswer)].ParameterName + "\t:\t" + inAnswer);
                Console.WriteLine(cmd.Parameters[nameof(outErrCode)].ParameterName + "\t:\t" + outErrCode);
                Console.WriteLine(cmd.Parameters[nameof(outErrText)].ParameterName + "\t:\t" + outErrText);
#endif

                record.outErrCode = Convert.ToInt32(cmd.Parameters[nameof(outErrCode)].Value.ToString());
                record.outErrText = cmd.Parameters[nameof(outErrText)].Value?.ToString();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex);
                //Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
                conn?.Dispose();

                //ErrorInfoClass.Dispose(responseEntity);
                //if ( ErrorInfoClass.ResponseEntities.All(en => en.Equals(responseEntity)) )
                //{
                //	ErrorInfoClass.ResponseEntities = new System.Collections.Generic.List<ResponseEntity>();
                //}
            }
        }