public IActionResult Post([FromBody] CreateZoneModel model) { var zone = model.ToZone(); var id = _zoneRepository.Add(zone); return(Ok(id)); }
/// <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)); } }