public IMQRegisterSubscriberResult RegisterSubscriber(IMQRegisterSubscriberParams paramsRegSubscr) { var result = new DbMQRegisterSubscriberResult(); string spName = "[SP_Register_Subscriber]"; SqlConnection conn = OpenConnection("ConnectionString"); SqlCommand cmd = new SqlCommand(); cmd.CommandText = schema + "." + spName; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = conn; try { SqlParameter paramSubsName = new SqlParameter("@Subscriber_Name", SqlDbType.NVarChar, 255, ParameterDirection.Input, false, 0, 0, "", DataRowVersion.Current, paramsRegSubscr.SubscriberName); SqlParameter paramSubsUrl = new SqlParameter("@Subscriber_Url", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, paramsRegSubscr.SubscriberUrl != null ? (object)paramsRegSubscr.SubscriberUrl : DBNull.Value); SqlParameter paramOutSubsId = new SqlParameter("@Subscriber_Id", SqlDbType.BigInt, 0, ParameterDirection.Output, false, 0, 0, "", DataRowVersion.Current, result.SubscriberId); cmd.Parameters.Add(paramSubsName); cmd.Parameters.Add(paramSubsUrl); cmd.Parameters.Add(paramOutSubsId); cmd.ExecuteNonQuery(); result.SubscriberId = (long)paramOutSubsId.Value; result.Success = true; } catch (Exception ex) { result.Success = false; result.Errors.Add(new Interfaces.Error() { Message = ex.Message, Code = Interfaces.EErrorCodes.MQDbError, Type = Interfaces.EErrorType.Error }); } conn.Close(); return(result); }
public void RegisterSubscriber_Success() { RunInitSql("000.RegisterSubscriber_Success", _conn); IMessageQueue mq = CreateMQ(); IMQRegisterSubscriberParams paramsRegSubscr = mq.CreateRegisterSubscriberParams(); paramsRegSubscr.SubscriberName = ConfigurationManager.AppSettings["SenderName"]; paramsRegSubscr.SubscriberUrl = null; IMQRegisterSubscriberResult result = mq.RegisterSubscriber(paramsRegSubscr); RunFinalizeSql("000.RegisterSubscriber_Success", _conn); Assert.IsNotNull(result); Assert.IsTrue(result.Success); Assert.Greater(result.SubscriberId, 0); }
public void RegisterSubscriber_AlreadyExists() { RunInitSql("001.RegisterSubscriber_AlreadyExists", _conn); IMessageQueue mq = CreateMQ(); IMQRegisterSubscriberParams paramsRegSubscr = mq.CreateRegisterSubscriberParams(); paramsRegSubscr.SubscriberName = ConfigurationManager.AppSettings["SenderName"]; paramsRegSubscr.SubscriberUrl = null; IMQRegisterSubscriberResult result = mq.RegisterSubscriber(paramsRegSubscr); RunFinalizeSql("001.RegisterSubscriber_AlreadyExists", _conn); Assert.IsNotNull(result); Assert.IsFalse(result.Success); Assert.IsNotEmpty(result.Errors); Assert.AreEqual(result.SubscriberId, 0); }
public bool Init(string name) { if (_subscriberId <= 0 && _listener == null) { IMQRegisterSubscriberParams paramsRegSubs = _mq.CreateRegisterSubscriberParams(); paramsRegSubs.SubscriberName = name; var result = _mq.RegisterSubscriber(paramsRegSubs); IMQGetSubscriberIdResult resGetId = null; if (!result.Success) { IMQGetSubscriberIdParams paramGetId = _mq.CreateGetSubscriberIdParams(); paramGetId.SubscriberName = name; resGetId = _mq.GetSubscriberId(paramGetId); if (resGetId.Success) { _subscriberId = (long)resGetId.SubscriberId; } } else { _subscriberId = result.SubscriberId; } _name = name; _listener = new Task(ListenerThread); _isListening = true; _listener.Start(); return(result.Success || (resGetId != null && resGetId.Success)); } else { return(true); } }