public IAlertsDalAddAccountSubscrResult AddAlertSubscription(IAlertsDalAddAccountSubscrParams addSubscrParams) { IAlertsDalAddAccountSubscrResult result = new MSSQL.AlertsDalAddAccountSubscrResult(); string spName = "[SP_Add_Alert_Subscription]"; SqlConnection conn = OpenConnection(connName); SqlParameter paramSubsName = new SqlParameter("@Alert_Subscription_Name", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, addSubscrParams.SubscriptonDetails.Name); SqlParameter paramAccountKey = new SqlParameter("@Subscriber_Account_Key", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, addSubscrParams.SubscriptonDetails.AccountKey); SqlParameter paramAlertTypeId = new SqlParameter("@Alert_Type_Id", SqlDbType.BigInt, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, addSubscrParams.SubscriptonDetails.TypeId); SqlParameter paramNotificationTypeId = new SqlParameter("@Notification_Type_Id", SqlDbType.BigInt, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, addSubscrParams.SubscriptonDetails.NotificationTypeId); SqlParameter paramSubscribedDttm = new SqlParameter("@Subscribed_Dttm", SqlDbType.DateTime, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, addSubscrParams.SubscriptonDetails.SubscribedDttm); DataTable dtAlertData = ConverToAlertDataTable(addSubscrParams.SubscriptonDetails); SqlParameter paramAlertData = new SqlParameter("@Subscription_Data", SqlDbType.Structured); paramAlertData.Value = dtAlertData; paramAlertData.TypeName = "TYPE_Alert_Subscription_Data"; paramAlertData.Direction = ParameterDirection.Input; SqlCommand cmd = new SqlCommand(); cmd.CommandText = schema + "." + spName; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = conn; cmd.Parameters.Add(paramSubsName); cmd.Parameters.Add(paramAccountKey); cmd.Parameters.Add(paramAlertTypeId); cmd.Parameters.Add(paramNotificationTypeId); cmd.Parameters.Add(paramSubscribedDttm); cmd.Parameters.Add(paramAlertData); try { cmd.ExecuteNonQuery(); result.Success = true; } catch (Exception ex) { result.Success = false; result.Errors.Add(new Interfaces.Error() { Code = Interfaces.EErrorCodes.AlertsSourceFail, Type = Interfaces.EErrorType.Error, Message = ex.Message }); } conn.Close(); return(result); }
public void AddAlertSubscription_Success() { RunInitSql("010.AddAccountSubscriptions_Success", _conn); IAlertsDal dal = PrepareAlertsDal(); IAlertsDalAddAccountSubscrParams addSubParam = dal.CreateAddAccountSubscrParams(); addSubParam.SubscriptonDetails = new Subscription(); addSubParam.SubscriptonDetails.AccountKey = ConfigurationManager.AppSettings["AccountKey"]; addSubParam.SubscriptonDetails.Name = ConfigurationManager.AppSettings["TestSubscriptionName"]; addSubParam.SubscriptonDetails.NotificationTypeId = Int32.Parse(ConfigurationManager.AppSettings["NotificatioType_Id_CustomUrl"]); addSubParam.SubscriptonDetails.TypeId = Int32.Parse(ConfigurationManager.AppSettings["Alert_Id_10K"]); addSubParam.SubscriptonDetails.SubscribedDttm = DateTime.UtcNow; addSubParam.SubscriptonDetails.SubscriptionData.Add("Url", "http://customurl.com/"); IAlertsDalAddAccountSubscrResult addSubsResult = dal.AddAlertSubscription(addSubParam); RunFinalizeSql("010.AddAccountSubscriptions_Success", _conn); Assert.IsTrue(addSubsResult.Success); }
public object Any(AddAccountAlerts request) { AddAccountAlertsResponse response = new AddAccountAlertsResponse(); TransferHeader(request, response); try { if (IsValidSessionToken(request)) { IAlertsDalAddAccountSubscrParams addSubParams = _dal.CreateAddAccountSubscrParams(); foreach (var a in request.Alerts) { addSubParams.SubscriptonDetails = new Subscription() { AccountKey = request.AccountKey, Name = a.Name, NotificationTypeId = a.NotificationTypeId, SubscribedDttm = DateTime.UtcNow, TypeId = a.AlertTypeId }; foreach (var p in a.Properties) { addSubParams.SubscriptonDetails.SubscriptionData.Add(p.Name, p.Value); } var addSubResult = _dal.AddAlertSubscription(addSubParams); if (addSubResult.Success) { response.Errors.Add(new Error() { Type = EErrorType.Info, Code = EErrorCodes.Success, Message = string.Format("Alert subscription {0} added", a.Name) }); } else { response.Errors.Add(new Error() { Type = EErrorType.Warning, Code = EErrorCodes.AlertsSourceFail, Message = string.Format("Failed to add alert subscription {0}", a.Name) }); } } response.Success = response.Errors.Find(e => e.Type == EErrorType.Error) == null; } else { response.Success = false; response.Errors.Add(new Error() { Code = EErrorCodes.InvalidSession, Type = EErrorType.Error, Message = "Invalid session token" }); } } catch (Exception ex) { response.Success = false; response.Errors.Add(new Interfaces.Error() { Code = Interfaces.EErrorCodes.GeneralError, Type = Interfaces.EErrorType.Error, Message = ex.Message }); } return(response); }