示例#1
0
        public async Task <string> Get(string docGuid, string code, string storagePath)
        {
            // 1. Verify code matched for doc
            var codeController = new CodeController(Config);
            var verifiedCode   = await codeController.getCode(docGuid);

            if (verifiedCode == code)
            {
                // 2. Get existing blockusign1/{docGuid}.doc.storage.map.json
                DocStorageMapModel docStorageMap = await GetDocStorageMap(docGuid);

                if (!docStorageMap.storagePaths.Contains(storagePath))
                {
                    docStorageMap.storagePaths.Add(storagePath);
                }

                // 3. Write to blockusign1/{docGuid}.doc.storage.map.json
                var results = WriteDocStorageMap(docGuid, docStorageMap);
                return(JsonConvert.SerializeObject(results));
            }
            else
            {
                return("code not verified");
            }
        }
示例#2
0
        public async Task <DocStorageMapModel> WriteDocStorageMap(string docGuid, DocStorageMapModel docStorageMap)
        {
            var password  = Config["EmailConfirmKey"];
            var gaiaToken = Config["GaiaToken"];

            string json     = JsonConvert.SerializeObject(docStorageMap);
            var    client2  = new RestClient($"https://hub.blockstack.org/store/1PoZGGAuQ4yPj72TrXbG4pKbgB9tvCUqQ1/blockusign/{docGuid}.doc.storage.map.json");
            var    request2 = new RestRequest(Method.POST);

            request2.AddHeader("Content-Type", "application/json");
            request2.AddHeader("Authorization", gaiaToken);
            request2.AddParameter("application/json", json, ParameterType.RequestBody);
            IRestResponse response2 = client2.Execute(request2);

            if (response2.IsSuccessful)
            {
                return(await GetDocStorageMap(docGuid));
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        public async Task <DocStorageMapModel> GetDocStorageMap(string docGuid)
        {
            var           client   = new RestClient($"https://gaia.blockstack.org/hub/1PoZGGAuQ4yPj72TrXbG4pKbgB9tvCUqQ1/blockusign/{docGuid}.doc.storage.map.json");
            var           request  = new RestRequest(Method.GET);
            IRestResponse response = await client.ExecuteAsync(request);

            if (response.IsSuccessful)
            {
                DocStorageMapModel docStoreMap = JsonConvert.DeserializeObject <DocStorageMapModel>(response.Content);

                if (docStoreMap.storagePaths.Count() > 0)
                {
                    return(docStoreMap);
                }
                else
                {
                    return(new DocStorageMapModel()
                    {
                        storagePaths = new List <string> {
                        }
                    });
                }
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                return(new DocStorageMapModel()
                {
                    storagePaths = new List <string> {
                    }
                });
            }
            else
            {
                throw new Exception("Error fetching DocStorageMap");
            }
        }