/// <summary> /// medical place accept sos request /// </summary> /// <param name="sosID">a long value</param> /// <param name="hopsitalID">a long value</param> public void AcceptSOS(long sosID, long hopsitalID) { SOSs s = DBEntities.SOSses.Single(sos => sos.ID == sosID); s.MedicalPlaceID = hopsitalID; s.StatusID = 2; // accepted s.IsAccepted = true; DBEntities.SOSses.Attach(s); DBEntities.Entry(s).State = System.Data.Entity.EntityState.Modified; DBEntities.SaveChanges(); }
public JsonResult SendSos(SOSViewModel model) { List <RelationType> relationTypes = citizenBusinessLayer.GetRelationTypes().ToList(); long friend = relationTypes.Single(r => r.Name == "Friend").ID; long parent = relationTypes.Single(r => r.Name == "Parent").ID; long sibling = relationTypes.Single(r => r.Name == "Sibling").ID; int numberOfPlaces = 5; SOSs sos = new SOSs(); var user = User.Identity.GetCitizen(); var pointString = string.Format("POINT({0} {1})", model.Longitude.ToString(), model.Latitude.ToString()); var location = System.Data.Entity.Spatial.DbGeography.FromText(pointString); DateTime time = DateTime.Now; sos.Description = model.Description; sos.SenderID = user.Id; sos.StatusID = 1; // Pending sos.Time = time; sos.IsAccepted = false; sos.Location = location; List <long> citizens = new List <long>(); List <long> contributers = new List <long>(); if (model.IsMedicalPlace) { contributers = (sosBusinessLayer.GetContributersOfSOSsServices(pointString, numberOfPlaces)).Where(s => s.Id != user.Id).Select(s => s.Id).ToList(); } if (model.IsFriend) { citizens = (citizenBusinessLayer.GetCitizenRelatives(user.Id, friend)).Select(c => c.Id).ToList(); } if (model.IsFamily) { citizens = citizens.Union(citizenBusinessLayer.GetCitizenRelatives(user.Id, parent).Select(c => c.Id)).ToList(); citizens = citizens.Union(citizenBusinessLayer.GetCitizenRelatives(user.Id, sibling).Select(c => c.Id)).ToList(); } try { int citizensType = 2; int contributersType = 1; sosBusinessLayer.AddSOS(sos); NotificationsHub.NotifySOS(sos.ID, citizens, citizensType, model.Description, model.Latitude , model.Longitude, user.PhoneNumber); NotificationsHub.NotifySOS(sos.ID, contributers, contributersType, model.Description, model.Latitude , model.Longitude, user.PhoneNumber); return(Json("Your Request is Successfully Sent")); } catch (Exception e) { return(Json(e.Message)); } }
/// <summary> /// Add new SOS to SOSses table in database /// </summary> /// <param name="sos">A SOSs object</param> public void AddSOS(SOSs sos) { DBEntities.SOSses.Add(sos); DBEntities.SaveChanges(); }