Пример #1
0
        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));
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
        }
Пример #7
0
        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!");
            }
        }
Пример #8
0
        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);
            }
        }