Example #1
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);
        }
Example #2
0
        public HttpResponseMessage Update([FromBody] MetaSphereUpdate update)
        {
            try
            {
                if (update == null)
                {
                    throw new Exception(MethodBase.GetCurrentMethod().Name + ": update is required and was not supplied.");
                }

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

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

                _logger.WriteLogEntry(_tenantId.ToString(), null, string.Format(MethodBase.GetCurrentMethod().Name + " in ProvisioningAPI was called." + Environment.NewLine + update), LogLevelType.Info);

                var equipmentConnectionSetting = Setup(update.EquipmentId);

                if (equipmentConnectionSetting == null)
                {
                    throw new Exception(MethodBase.GetCurrentMethod().Name + ": Unable to retrieve equipment settings on equipment id " + update.EquipmentId + ".");
                }

                if (string.IsNullOrEmpty(equipmentConnectionSetting.Url))
                {
                    throw new Exception(MethodBase.GetCurrentMethod().Name + ": Settings.URL is not populated for equipment id" + update.EquipmentId + ".");
                }

                //Since this is generic object serialize does not now how serialize it.
                //string json = Newtonsoft.Json.JsonConvert.SerializeObject(update.UserData.ShData);
                //var type2 = Type.GetType(string.Concat("Common.MetaSwitch.t", update.UserData.ShData.ItemElementName, ", Common.Lib.Integration"), true);
                //update.UserData.ShData.RepositoryData.ServiceData.Item.Item = Newtonsoft.Json.JsonConvert.DeserializeObject(json, type);

                //Since this is generic object serialize does not now how serialize it.
                //assuming theres exactly 1 shdata.
                string json = Newtonsoft.Json.JsonConvert.SerializeObject(update.UserData.ShData.First().ServiceData.Item.Item);
                var    type = Type.GetType(string.Concat("Common.MetaSphere.t" + update.UserData.ShData.First().ServiceData.Item.ItemElementName, ", Common.Lib.Integration"), true);
                update.UserData.ShData.First().ServiceData.Item.Item = Newtonsoft.Json.JsonConvert.DeserializeObject(json, type);

                var metaSphereService = new MetaSphereService(equipmentConnectionSetting, _logger);

                var validationErrors = metaSphereService.Validate(update.UserData);
                if (validationErrors.Any())
                {
                    var sb = new StringBuilder();
                    foreach (var validationError in validationErrors)
                    {
                        sb.Append(String.Format("{0}:{1}", validationError.Key, validationError.Value));
                        sb.AppendLine();
                    }
                    throw new Exception(MethodBase.GetCurrentMethod().Name + ":" + Environment.NewLine + sb);
                }

                tExtendedResult extendedResult;
                metaSphereService.ShUpdate(update.Dn, update.UserData, out extendedResult, true);

                _logger.WriteLogEntry(_tenantId.ToString(), null, string.Format(MethodBase.GetCurrentMethod().Name + " in ProvisioningAPI.  Response({0})", HttpStatusCode.OK), LogLevelType.Info);

                return(this.Request.CreateResponse(HttpStatusCode.OK, extendedResult));
            }
            catch (Exception ex)
            {
                _logger.WriteLogEntry(_tenantId.ToString(), null, string.Format(MethodBase.GetCurrentMethod().Name + " in ProvisioningAPI. Response."), LogLevelType.Error, ex);
                throw;
            }
        }