示例#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 void GetAccountSubscriptions_InvalidKey()
        {
            IAlertsDal dal = PrepareAlertsDal();
            IAlertsDalGetAccountSubscriptionsParams getGetSubsParams = dal.CreateGetAccountSubscrParams();

            getGetSubsParams.AccountKey = ConfigurationManager.AppSettings["InvalidAccountKey"];

            var getSubsResult = dal.GetAccountSubscriptions(getGetSubsParams);

            Assert.IsTrue(getSubsResult.Success);
            Assert.IsNotNull(getSubsResult.Subscriptions != null);
            Assert.IsEmpty(getSubsResult.Subscriptions);
        }
示例#3
0
        public void GetAccountSubscriptions_Success()
        {
            RunInitSql("000.GetAccountSubscriptions_Success", _conn);

            IAlertsDal dal = PrepareAlertsDal();
            IAlertsDalGetAccountSubscriptionsParams getGetSubsParams = dal.CreateGetAccountSubscrParams();

            getGetSubsParams.AccountKey = ConfigurationManager.AppSettings["AccountKey"];

            var getSubsResult = dal.GetAccountSubscriptions(getGetSubsParams);

            RunFinalizeSql("000.GetAccountSubscriptions_Success", _conn);

            Assert.IsTrue(getSubsResult.Success);
            Assert.IsNotNull(getSubsResult.Subscriptions != null);
            Assert.IsNotEmpty(getSubsResult.Subscriptions);
        }
示例#4
0
        public void RemoveAlertSubscription_Success()
        {
            RunInitSql("030.RemoveAccountSubscription_Success", _conn);

            IAlertsDal dal = PrepareAlertsDal();

            IAlertsDalGetAccountSubscriptionsParams getGetSubsParams = dal.CreateGetAccountSubscrParams();

            getGetSubsParams.AccountKey = ConfigurationManager.AppSettings["AccountKey"];

            var getSubsResult = dal.GetAccountSubscriptions(getGetSubsParams);

            IAlertsDalRemoveAccountSubscrParams remSubParam = dal.CreateRemoveAccountSubscrParams();

            remSubParam.SubscriptionIds.Add(getSubsResult.Subscriptions[0].Id);

            IAlertsDalRemoveAccountSubscrResult updSubsResult = dal.RemoveAlertSubscription(remSubParam);

            RunFinalizeSql("030.RemoveAccountSubscription_Success", _conn);

            Assert.IsTrue(updSubsResult.Success);
        }
示例#5
0
        public void SetAlertSubscriptionStatus_Success()
        {
            RunInitSql("040.SetAccountSubscriptionStatus_Success", _conn);

            IAlertsDal dal = PrepareAlertsDal();

            IAlertsDalGetAccountSubscriptionsParams getGetSubsParams = dal.CreateGetAccountSubscrParams();

            getGetSubsParams.AccountKey = ConfigurationManager.AppSettings["AccountKey"];

            var getSubsResult = dal.GetAccountSubscriptions(getGetSubsParams);

            IAlertsDalSetAlertStatusParams updSubParam = dal.CreateSetAlertStatusParams();

            getSubsResult.Subscriptions[0].StatusId = Int32.Parse(ConfigurationManager.AppSettings["Status_Id_Disabled"]);
            updSubParam.Subscriptions.Add(getSubsResult.Subscriptions[0]);

            IAlertsDalSetAlertStatusResult updSubsResult = dal.SetAlertSubscriptionStatus(updSubParam);

            RunFinalizeSql("040.SetAccountSubscriptionStatus_Success", _conn);

            Assert.IsTrue(updSubsResult.Success);
        }
