public IActionResult Post([FromBody] CreateZoneModel model)
        {
            var zone = model.ToZone();

            var id = _zoneRepository.Add(zone);

            return(Ok(id));
        }
Beispiel #2
0
        /// <summary>
        /// Add zone to mentioned AlarmReportingNumber
        /// </summary>
        /// <param name="AlarmReportingNumber">AlarmReportingNumber shall be in city-cs-sub format</param>
        /// /// <param name="ObjZone"></param>
        /// <returns></returns>
        public HttpResponseMessage Post([FromBody] CreateZoneModel ObjZone, string AlarmReportingNumber)
        {
            try
            {
                bool exists = Enum.IsDefined(typeof(DeviceType), ObjZone.DeviceType);
                exists = Enum.IsDefined(typeof(ResponseTypes), ObjZone.ResponseType);
                string[] CityCsSub = AlarmReportingNumber.Split('-');
                string   message   = "";
                if (exists)
                {
                    if (objLead.IsExistingLead(CityCsSub[0], CityCsSub[1], CityCsSub[2]))
                    {
                        //Vaidation Start
                        var validationjson    = File.ReadAllText(jsonVlidationFile);
                        var jvalidationObject = JObject.Parse(validationjson);

                        JArray ZoneValidationMappingArray = (JArray)jvalidationObject["DeviceTypeWithResponseTypeMapper"];

                        string strDeviceType   = ObjZone.DeviceType.ToString();   //below while condition doesn't work with this. See later
                        string strResponseType = ObjZone.ResponseType.ToString(); //below while condition doesn't work with this. See later
                        var    JToken          = ZoneValidationMappingArray.Where(obj => obj["DeviceType"].Value <string>() == strDeviceType).ToList();
                        var    isrespTypeThere = JToken[0].Last().Values().Any(x => x.Value <string>() == strResponseType);
                        //End

                        //Appending

                        var LeadZonesjson    = File.ReadAllText(jsonLeadZonesFile);
                        var jLeadZonesObject = JObject.Parse(LeadZonesjson);

                        JArray LeadZonesArrary = (JArray)jLeadZonesObject["Zones"];

                        CityCSSub objARM = new CityCSSub
                        {
                            CityId       = CityCsSub[0],
                            CsId         = CityCsSub[1],
                            SubscriberId = CityCsSub[2]
                        };
                        ObjZone.CityCsSubId = objARM;


                        string newjson = JsonConvert.SerializeObject(ObjZone);
                        var    newZone = JObject.Parse(newjson);
                        LeadZonesArrary.Add(newZone);


                        jLeadZonesObject["Zones"] = LeadZonesArrary;

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

                        message = "Zones got added for shell account : " + AlarmReportingNumber;
                        return(this.Request.CreateResponse(HttpStatusCode.OK, message));
                    }
                    else
                    {
                        message = AlarmReportingNumber + " shell account doesn't exist.Please use proper AlarmReportingNumber.";
                        return(this.Request.CreateResponse(HttpStatusCode.NotFound, message));
                    }
                    //End
                }
                else
                {
                    message = "Incorrect DeviceType/Response Type";
                    return(this.Request.CreateResponse(HttpStatusCode.BadRequest, message));
                }
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex));
            }
        }