public static GsmStatusInfo GetGsmSmsStatusInfo(long responseId, DateTime createDate)
        {
            GsmStatusInfo   smallGsmStatusEntity = new GsmStatusInfo();
            SmsStatusResult smsStatusResult;
            int             messageStatus;

            List <GsmStatusInfo> gsmGetStatusEntitiyList = NotificationOperation.GetGsmSmsStatusOfSingleRecord(responseId, createDate);

            if (gsmGetStatusEntitiyList.Count == 0)
            {
                throw new EsbBusinessException("RecordNotFound");
            }

            if (gsmGetStatusEntitiyList.FirstOrDefault().Status != GsmOperatorStatus.Completed)
            {
                smsStatusResult = BuildSmsStatusRequestByOperator(gsmGetStatusEntitiyList);
                messageStatus   = smsStatusResult.GsmSmsStatusResultList.FirstOrDefault().MessageStatus;

                var gsmOperator                     = gsmGetStatusEntitiyList.FirstOrDefault().Operator;
                GsmOperatorSender sender            = new GsmOperatorSender(gsmOperator);
                string            statusExplanation = sender.GetStatusExplanationFromEnum(messageStatus);

                smallGsmStatusEntity.NotificationResponseId = responseId;
                smallGsmStatusEntity.GsmStatus            = messageStatus.ToString();
                smallGsmStatusEntity.GsmStatusExplanation = statusExplanation;
                smallGsmStatusEntity.DeliveryTime         = smsStatusResult.GsmSmsStatusResultList.FirstOrDefault().MessageDeliveryDate;
                smallGsmStatusEntity.Operator             = gsmOperator;
            }
            else
            {
                smallGsmStatusEntity = gsmGetStatusEntitiyList.FirstOrDefault();
            }

            return(smallGsmStatusEntity);
        }