コード例 #1
0
        public IActionResult Create(PrivateSpace entity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            _privateSpaceservice.Create(entity);

            return(CreatedAtRoute("GetPrivatespace", new { id = entity.Id.ToString() }, entity));
        }
コード例 #2
0
        public IActionResult UpdateByUserId(string id, PrivateSpace entity)
        {
            var user = _privateSpaceservice.GetByUserId(id);

            if (user == null)
            {
                return(NotFound());
            }
            _privateSpaceservice.Updatebyid(id, entity);

            return(CreatedAtRoute("GetPrivatespace", new { id = entity.Id.ToString() }, entity));
        }
コード例 #3
0
        public ActionResult <PrivateSpace> GetByUserId(string id)
        {
            var user = _privateSpaceservice.GetByUserId(id);

            if (user == null)
            {
                PrivateSpace obj = new PrivateSpace();
                obj.UserId = "No-such-user";
                return(obj);
            }

            return(user);
        }
コード例 #4
0
        private void Listen()
        {
            if (Proxy == null)
            {
                Proxy = new Publisher(PrivateSpace, Space, ConcealedSpace);
            }
            Proxy.Running = true;
            while (true)
            {
                var request     = Space.Get("Request", typeof(HubRequestType), typeof(string), typeof(string));
                var identifier  = request.Get <string>(2);
                var requestType = request.Get <HubRequestType>(1);
                var secret      = request.Get <string>(3);

                if (requestType == HubRequestType.EstablishSession)
                {
                    var t = PrivateSpace.QueryP("SessionSecret", typeof(string), identifier);
                    if (t != null)
                    {
                        PrivateSpace.GetAll("SessionSecret", typeof(string), identifier);
                    }
                    using (var me = new ECDiffieHellmanCng())
                    {
                        var herKey = CngKey.Import(Convert.FromBase64String(secret), CngKeyBlobFormat.EccPublicBlob);
                        var ourKey = Convert.ToBase64String(me.DeriveKeyMaterial(herKey));
                        PrivateSpace.Put("SessionSecret", ourKey, identifier);
                        var myKey = Convert.ToBase64String(me.PublicKey.ToByteArray());
                        Space.Put("Response", identifier, HubRequestType.EstablishSession, myKey);
                    }
                    Proxy.SyncIncomingUser(identifier);
                }
                else if (requestType == HubRequestType.TerminateSession)
                {
                    PrivateSpace.GetP("SessionSecret", typeof(string), identifier);
                }
            }
        }
コード例 #5
0
 public void Update(string id, PrivateSpace entity)
 {
     _privateSpace.ReplaceOne(user => user.Id == id, entity);
 }
コード例 #6
0
 public PrivateSpace Create(PrivateSpace entity)
 {
     _privateSpace.InsertOne(entity);
     return(entity);
 }