Exemplo n.º 1
0
        public async Task <string> Keys()
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Keys = new database_request()
                }
            };
            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            if (response != null)
            {
                try
                {
                    return("\nOwner: " + response.Keys.Keys);
                }
                catch
                {
                    return(response.Error.Message);
                }
            }
            else
            {
                return("Something went wrong.");
            }
        }
Exemplo n.º 2
0
        //admin ops
        public async Task <string> Size()
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Size = new database_request()
                    {
                    }
                }
            };

            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            if (response != null)
            {
                try
                {
                    return("Size of database in bytes: " + response.Size.Bytes.ToString());
                }
                catch
                {
                    return(response.Error.Message);
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 3
0
        public async Task <string> QuickRead(string Key)
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    QuickRead = new database_read()
                    {
                        Key = Key
                    }
                }
            };

            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            if (response != null)
            {
                try
                {
                    return(Encoding.UTF8.GetString(response.Read.Value.ToByteArray()));
                }
                catch
                {
                    return(response.Error.Message);
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        public bzn_envelope BuildRequest(bzn_msg msg, string uuid)
        {
            var env = new bzn_envelope()
            {
                DatabaseMsg = msg.Db.ToByteString(),
            };

            return(env);
        }
Exemplo n.º 5
0
        private async Task <database_response.Types.response> DoRequest(bzn_msg msg, string uuid)
        {
            request_id++;

            var json = BuildRequest(msg, request_id, uuid);

            var response = await SendRequestToSocket(json);

            return(response);
        }
Exemplo n.º 6
0
        public async Task <bool> Delete(string uuid, string key)
        {
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Delete = new database_delete()
                    {
                        Key = key
                    }
                }
            };
            var response = await DoRequest(msg, uuid);

            return(response != null && !string.IsNullOrEmpty(response.Error));
        }
Exemplo n.º 7
0
        public async Task <bool> Create(string uuid, string key, string value)
        {
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Create = new database_create()
                    {
                        Key = key, Value = ByteString.CopyFrom(value, Encoding.UTF8)
                    }
                }
            };
            var response = await DoRequest(msg, uuid);

            return(response == null || !string.IsNullOrEmpty(response.Error));
        }
Exemplo n.º 8
0
        public async Task <bool> DeleteDB()
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    DeleteDb = new database_request()
                }
            };
            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            return(response != null || String.IsNullOrEmpty(response.Error.Message));
        }
Exemplo n.º 9
0
        public bzn_msg SetNonceHeader(bzn_msg msg)
        {
            var uuidInsert = this.uuid;
            // var nonceInsert = GenerateNonce();
            var     nonce          = "127";
            decimal d              = Decimal.Parse(nonce);
            ulong   nonceFormatted = (ulong)(d);
            var     nonceInsert    = nonceFormatted;

            msg.Db.Header = new database_header()
            {
                DbUuid = uuidInsert,
                Nonce  = nonceInsert
            };
            Console.WriteLine(nonceInsert);
            this.nonceMap.Add(nonceInsert, true);

            return(msg);
        }
Exemplo n.º 10
0
        private string BuildRequest(bzn_msg msg, ulong txid, string uuid)
        {
            var root = DataNode.CreateObject();

            msg.Db.Header = new database_header()
            {
                DbUuid = uuid, TransactionId = txid
            };
            root.AddField("bzn-api", "database");
            using (var output = new MemoryStream()) {
                msg.WriteTo(output);

                var data = Convert.ToBase64String(msg.ToByteArray());
                root.AddField("msg", data);
            }

            var json = JSONWriter.WriteToString(root);

            return(json);
        }
Exemplo n.º 11
0
        public async Task <string> Read(string uuid, string key)
        {
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Read = new database_read()
                    {
                        Key = key
                    }
                }
            };
            var response = await DoRequest(msg, uuid);

            if (response == null || !string.IsNullOrEmpty(response.Error))
            {
                return(null);
            }

            return(Encoding.UTF8.GetString(response.Value.ToByteArray()));
        }
Exemplo n.º 12
0
        // CRUD ops
        public async Task <bool> Create(string Key, string value)
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    Create = new database_create()
                    {
                        Key   = Key,
                        Value = ByteString.CopyFrom(value, Encoding.UTF8),
                    }
                }
            };
            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            return(response != null || String.IsNullOrEmpty(response.Error.Message));
        }
Exemplo n.º 13
0
        public async Task <bool> RemoveWriters(string writers)
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    RemoveWriters = new database_writers()
                    {
                    }
                }
            };

            msg.Db.RemoveWriters.Writers.Add(writers);

            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            return(response != null || String.IsNullOrEmpty(response.Error.Message));
        }
Exemplo n.º 14
0
        //DB ops
        public async Task <bool> CreateDB()
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    CreateDb = new database_request()
                }
            };

            msg = this.metadata.SetNonceHeader(msg);
            Console.WriteLine(msg.Db.Header.DbUuid);
            Console.WriteLine(msg.Db.Header.Nonce);
            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            this.metadata.RemoveNonceHeader(response);
            return(response != null || String.IsNullOrEmpty(response.Error.Message));
        }
Exemplo n.º 15
0
        public async Task <bool> HasDB()
        {
            request_id++;
            var msg = new bzn_msg()
            {
                Db = new database_msg()
                {
                    HasDb = new database_has_db()
                }
            };
            var env = this.connection.BuildRequest(msg, this.dbUuid);

            env = this.encrypt.SignEnvelope(env);
            var response = await this.connection.DoRequest(env, this.dbUuid);

            try
            {
                return(response.HasDb.Has);
            }
            catch
            {
                return(false);
            }
        }