Beispiel #1
0
        public int ShPull(string userIdentity, string serviceIndication, out tUserData userData)
        {
            tExtendedResult extendedResult;
            var             resultCode = _sh.ShPull(userIdentity, 0, serviceIndication, _originHost, out extendedResult, out userData);

            //Checks to make sure the request was a success and if not throws an exception and tacks on the extended result to the exception.
            _utilities.CheckResultCode(resultCode, extendedResult, null);

            return(resultCode);
        }
Beispiel #2
0
        public void DeleteSubscriber(string dn)
        {
            #region example xml
            //"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
            //"<tUserData xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
            //"<Sh-Data xmlns=\"http://www.metaswitch.com/ems/soap/sh/userdata\">" +
            //"<RepositoryData>" +
            //"<ServiceIndication>" + strServiceIndication + "</ServiceIndication>" +
            //"<SequenceNumber>1</SequenceNumber>" +
            //"<ServiceData>" +
            //"<MetaSwitchData MetaSwitchVersion=\"6.0\" xmlns=\"http://www.metaswitch.com/ems/soap/sh/servicedata\">" +
            //"< ServiceIndication Action=\"delete\">" +
            //"</ ServiceIndication>" +
            //"</MetaSwitchData>" +
            //"</ServiceData>" +
            //"</RepositoryData>" +
            //"</Sh-Data>" +
            //"</tUserData>";
            #endregion

            //var baseInformation = (tMeta_Subscriber_BaseInformation)userData.ShData.RepositoryData.ServiceData.Item.Item;
            //baseInformation.Action = tMeta_Subscriber_BaseInformationAction.delete;

            //userData.ShData.RepositoryData.ServiceData.Item.Item = baseInformation;

            var userData = new tUserData
            {
                ShData = new tShData
                {
                    RepositoryData = new tTransparentData
                    {
                        ServiceIndication = "Meta_Subscriber_BaseInformation",
                        SequenceNumber    = 1, //0 indicates a new subscriber so setting to 1 to avoid confusion.
                        ServiceData       = new tServiceData
                        {
                            Item = new tMetaSwitchData
                            {
                                MetaSwitchVersion    = _metaSwitchVersion,
                                IgnoreSequenceNumber = tTrueFalse.True,
                                ItemElementName      = ItemChoiceType.Meta_Subscriber_BaseInformation,
                                Item = new tMeta_Subscriber_BaseInformation
                                {
                                    Action          = tMeta_Subscriber_BaseInformationAction.delete,
                                    ActionSpecified = true
                                }
                            }
                        }
                    }
                }
            };

            // Send it in as an Sh-Update request, and make sure it succeeded.
            tExtendedResult extendedResult;
            ShUpdate(dn, userData, out extendedResult);
        }
Beispiel #3
0
        public SerializableDictionary <string, string> Validate(tUserData userData)
        {
            var validationErrors = new SerializableDictionary <string, string>();

            if (userData == null)
            {
                validationErrors.Add(LambdaHelper <tUserData> .GetPropertyName(x => x), "UserData is a mandatory field.");
            }
            else
            {
                if (userData.ShData == null)
                {
                    validationErrors.Add(LambdaHelper <tShData> .GetPropertyName(x => x), "ShData is a mandatory field.");
                }
                else
                {
                    if (userData.ShData.RepositoryData == null)
                    {
                        validationErrors.Add(LambdaHelper <tTransparentData> .GetPropertyName(x => x), "RepositoryData is a mandatory field.");
                    }
                    else
                    {
                        if (string.IsNullOrWhiteSpace(userData.ShData.RepositoryData.ServiceIndication))
                        {
                            validationErrors.Add("ServiceIndication", "ServiceIndication is a mandatory field.");
                        }

                        if (userData.ShData.RepositoryData.ServiceData == null)
                        {
                            ItemChoiceType gggg = userData.ShData.RepositoryData.ServiceData.Item.ItemElementName;
                            validationErrors.Add(LambdaHelper <tServiceData> .GetPropertyName(x => x), "ServiceData is a mandatory field.");
                        }
                        else
                        {
                            if (userData.ShData.RepositoryData.ServiceData.Item == null)
                            {
                                validationErrors.Add(LambdaHelper <tMetaSwitchData> .GetPropertyName(x => x), "MetaSwitchData is a mandatory field.");
                            }
                            else
                            {
                            }
                        }
                    }
                }
            }

            return(validationErrors);
        }
