Пример #1
0
        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);
        }
Пример #2
0
        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);
        }