コード例 #1
0
        /// <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();
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
 /// <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();
 }