public async Task <IHttpActionResult> GetLocation(int id) { SpacesHandler SH = new SpacesHandler(db); TrackerLocationsHandler TLH = new TrackerLocationsHandler(db); StoreysHandler StH = new StoreysHandler(db); TrackerLocation loc = TLH.GetTrackerLocation(id); Dictionary <string, double> Options = new Dictionary <string, double>(); Stream stream = new MemoryStream(loc.Options); BinaryFormatter binfor = new BinaryFormatter(); Options = (Dictionary <string, double>)binfor.Deserialize(stream); List <Option> options = new List <Option>(); foreach (KeyValuePair <string, double> kv in Options) { Space space = SH.GetSpace(Guid.Parse(kv.Key)); Guid spaceID = space.ID; Guid storeyID = space.Storey.ID; Guid buildingID = space.Storey.Building.ID; Option option = new Option(spaceID, storeyID, buildingID, kv.Value); options.Add(option); } KeyValuePair <DateTime, List <Option> > result = new KeyValuePair <DateTime, List <Option> >(loc.TimeStamp, options); return(Json(result)); }
public async Task <IHttpActionResult> PostLocation() { DateTime time = DateTime.Now; TrackersHandler TH = new TrackersHandler(db); TrackerLocationsHandler TLH = new TrackerLocationsHandler(db); SpacesHandler SH = new SpacesHandler(db); KnnsHandler KH = new KnnsHandler(db); string resultString = Request.Content.ReadAsStringAsync().Result.Trim(); KeyValuePair <int, KeyValuePair <Guid, List <double> > > coordinates = LocationParser(resultString); Knn Knn = KH.GetKnn(coordinates.Value.Key); byte[] options = Classify.ClassifyTemplate(coordinates.Value.Value, Knn); Tracker tracker = TH.GetTracker(coordinates.Key); TrackerLocation loc = new TrackerLocation(time, options, tracker); TLH.PostTrackerLocation(loc); return(Ok(Classify.ClassifyTemplate(coordinates.Value.Value, Knn))); }