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); } }
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); }
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; }
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!"); } }
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!"); } }
[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); } }