コード例 #1
0
        public void ListContainers_returns_something()
        {
            var provider = new BlobProvider();
            var list     = provider.GetAllContainers();

            var somethingContainer = list.FirstOrDefault(x => x.Name == "something");

            Assert.IsNotNull(somethingContainer);
        }
コード例 #2
0
        public void ListContainers_returns_correct_results()
        {
            var provider = new BlobProvider();
            var list     = provider.GetAllContainers();

            var interestingList = list.Where(x => x.Name != "vsdeploy" && x.Name != "wad-control-container");
            var count           = interestingList.Count();

            Assert.That(count, Is.EqualTo(0));
        }
コード例 #3
0
        /// <summary>
        /// Adds the lost event buds message.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public void SendFatalEmail(LogModel request)
        {
            try
            {
                string BlobDomainUrl      = ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.BlobDomainUrl.ToString()) ?? EmailConstants.BlobDomainUrl;
                string HtmlBody           = string.Empty;
                string Subject            = string.Empty;
                string fatalEmailTempalte = !string.IsNullOrWhiteSpace(ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.FatalEmailTemplate.ToString())) ? ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.FatalEmailTemplate.ToString()) : EmailConstants.FatalEmailTemplate;

                HtmlBody = BlobProvider.GetFileAsString(fatalEmailTempalte, BlobDomainUrl);
                HtmlBody = HtmlBody.Replace("{{blobDomainUrl}}", BlobDomainUrl)
                           .Replace("{{Logger}}", Convert.ToString(request.Logger))
                           .Replace("{{LogFile}}", Convert.ToString(request.File))
                           .Replace("{{ApplicationCode}}", Convert.ToString(request.ApplicationCode))
                           .Replace("{{Method}}", Convert.ToString(request.Method))
                           .Replace("{{Severity}}", Convert.ToString(request.Severity))
                           .Replace("{{LogDate}}", Convert.ToString(request.Date))
                           .Replace("{{ErrorCode}}", Convert.ToString(request.ErrorCode))
                           .Replace("{{Exception}}", Convert.ToString(request.Exception))
                           .Replace("{{Message}}", Convert.ToString(request.Message))
                           .Replace("{{MessageData}}", Convert.ToString(request.MessageData))
                           .Replace("{{StackTrace}}", Convert.ToString(request.StackTrace));
                string subject = $"Fatal error - {request.ApplicationCode} - {request.Method}";

                if (!string.IsNullOrWhiteSpace(HtmlBody))
                {
                    EmailData EmailData = new EmailData()
                    {
                        FromEmailId    = ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.FromEmailAddress.ToString()),
                        ToEmailId      = ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.FatalEmailAddresses.ToString()),
                        SendGridAPIKey = ServiceAppSetting.Instance.GetRequiredAppSettingByKey(AppSettingKeyLogger.SendGridAPIKey.ToString()),
                        Subject        = Subject,
                        Body           = HtmlBody
                    };

                    var client = new SendGridClient(EmailData.SendGridAPIKey);
                    var msg    = new SendGridMessage();

                    string emailBodyHTML = EmailData.Body;

                    msg = new SendGridMessage()
                    {
                        From        = new EmailAddress(EmailData.FromEmailId, EmailConstants.EmailFromName),
                        Subject     = EmailData.Subject,
                        HtmlContent = emailBodyHTML,
                    };

                    msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress(EmailData.ToEmailId));
                    var response = client.SendEmailAsync(msg);
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #4
0
        public void ListBlobs_returns_correct_results()
        {
            var containerName = "something/";

            var provider = new BlobProvider();
            var list     = provider.GetAllBlobs(containerName);

            var count = list.Count();

            Assert.That(count, Is.EqualTo(0));
        }
コード例 #5
0
        public void GetBlob_returns_correct_data()
        {
            var containerName = "a697fc6853c44801b6e909ca74c91984";
            var blobName      = "Anthony";
            var provider      = new BlobProvider();
            var blob          = provider.GetBlob(containerName, blobName);
            var actualData    = blob.Data;
            var expected      = "Ticky-tack foul!";

            Assert.That(actualData, Is.EqualTo(expected));
        }
コード例 #6
0
        public void SetUpSampleData(string containerName, int numFiles, int fileLineCount, Identifiers allowedIdentifiers)
        {
            var provider = new BlobProvider();
            var factory  = new QuoteFileFactory();

            for (var n = 0; n < numFiles; n++)
            {
                var fileName = "stock" + n.ToString() + ".txt";

                var file = factory.CreateRandomFile(allowedIdentifiers, fileLineCount);
                provider.CreateBlob(containerName, fileName, file.ToString());
            }
        }
コード例 #7
0
        public void CreateBlob_works_successfully()
        {
            var containerName = Guid.NewGuid().ToString().Replace("-", "");
            var blobName      = "Anthony";

            var provider = new BlobProvider();

            provider.CreateContainer(containerName);

            var data = "Ticky-tack foul!";

            provider.CreateBlob(containerName, blobName, data);
        }
コード例 #8
0
        public void SetUpSampleData(string containerName, int numFiles, int fileLineCount, Identifiers allowedIdentifiers)
        {
            var provider = new BlobProvider();
            var factory = new QuoteFileFactory();

            for (var n = 0; n < numFiles; n++)
            {
                var fileName = "stock" + n.ToString() + ".txt";

                var file = factory.CreateRandomFile(allowedIdentifiers, fileLineCount);
                provider.CreateBlob(containerName, fileName, file.ToString());
            }
        }
