public async Task <ActionResult> DownloadSignIn([FromServices] BlobContext blobContext, string id, string blob) { string blobName = $"{blob}.docx"; DownloadPayload blobData = await blobContext.GetStreamAsync(blobName); return(File(blobData.Stream, blobData.ContentType, blobName)); }
public static async Task <DownloadPayload?> BackupJSON() { var client = Api.Client; var rq = new RestRequest("api/database/backup"); var r = await client.ExecuteGetAsync(rq); if (!string.IsNullOrEmpty(r.ErrorMessage)) { WeakReferenceMessenger.Default.Send(new ShowNotification("Network Error", r.ErrorMessage)); return(null); } switch (r.StatusCode) { case HttpStatusCode.OK: var download = new DownloadPayload(); download.Data = r.RawBytes; download.Name = "database_backup.json"; download.Type = ".json"; return(download); default: var error = await r.GetError(); WeakReferenceMessenger.Default.Send(new ShowNotification(error.operation, error.error)); return(null); } }
public async Task <ActionResult> DownloadSignIn(string id) { string filename = String.Format("{0}.docx", id); DownloadViewModel viewModel = new DownloadViewModel( blobId: filename ); DownloadPayload blobData = await viewModel.GetStream(); return(File(blobData.Stream, blobData.ContentType, filename)); }
public DownloadPayload GetStream() { CloudBlobClient blobClient = _storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("pages"); ICloudBlob blob = container.GetBlockBlobReference(_filename); Stream blobStream = blob.OpenRead(); DownloadPayload payload = new DownloadPayload(); payload.Stream = blobStream; payload.ContentType = blob.Properties.ContentType; return(payload); }
public async Task <DownloadPayload> GetStream() { var cloudBlobClient = _storageAccount.CreateCloudBlobClient(); var container = cloudBlobClient.GetContainerReference("signin"); container.CreateIfNotExists(); var realBlobId = _blobId.Substring(0, _blobId.IndexOf(".")); var ret = new DownloadPayload(); ret.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; ret.Stream = await container.GetBlockBlobReference(realBlobId).OpenReadAsync(); return(await Task.FromResult <DownloadPayload>(ret)); }
public async Task <DownloadPayload> GetStream() { CloudBlobClient blobClient = _storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("signin"); container.CreateIfNotExists(); ICloudBlob blob = container.GetBlockBlobReference(_blobId); Stream blobStream = await blob.OpenReadAsync(); DownloadPayload payload = new DownloadPayload(); payload.Stream = blobStream; payload.ContentType = blob.Properties.ContentType; return(payload); }
public FanPageViewModel(string username, string pagename) { _username = username; _pagename = pagename; _filename = GetFilename(username, pagename); try { _payload = GetPayload(); Content = new HtmlString(_payload.Stream.ReadEntireStreamToString()); } catch (Exception) { Content = new HtmlString("Oops! No such page!"); } }
public static async Task <DownloadPayload?> DownloadArchive(string id) { var client = Api.Client; var rq = new RestRequest("api/archives/{id}/download"); rq.AddUrlSegment("id", id); var r = await client.ExecuteGetAsync(rq); if (!string.IsNullOrEmpty(r.ErrorMessage)) { WeakReferenceMessenger.Default.Send(new ShowNotification("Network Error", r.ErrorMessage)); return(null); } switch (r.StatusCode) { case HttpStatusCode.OK: var download = new DownloadPayload(); var header = r.ContentHeaders.First(h => h.Name?.Equals("Content-Disposition") ?? false).Value as string; var parms = header?.Split(';').Select(s => s.Trim()); var natr = parms.First(s => s.StartsWith("filename")); var nameAndType = natr.Substring(natr.IndexOf("\"") + 1, natr.Length - natr.IndexOf("\"") - 2); download.Data = r.RawBytes; download.Name = nameAndType.Substring(0, nameAndType.LastIndexOf(".")); download.Type = nameAndType.Substring(nameAndType.LastIndexOf(".")); return(download); default: var error = await r.GetError(); WeakReferenceMessenger.Default.Send(new ShowNotification(error.operation, error.error)); return(null); } }