示例#1
0
        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);
        }