示例#6
0
        public IAlertsDalGetAccountSubscriptionsResult GetAccountSubscriptions(IAlertsDalGetAccountSubscriptionsParams getSubsParams)
        {
            IAlertsDalGetAccountSubscriptionsResult result = new MSSQL.AlertsDalGetAccountSubscriptionsResult();

            string spName = "[SP_Get_Account_Subscriptions]";

            SqlConnection conn = OpenConnection(connName);

            SqlParameter paramAccountKey = new SqlParameter("@SubscriberAccountKey", SqlDbType.NVarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Current, getSubsParams.AccountKey);

            SqlCommand cmd = new SqlCommand();

            cmd.CommandText = schema + "." + spName;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection  = conn;

            cmd.Parameters.Add(paramAccountKey);

            try
            {
                DataSet        ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;

                da.Fill(ds);

                if (ds != null && ds.Tables != null && ds.Tables.Count > 0)
                {
                    foreach (DataRow r in ds.Tables[0].Rows)
                    {
                        Subscription subs = new Subscription();
                        subs.Id                   = (long)r["Alert_Subscription_Id"];
                        subs.Name                 = !DBNull.Value.Equals(r["Alert_Subscription_Name"]) ? (string)r["Alert_Subscription_Name"] : null;
                        subs.AccountKey           = !DBNull.Value.Equals(r["Subscriber_Account_Key"]) ? (string)r["Subscriber_Account_Key"] : null;
                        subs.TypeId               = (long)r["Alert_Type_Id"];
                        subs.TypeName             = !DBNull.Value.Equals(r["Alert_Type_Name"]) ? (string)r["Alert_Type_Name"] : null;
                        subs.NotificationTypeId   = (long)r["Notification_Type_Id"];
                        subs.NotificationTypeName = !DBNull.Value.Equals(r["Alert_Notification_Type_Value"]) ? (string)r["Alert_Notification_Type_Value"] : null;
                        subs.SubscribedDttm       = (DateTime)r["Subscribed_Dttm"];
                        subs.StatusId             = (long)r["Alert_Subscription_Status_Id"];
                        subs.StatusName           = !DBNull.Value.Equals(r["Alert_Subscription_Status_Value"]) ? (string)r["Alert_Subscription_Status_Value"] : null;

                        if (ds.Tables.Count > 1)
                        {
                            // from second table reading values for this subscription
                            foreach (var v in ds.Tables[1].Select(string.Format("Alert_Subscription_Id = {0}", subs.Id)))
                            {
                                subs.SubscriptionData.Add((string)v["Subscription_Property_Name"], (string)v["Subscription_Property_Value"]);
                            }
                        }

                        result.Subscriptions.Add(subs);
                    }
                }
            }
            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(GetAccountAlerts request)
        {
            GetAccountAlertsResponse response = new GetAccountAlertsResponse();

            TransferHeader(request, response);

            try
            {
                if (IsValidSessionToken(request))
                {
                    IAlertsDalGetAccountSubscriptionsParams getSubsParams = _dal.CreateGetAccountSubscrParams();
                    getSubsParams.AccountKey = request.AccountKey;

                    var getSubsResult = _dal.GetAccountSubscriptions(getSubsParams);
                    if (getSubsResult.Success)
                    {
                        response.Payload.AccountKey = request.AccountKey;
                        foreach (var s in getSubsResult.Subscriptions)
                        {
                            AlertSubscription alertSub = new AlertSubscription()
                            {
                                AlertTypeId        = s.TypeId,
                                ID                 = s.Id,
                                Name               = s.Name,
                                NotificationTypeId = (long)s.NotificationTypeId,
                                Subscribed         = (DateTime)s.SubscribedDttm,
                                StatusId           = s.StatusId
                            };
                            foreach (var p in s.SubscriptionData)
                            {
                                alertSub.Properties.Add(new AlertSubscriptionProperty()
                                {
                                    Name  = p.Key,
                                    Value = p.Value
                                });
                            }

                            response.Payload.Alerts.Add(alertSub);
                        }

                        response.Success = true;
                    }
                    else
                    {
                        response.Success = false;
                        response.Errors.AddRange(getSubsResult.Errors);
                    }
                }
                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);
        }