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); }
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); }
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); }
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); }
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); }
//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); }
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); }