public ActionResult Post(PositionModel data) { UserMocker.Mock(data.Id); using (var db = new RescContext()) { var position = db.ActivePositions.SingleOrDefault(p => p.FirstResponderId == data.Id); if (position == null) { position = new ActivePosition { FirstResponderId = data.Id } } ; position.Lat = data.Lat; position.Lng = data.Lng; if (position.Id != 0) { db.ActivePositions.Update(position); } else { db.ActivePositions.Add(position); } db.SaveChanges(); } return(Ok()); } }
public ActionResult Post(PushModel data) { UserMocker.Mock(data.Id); using (var db = new RescContext()) { var firstResponder = db.FirstResponders.SingleOrDefault(p => p.Id == data.Id); if (firstResponder == null) { return(Ok("Fail")); } firstResponder.PushEndpoint = data.Endpoint; var tmp = data.Keys.SingleOrDefault(k => k.Key == "auth"); firstResponder.PushAuth = tmp.Value; tmp = data.Keys.SingleOrDefault(k => k.Key == "p256dh"); firstResponder.PushKey = tmp.Value; db.FirstResponders.Update(firstResponder); db.SaveChanges(); } return(Ok()); }
public static void Notify(Intervention intervention) { var radius = GetNearestStation(intervention.Lat, intervention.Lng); var responders = GetRespondersInRadius(radius, intervention.Lat, intervention.Lng); var contr = new PushControllerExtension(); foreach (var responder in responders) { contr.SendNotification(responder, intervention); } using (var db = new RescContext()) { foreach (var responder in responders) { db.FirstResponderInterventions.Add(new FirstResponderIntervention { State = FirstResponderIntervationState.None, FirstResponderId = responder.Id, InterventionId = intervention.Id }); } db.SaveChanges(); } }
public ActionResult Post(InterventionModel data) { using (var db = new RescContext()) { var intervention = new Intervention { Detail = data.Detail, Overview = data.Overview, Lat = data.Lat, Lng = data.Lng, State = IntervationState.Open }; db.Interventions.Add(intervention); db.SaveChanges(); } using (var db = new RescContext()) { var intervention = db.Interventions.Where(i => i.State == IntervationState.Open).LastOrDefault(); if (intervention != null) { InterventionExtension.Notify(intervention); } } return(Ok()); }
public ActionResult <string> Deny(int id) { using (var db = new RescContext()) { var responderInterventions = db.FirstResponderInterventions.Where(i => i.FirstResponderId == id); foreach (var tmp in responderInterventions) { tmp.State = FirstResponderIntervationState.Denied; } db.SaveChanges(); } return(Ok()); }
public static void Mock(int id) { using (var db = new RescContext()) { var user = db.FirstResponders.SingleOrDefault(r => r.Id == id); if (user != null) { return; } user = new FirstResponder { Id = id }; user.Name = "TestName" + id; user.Description = "TestDescription" + id; db.FirstResponders.Add(user); db.SaveChanges(); } }