Пример #1
0
        public async Task <int> Delete(string id)
        {
            int    index1 = NthIndexOf(id, ':', 1);
            int    index2 = NthIndexOf(id, ':', 2);
            string userId = id.Substring(index1 + 1, index2 - index1 - 1);

            if (VerifyTheToken(userId))
            {
                var       hc          = CouchDBConnect.GetClient("files");
                ImageFile imageRemove = null;
                imageRemove = await DownloadFile(id);

                if (imageRemove != null)
                {
                    string uri      = "/files/" + id + "?rev=" + imageRemove._rev;
                    var    response = await hc.DeleteAsync(uri);

                    if (!response.IsSuccessStatusCode)
                    {
                        return(-1);
                    }
                    return(1);
                }

                return(-1);
            }
            else
            {
                return(-1);
            }
        }
Пример #2
0
        public async Task <ImageFile> DownloadFile(string id)
        {
            int    index1 = NthIndexOf(id, ':', 1);
            int    index2 = NthIndexOf(id, ':', 2);
            string userId = id.Substring(index1 + 1, index2 - index1 - 1);

            if (VerifyTheToken(userId))
            {
                var hc       = CouchDBConnect.GetClient("files");
                var response = await hc.GetAsync("/files/" + id);

                if (!response.IsSuccessStatusCode)
                {
                    return(null);
                }

                var content = await response.Content.ReadAsStringAsync();

                ImageFile file = (ImageFile)JsonConvert.DeserializeObject(content, typeof(ImageFile));

                return(file);
            }

            else
            {
                return(null);
            }
        }
        //Validate if userSubscriptions exist
        async Task <UserSubscriptions> DoesSubscriptionExist(string id)
        {
            var httpClient = CouchDBConnect.GetClient("subscriptions");
            var response   = await httpClient.GetAsync("subscriptions/" + id);

            return(response.IsSuccessStatusCode ? (UserSubscriptions)JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync(), typeof(UserSubscriptions)) : null);
        }
Пример #4
0
        private async Task CopyFile(String json)
        {
            JObject   obj            = JObject.Parse(json);
            ImageFile downloadedFile = await DownloadFile(obj["imgId"].ToString());

            downloadedFile._id = obj["toUser"].ToString();
            ImageFileNoRev fileNoRev = new ImageFileNoRev(downloadedFile);
            var            response  = await CouchDBConnect.PostToDB(fileNoRev, "files");

            return;
        }
Пример #5
0
        public async Task <String> UploadFile([FromBody] ImageFile file)
        {
            if (VerifyTheToken(file._id))
            {
                ImageFileNoRev fileNoRev = new ImageFileNoRev(file);
                var            response  = await CouchDBConnect.PostToDB(fileNoRev, "files");

                Console.WriteLine(response);

                return("Upload Succeeded");
            }
            else
            {
                return("Please login first!");
            }
        }
Пример #6
0
        public async Task <string> ShareFile([FromBody] ShareFile sf)
        {
            if (VerifyTheToken(sf._id))
            {
                ShareFileNoRev shareNoRev = new ShareFileNoRev(sf);

                // check if toUser exist
                var response = await CouchDBConnect.PostToDB(shareNoRev, "shares");

                // create the same file with diffrenet id
                string json = JsonConvert.SerializeObject(shareNoRev);
                await client.PublishAsync(json);

                Console.WriteLine(response);
                return("Image shared to " + sf.toUser + " successfully");
            }
            else
            {
                return("Please login first!");
            }
        }
Пример #7
0
        [Route("GetList/{id}")] //all image by id (user)
        public async Task <IEnumerable <ImageFile> > GetList(string id)
        {
            if (VerifyTheToken(id))
            {
                var hc = CouchDBConnect.GetClient("files");
                List <ImageFile> imagesList = new List <ImageFile>();
                var query    = "/files/_all_docs?startkey=\"userid:" + id + ":\"&endkey=\"userid:" + id + ":\uffff\"&include_docs=true";
                var response = await hc.GetAsync(query);

                if (!response.IsSuccessStatusCode)
                {
                    return(null);
                }

                await GetListFromDB(imagesList, response);

                return(imagesList);
            }
            else
            {
                return(null);
            }
        }