Beispiel #4
0
        public void Can_Create_Subscriber()
        {
            //*** ARRANGE ****

            //*** ACT ****
            var userData = new tUserData()
            {
                ShData = new List <tTransparentData>
                {
                    new tTransparentData()
                    {
                        ChangeDescription = null,
                        SequenceNumber    = 99,
                        ServiceIndication = "Msph_Subscriber_BaseInformation",
                        ServiceData       = new tServiceData
                        {
                            Item = new tMetaSphereData
                            {
                                Item = new tMsph_Subscriber_BaseInformation
                                {
                                    DisplayName        = "billy bob",
                                    CoSID              = "20",
                                    PrimaryPhoneNumber = "9374843002"
                                },
                                ItemElementName = ItemChoiceType1.Msph_Subscriber_BaseInformation
                            }
                        }
                    }
                }.ToArray()
            };

            var addUpdate = new MetaSphereUpdate
            {
                EquipmentId = 7,
                Dn          = "9374843002",
                UserData    = userData
            };

            var updateJson = Newtonsoft.Json.JsonConvert.SerializeObject(addUpdate);

            var updateHttpResponse = _client.PostAsync("subscriber/", new StringContent(updateJson, Encoding.UTF8, "application/json")).Result;
            var updateResponse     = updateHttpResponse.Content.ReadAsStringAsync();
            var updateResult       = updateResponse.Result;

            //*** ASSERT ***
            Assert.IsTrue(true);
            Assert.IsNotNull(updateResult);
        }
Beispiel #5
0
        public int ShUpdate(string dn, tUserData userData, out tExtendedResult extendedResult, bool updateExisting = false)
        {
            //The apply action tells the web service to apply the settings supplied in the field elements, creating
            //or modifying the objects as required. This is the default action, and is the behavior if the Action
            //attribute is not specified explicitly
            //this is why you may not see action specified in the script or here.


            if (string.IsNullOrEmpty(dn))
            {
                throw new Exception(MethodBase.GetCurrentMethod().Name + ": dn is required and was not supplied.");
            }

            if (userData == null)
            {
                throw new Exception(MethodBase.GetCurrentMethod().Name + ": userData is required and was not supplied.");
            }

            if (updateExisting)
            {
                var serviceIndication = userData.ShData[0].ServiceIndication;

                var sequenceNumber = RetrieveCurrentSequenceNumber(dn, serviceIndication);
                if (sequenceNumber > 0)
                {
                    userData.ShData[0].SequenceNumber = _utilities.IncrementSequenceNumber(sequenceNumber);
                }
                else
                {
                    //if the subscriber doesn't exist then forcing a sequence number of 0 and forcing not to ignore sequence number.
                    userData.ShData[0].SequenceNumber = 0;
                }
            }

            //tMeta_Subscriber_Alarms alarms;
            var resultCode = _sh.ShUpdate(dn, 0, userData, _originHost, out extendedResult);

            //Checks to make sure the request was a success and if not throws an exception and tacks on the extended result to the exception.
            _utilities.CheckResultCode(resultCode, extendedResult, null);

            return(resultCode);

            //alarms = RetrieveAlarms(dn);
        }
