Пример #1
0
        public HttpResponseMessage Patch([FromBody] JsonPatchDocument <CreateShellAccountModel> patch)
        {
            var    json              = File.ReadAllText(jsonFile);
            var    jObject           = JObject.Parse(json);
            JArray experiencesArrary = (JArray)jObject["Shells"];



            var lead = experiencesArrary.FirstOrDefault(obj => obj["AlarmNetAccountDetails"]["CityCSSub"]["CityId"].Value <string>() == "89" &&
                                                        obj["AlarmNetAccountDetails"]["CityCSSub"]["CsId"].Value <string>() == "05" &&
                                                        obj["AlarmNetAccountDetails"]["CityCSSub"]["SubscriberId"].Value <string>() == "0212"
                                                        );


            string jsonObjShellAct          = lead.ToString();
            CreateShellAccountModel contact = JsonConvert.DeserializeObject <CreateShellAccountModel>(jsonObjShellAct);


            //var patched = CreateShellAccountModel.Copy();
            patch.ApplyTo(contact);// ModelState);
            return(Request.CreateResponse(HttpStatusCode.OK, contact));

            //var model = new
            //{
            //    original = contact,
            //    patched = patched
            //};

            //return Ok();
        }
Пример #2
0
        /// <summary>
        /// Creates shell account using Customer details along with Alarmnet and Total Connect information.
        /// </summary>
        /// <param name="ShellObj"></param>
        /// <returns></returns>
        public HttpResponseMessage Post([FromBody] CreateShellAccountModel ShellObj)
        {
            try
            {
                string AlarmReportingNumber = ShellObj.AlarmNetAccountDetails.CityCSSub.CityId + "-" + ShellObj.AlarmNetAccountDetails.CityCSSub.CsId + "-" + ShellObj.AlarmNetAccountDetails.CityCSSub.SubscriberId;
                if (!ModelState.IsValid)
                {
                    string message = string.Join(" | ", ModelState.Values
                                                 .SelectMany(v => v.Errors)
                                                 .Select(e => e.ErrorMessage));
                    return(this.Request.CreateResponse(HttpStatusCode.BadRequest, message));
                }
                else if (IsExistingLead(ShellObj.AlarmNetAccountDetails.CityCSSub.CityId, ShellObj.AlarmNetAccountDetails.CityCSSub.CsId, ShellObj.AlarmNetAccountDetails.CityCSSub.SubscriberId))
                {
                    string message = AlarmReportingNumber + " already present in the system. Please use different subscriberid. Unable to create shell account , please try again.";
                    return(this.Request.CreateResponse(HttpStatusCode.Conflict, message));
                }
                else
                {
                    //Adding Data
                    var    existingjson      = File.ReadAllText(jsonFile);
                    var    jObject1          = JObject.Parse(existingjson);
                    JArray experiencesArrary = (JArray)jObject1["Shells"];

                    string newjson     = JsonConvert.SerializeObject(ShellObj);
                    var    newCustomer = JObject.Parse(newjson);
                    experiencesArrary.Add(newCustomer);


                    jObject1["Shells"] = experiencesArrary;

                    string newJsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(jObject1,
                                                                                       Newtonsoft.Json.Formatting.Indented);
                    File.WriteAllText(jsonFile, newJsonResult);

                    //End

                    //Getting Data

                    var json    = File.ReadAllText(jsonFile);
                    var jObject = JObject.Parse(json);

                    //End


                    var message = Request.CreateResponse(HttpStatusCode.Created, "Shell account successfully created for" + AlarmReportingNumber);
                    message.Headers.Location = new Uri(Request.RequestUri + "/" + AlarmReportingNumber);

                    return(message);
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Пример #3
0
        /// <summary>
        /// Update shell account based on the Alarm Reporting Number
        /// </summary>
        /// <param name="ShellObj"></param>
        /// <param name="AlarmReportingNumber">AlarmReportingNumber shall be in city-cs-sub format</param>
        /// <returns></returns>
        public HttpResponseMessage Put([FromBody] CreateShellAccountModel ShellObj, string AlarmReportingNumber)
        {
            try
            {
                string[] CityCsSub = AlarmReportingNumber.Split('-');
                if (!ModelState.IsValid)
                {
                    string message = string.Join(" | ", ModelState.Values
                                                 .SelectMany(v => v.Errors)
                                                 .Select(e => e.ErrorMessage));
                    return(this.Request.CreateResponse(HttpStatusCode.BadRequest, message));
                }
                else if (IsExistingLead(CityCsSub[0], CityCsSub[1], CityCsSub[2]))
                {
                    //Delete First
                    var    json              = File.ReadAllText(jsonFile);
                    var    jObject           = JObject.Parse(json);
                    JArray experiencesArrary = (JArray)jObject["Shells"];

                    var Leadstobedeleted = experiencesArrary.FirstOrDefault(obj => obj["AlarmNetAccountDetails"]["CityCSSub"]["CityId"].Value <string>() == CityCsSub[0] &&
                                                                            obj["AlarmNetAccountDetails"]["CityCSSub"]["CsId"].Value <string>() == CityCsSub[1] &&
                                                                            obj["AlarmNetAccountDetails"]["CityCSSub"]["SubscriberId"].Value <string>() == CityCsSub[2]
                                                                            );
                    experiencesArrary.Remove(Leadstobedeleted);

                    string newjson         = JsonConvert.SerializeObject(ShellObj);
                    var    updatedCustomer = JObject.Parse(newjson);
                    experiencesArrary.Add(updatedCustomer);

                    string output = Newtonsoft.Json.JsonConvert.SerializeObject(jObject, Newtonsoft.Json.Formatting.Indented);
                    File.WriteAllText(jsonFile, output);

                    string message = AlarmReportingNumber + " shell account updated successfully";
                    return(this.Request.CreateResponse(HttpStatusCode.Conflict, message));
                }
                else
                {
                    string message = AlarmReportingNumber + " doesn't exist in the system.Please use proper AlarmReportingNumber.";
                    return(this.Request.CreateResponse(HttpStatusCode.NotFound, message));
                }
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex));
            }
        }