示例#1
0
 public bool LemurianSignal(string type)
 {
     // Master Controller
     if (type == "master")
     {
         SignalRClients["master"] = this.Context.ConnectionId;
     }
     // Motor
     else if (type == "motor")
     {
         SignalRClients["motor"] = this.Context.ConnectionId;
         SetConnected            = true;
     }
     // Facebook messenger as controller
     else if (type == "messenger")
     {
         if (string.IsNullOrEmpty(SignalRClients["master"]))
         {
             SignalRClients["master"] = "messenger";
         }
     }
     // NLP api
     else if (type == "nlp_api")
     {
         SignalRClients["nlp_api"] = this.Context.ConnectionId;
     }
     // Deal with others
     else
     {
         SignalRClients.Add(this.Context.ConnectionId, type);
     }
     return(true);
 }
 public async Task <JsonResult> Insert()
 {
     try {
         var connID    = Request.Form["connID"];
         var note      = Request.Form["note"];
         var longitude = Request.Form["long"];
         var latitude  = Request.Form["lat"];
         var uid       = Request.Form["UID"];
         //check if meetup already exist
         var meetup = MeetupLocationService.GetByConnectionID(connID, false).FirstOrDefault();
         if (meetup == null)
         {
             //if not create one
             MeetupLocationService.Insert(Guid.NewGuid(), Guid.Parse(connID), true, float.Parse(latitude), float.Parse(longitude), Guid.Parse(uid), note);
         }
         else
         {
             //if already exist update data
             MeetupLocationService.Update(meetup.ID.ToString(), true, Guid.Parse(uid), float.Parse(latitude), float.Parse(longitude), note);
         }
         //invoke signalR to inform connection that this user setup a meetup point
         SignalRClients.NotifyMeetupLocationSet(note, uid, connID);
         return(Json(new { success = true }));
     } catch { return(Json(new { success = false, message = MessageUtility.ServerError() })); }
 }
        public async Task <JsonResult> Insert()
        {
            try {
                var id         = Guid.NewGuid();
                var rfrom      = Request.Form["RF"];
                var rtID       = Request.Form["RTID"];
                var connID     = Request.Form["CID"];
                var connection = ConnectionServices.GetByID(connID);
                //first check if it is already existing
                var temp = RequestService.GetByConnectionIDRTID(connID, rtID);
                if (temp == null)
                {
                    if (RequestService.Insert(id, rfrom, Guid.Parse(rtID), Guid.Parse(connID), false))
                    {
                        SignalRClients.NotifyInvitationSent(connection.ConnectionName, connection.ID.ToString(), rtID);
                        return(Json(new { success = true }));
                    }
                }
                else if (temp.isArchived)
                {
                    //if it already exist and is archived then unarchive it
                    RequestService.UpdateStatus(false, temp.ID.ToString());

                    SignalRClients.NotifyInvitationSent(connection.ConnectionName, connection.ID.ToString(), rtID);
                    return(Json(new { success = true }));
                }
                return(Json(new { success = false, message = MessageUtility.ServerError() }));
            } catch { return(Json(new { success = false, message = MessageUtility.ServerError() })); }
        }
 public async Task <JsonResult> NotifyInvitationAccepted()
 {
     try
     {
         var cid      = Request.Form["cid"];
         var username = Request.Form["uname"];
         SignalRClients.NotifyInvitationAccepted(cid, username);
         return(Json(new { success = true }));
     } catch { return(Json(new { success = false, message = MessageUtility.ServerError() })); }
 }
 public async Task <JsonResult> NotifyNearLocation()
 {
     try {
         var connID   = Request.Form["connID"];
         var uid      = Request.Form["UID"];
         var userName = Request.Form["uname"];
         SignalRClients.NotifyAlreadyInMeetupLocation(uid, userName, connID);
         return(Json(new { success = true }));
     } catch { return(Json(new { success = false, message = MessageUtility.ServerError() })); }
 }
 public async Task <JsonResult> Cancel()
 {
     try {
         var id        = Request.Form["ID"];
         var connID    = Request.Form["connID"];
         var note      = Request.Form["note"];
         var longitude = float.Parse(Request.Form["long"]);
         var latitude  = float.Parse(Request.Form["lat"]);
         var uid       = Guid.Parse(Request.Form["UID"]);
         MeetupLocationService.Update(id, false, uid, latitude, longitude, note);
         SignalRClients.NotifyMeetupLocationCancel(note, uid.ToString(), connID);
         return(Json(new { success = true }));
     } catch { return(Json(new { success = false, message = MessageUtility.ServerError() })); }
 }