Beispiel #6
0
        //public void DeleteSubscriber(string dn)
        //{
        //    //When using Sh-Update to delete an object, you must specify a sequence number but it can be any
        //    //arbitrary non-zero value.
        //    //The only element that can be present in the <MetaSwitchData> or <MetaSphereData> element is
        //    //the service indication with Action="delete". Any other elements will cause an error.

        //    var userData = new MetaSphere.tUserData
        //    {
        //        ShData = new[]
        //        {
        //            new tTransparentData
        //            {
        //                ServiceIndication = "Msph_Subscriber_BaseInformation",
        //                SequenceNumber = 1, //0 indicates a new subscriber so setting to 1 to avoid confusion. When deleting any sequence number outside of 0 can be used.
        //                ServiceData = new tServiceData
        //                {
        //                    Item = new tMetaSphereData
        //                    {
        //                        ItemElementName = MetaSphere.ItemChoiceType1.Msph_Subscriber_BaseInformation,
        //                        Item = new tMsph_Subscriber_BaseInformation
        //                        {
        //                            PrimaryPhoneNumber = dn,
        //                            Action = "delete",

        //                        }
        //                    }
        //                }

        //            }
        //        }
        //    };

        //    // Send it in as an Sh-Update request, and make sure it succeeded.
        //    MetaSphere.tExtendedResult extendedResult;
        //    ShUpdate(dn, userData, out extendedResult);
        //}

        public SerializableDictionary <string, string> Validate(tUserData userData)
        {
            //update.UserData.ShData[0].ServiceData.Item.Item
            var validationErrors = new SerializableDictionary <string, string>();

            if (userData == null)
            {
                validationErrors.Add(LambdaHelper <tUserData> .GetPropertyName(x => x), "UserData is a mandatory field.");
            }
            else
            {
                if (userData.ShData == null)
                {
                    validationErrors.Add(LambdaHelper <tTransparentData> .GetPropertyName(x => x),
                                         "TransparentData is a mandatory field.");
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(userData.ShData[0].ServiceIndication))
                    {
                        validationErrors.Add("ServiceIndication", "ServiceIndication is a mandatory field.");
                    }

                    if (userData.ShData[0].ServiceData == null)
                    {
                        validationErrors.Add(LambdaHelper <tServiceData> .GetPropertyName(x => x),
                                             "ServiceData is a mandatory field.");
                    }
                    else
                    {
                        if (userData.ShData[0].ServiceData.Item == null)
                        {
                            validationErrors.Add(LambdaHelper <tMetaSphereData> .GetPropertyName(x => x),
                                                 "MetaSphereData is a mandatory field.");
                        }
                        else
                        {
                        }
                    }
                }
            }

            return(validationErrors);
        }
Beispiel #7
0
        public int ShUpdate(string dn, tUserData userData, out tExtendedResult extendedResult, bool updateExisting = false)
        {
            if (string.IsNullOrEmpty(dn))
            {
                throw new Exception(MethodBase.GetCurrentMethod().Name + ": dn is required and was not supplied.");
            }

            if (userData == null)
            {
                throw new Exception(MethodBase.GetCurrentMethod().Name + ": userData is required and was not supplied.");
            }

            if (updateExisting)
            {
                var serviceIndication = userData.ShData.RepositoryData.ServiceIndication;
                var sequenceNumber    = RetrieveCurrentSequenceNumber(dn, serviceIndication);
                if (sequenceNumber > 0)
                {
                    userData.ShData.RepositoryData.SequenceNumber = _utilities.IncrementSequenceNumber(sequenceNumber);
                    userData.ShData.RepositoryData.ServiceData.Item.IgnoreSequenceNumber = tTrueFalse.False;
                }
                else
                {
                    //if the subscriber doesn't exist then forcing a sequence number of 0 and forcing not to ignore sequence number.
                    userData.ShData.RepositoryData.SequenceNumber = 0;
                    userData.ShData.RepositoryData.ServiceData.Item.IgnoreSequenceNumber = tTrueFalse.False;
                }
            }

            //tMeta_Subscriber_Alarms alarms;
            var resultCode = _sh.ShUpdate(dn, 0, userData, _originHost, out extendedResult);

            //Checks to make sure the request was a success and if not throws an exception and tacks on the extended result to the exception.
            _utilities.CheckResultCode(resultCode, extendedResult, null);

            return(resultCode);

            //alarms = RetrieveAlarms(dn);
        }
        /// <summary>
        /// Finds the current sequence number within the user data and increments it, wrapping if necessary, so that the server accepts the change.
        /// </summary>
        /// <param name="userData">IN/OUT The user data.</param>
        public void IncrementSequenceNumber(ref tUserData userData)
        {
            var repositoryData = userData.ShData.RepositoryData;

            repositoryData.SequenceNumber = IncrementSequenceNumber(repositoryData.SequenceNumber);
        }