public void UpdateAlertSubscription_Success() { RunInitSql("020.UpdateAccountSubscriptions_Success", _conn); IAlertsDal dal = PrepareAlertsDal(); IAlertsDalGetAccountSubscriptionsParams getGetSubsParams = dal.CreateGetAccountSubscrParams(); getGetSubsParams.AccountKey = ConfigurationManager.AppSettings["AccountKey"]; var getSubsResult = dal.GetAccountSubscriptions(getGetSubsParams); IAlertsDalUpdateAccountSubscrParams updSubParam = dal.CreateUpdateAccountSubscrParams(); updSubParam.SubscriptonDetails = new Subscription(); updSubParam.SubscriptonDetails.Id = getSubsResult.Subscriptions[0].Id; updSubParam.SubscriptonDetails.AccountKey = ConfigurationManager.AppSettings["AccountKey"]; updSubParam.SubscriptonDetails.Name = "Test Subscription 02 Updated"; updSubParam.SubscriptonDetails.NotificationTypeId = Int32.Parse(ConfigurationManager.AppSettings["NotificatioType_Id_CustomUrl"]); updSubParam.SubscriptonDetails.SubscribedDttm = DateTime.UtcNow; updSubParam.SubscriptonDetails.SubscriptionData.Add("Url", "http://customurl.com/"); IAlertsDalUpdateAccountSubscrResult updSubsResult = dal.UpdateAlertSubscription(updSubParam); RunFinalizeSql("020.UpdateAccountSubscriptions_Success", _conn); Assert.IsTrue(updSubsResult.Success); }
public IAlertsDalUpdateAccountSubscrResult UpdateAlertSubscription(IAlertsDalUpdateAccountSubscrParams updSubscrParams) { IAlertsDalUpdateAccountSubscrResult result = new MSSQL.AlertsDalUpdateAccountSubscrResult(); string spName = "[SP_Update_Alert_Subscription]"; SqlConnection conn = OpenConnection(connName); SqlParameter paramId = new SqlParameter("@Alert_Subscription_Id", SqlDbType.BigInt, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, updSubscrParams.SubscriptonDetails.Id); SqlParameter paramSubsName = new SqlParameter("@Alert_Subscription_Name", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, ValueOrDBNull(updSubscrParams.SubscriptonDetails.Name)); SqlParameter paramAccountKey = new SqlParameter("@Subscriber_Account_Key", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, ValueOrDBNull(updSubscrParams.SubscriptonDetails.AccountKey)); SqlParameter paramNotificationTypeId = new SqlParameter("@Notification_Type_Id", SqlDbType.BigInt, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, ValueOrDBNull(updSubscrParams.SubscriptonDetails.NotificationTypeId)); SqlParameter paramSubscribedDttm = new SqlParameter("@Subscribed_Dttm", SqlDbType.DateTime, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, ValueOrDBNull(updSubscrParams.SubscriptonDetails.SubscribedDttm)); DataTable dtAlertData = updSubscrParams.SubscriptonDetails.SubscriptionData != null && updSubscrParams.SubscriptonDetails.SubscriptionData.Count > 0 ? ConverToAlertDataTable(updSubscrParams.SubscriptonDetails) : null; SqlParameter paramAlertData = new SqlParameter("@Subscription_Data", SqlDbType.Structured); paramAlertData.Value = ValueOrDBNull(dtAlertData); paramAlertData.TypeName = "TYPE_Alert_Subscription_Data"; paramAlertData.Direction = ParameterDirection.Input; SqlParameter paramSubsDataUpdate = new SqlParameter("@Subscription_Data_Update", SqlDbType.Bit, 0, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, dtAlertData != null ? 1 : 0); SqlCommand cmd = new SqlCommand(); cmd.CommandText = schema + "." + spName; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = conn; try { cmd.Parameters.Add(paramId); cmd.Parameters.Add(paramSubsName); cmd.Parameters.Add(paramAccountKey); cmd.Parameters.Add(paramNotificationTypeId); cmd.Parameters.Add(paramSubscribedDttm); cmd.Parameters.Add(paramSubsDataUpdate); cmd.Parameters.Add(paramAlertData); 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 object Any(UpdateAccountAlerts request) { UpdateAccountAlertsResponse response = new UpdateAccountAlertsResponse(); TransferHeader(request, response); try { if (IsValidSessionToken(request)) { IAlertsDalUpdateAccountSubscrParams updSubParams = _dal.CreateUpdateAccountSubscrParams(); foreach (var a in request.Alerts) { updSubParams.SubscriptonDetails = new Subscription() { Id = a.ID, AccountKey = request.AccountKey, Name = a.Name, NotificationTypeId = a.NotificationTypeId, SubscribedDttm = DateTime.UtcNow, TypeId = a.AlertTypeId }; foreach (var p in a.Properties) { updSubParams.SubscriptonDetails.SubscriptionData.Add(p.Name, p.Value); } var updSubResult = _dal.UpdateAlertSubscription(updSubParams); if (updSubResult.Success) { response.Errors.Add(new Error() { Type = EErrorType.Info, Code = EErrorCodes.Success, Message = string.Format("Alert subscription {0}, {1} updated", a.ID, a.Name) }); } else { response.Errors.Add(new Error() { Type = EErrorType.Warning, Code = EErrorCodes.AlertsSourceFail, Message = string.Format("Failed to update alert subscription {0}, {1}", a.ID, 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); }