コード例 #9
0
        public async Task DoNotDownloadFileIfExists([Frozen] Mock <IFile> fileMock)
        {
            var options = Options.Create(new AppOptions());
            var client  = new HttpClient();

            fileMock.Setup(x => x.Exists(It.IsAny <string>())).Returns(true);
            fileMock.Setup(x => x.OpenRead(It.IsAny <string>())).Returns(new MemoryStream());

            var sut = new BlobProvider(client, fileMock.Object, options);

            await using var stream = await sut.GetCsvAsync();

            stream.ShouldNotBeNull();

            fileMock.Verify(x => x.OpenWrite(It.IsAny <string>()), Times.Never);
        }
コード例 #10
0
        // POST api/values
        public HttpResponseMessage Post(double lat, double lng)
        {
            IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization");
            string accessToken = (string)headerValues.FirstOrDefault();
            string userId      = GraphProvider.getUserId(accessToken);

            if (userId == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            string username = UserDataProvider.getUsername(Int64.Parse(userId));

            if (username == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }

            Random rnd       = new Random();
            string body      = Request.Content.ReadAsStringAsync().Result;
            string converted = body.Replace('-', '+');

            converted = converted.Replace('_', '/');
            //double lat, double lng, string user,
            int id;

            try
            {
                byte[]       imgByteArr = Convert.FromBase64String(converted);
                MemoryStream ms         = new MemoryStream(imgByteArr);
                BlobProvider provider   = new BlobProvider();
                //1 to max int32
                id = rnd.Next(1, 2147483647);
                provider.save(ms, id);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            ImageData d = new ImageData(id, DateTime.Now, lat, lng, username);

            ImageDataProvider.InsertImage(d);
            return(Request.CreateResponse(HttpStatusCode.OK));
        }
コード例 #11
0
        public async Task <ActionResult <UploadStartResponse> > UploadSingleFileAsync(
            [FromForm] long otherUser,
            [Required] IFormFile file, CancellationToken token)
        {
            var extension = Path.GetExtension(file.FileName);
            var userId    = _userManager.GetLongUserId(User);

            if (!GetSupportedExtensions().Contains(extension, StringComparer.OrdinalIgnoreCase))
            {
                throw new ArgumentException();
            }

            var blobName = BlobFileName(Guid.NewGuid(), file.FileName);
            await BlobProvider.UploadStreamAsync(blobName, file.OpenReadStream(), token : token);

            var command = new SendChatFileMessageCommand(blobName, userId, new[] { otherUser });
            await _commandBus.DispatchAsync(command, token);

            return(new UploadStartResponse(blobName));
        }
コード例 #12
0
        public async Task <Function> ToFunction(string functionId = null)
        {
            functionId = functionId ?? Guid.NewGuid().ToString();
            var deploymentId = Guid.NewGuid().ToString();

            var blobUri = await BlobProvider
                          .CreateDeploymentBlob(
                deploymentId : deploymentId,
                zipFile : this.ZipFile)
                          .ConfigureAwait(continueOnCapturedContext: false);

            return(new Function
            {
                PartitionKey = "functions",
                RowKey = functionId,
                ETag = "*",
                Id = functionId,
                BlobUri = blobUri,
                MemorySize = this.MemorySize
            });
        }
コード例 #13
0
        public async Task DownloadFileIfNotExists(
            [Frozen] Mock <HttpMessageHandler> messageHandlerMock,
            [Frozen] Mock <IFile> fileMock)
        {
            var options = Options.Create(new AppOptions
            {
                CsvUrl = "http://localhost"
            });
            var client = SetupHttpClient(messageHandlerMock);

            fileMock.Setup(x => x.Exists(It.IsAny <string>())).Returns(false);
            fileMock.Setup(x => x.OpenWrite(It.IsAny <string>())).Returns(new MemoryStream());

            var sut = new BlobProvider(client, fileMock.Object, options);

            await using var stream = await sut.GetCsvAsync();

            stream.ShouldNotBeNull();

            fileMock.Verify(x => x.OpenWrite(It.IsAny <string>()), Times.Once);
        }
コード例 #14
0
        public async Task <IEnumerable <ChatMessageDto> > GetAsync(string id, int page,
                                                                   CancellationToken token)
        {
            //specific conversation
            var result = await _queryBus.QueryAsync(new ChatConversationByIdQuery(id, page), token);

            return(result.Select(s =>
            {
                s.Image = _urlBuilder.BuildUserImageEndpoint(s.UserId, s.Image);
                if (!(s is ChatAttachmentDto p))
                {
                    return s;
                }
                var url = BlobProvider.GetBlobUrl($"{p.ChatRoomId}/{p.Id}/{p.Attachment}");
                p.Src = Url.ImageUrl(new ImageProperties(url));
                p.Href = Url.RouteUrl("ChatDownload", new
                {
                    chatRoomId = p.ChatRoomId,
                    chatId = p.Id
                });

                return s;
            }));
        }
コード例 #15
0
 public NyssBlobProvider(IConfig config)
 {
     _config       = config;
     _blobProvider = new BlobProvider(config.GeneralBlobContainerName, config.ConnectionStrings.GeneralBlobContainer);
 }
コード例 #16
0
 public ContainerAverageStockPrice(BlobProvider provider, string containerName)
 {
     this.BlobProvider  = provider;
     this.ContainerName = containerName;
 }
 public ContainerAverageStockPrice(BlobProvider provider, string containerName)
 {
     this.BlobProvider = provider;
     this.ContainerName = containerName;
 }
コード例 #18
0
 public SmsGatewayBlobProvider(INyssWebConfig config, ILoggerAdapter loggerAdapter)
 {
     _config        = config;
     _loggerAdapter = loggerAdapter;
     _blobProvider  = new BlobProvider(config.SmsGatewayBlobContainerName, config.ConnectionStrings.SmsGatewayBlobContainer);
 }