예제 #1
0
        public async Task TriggerPodAccessDefinitionGenerationAsync(UserUpdateMessageDto userUpdateMessageDto)
        {
            var msgDto = new ServiceBusMessageDto
            {
                MessagePayload = JsonConvert.SerializeObject(userUpdateMessageDto)
            };

            await _serviceBusService.SendMessageAsync(msgDto, _appSettingsQueueNameInfo.UserUpdateQueueName);
        }
예제 #2
0
        public async Task NotifyAsync(string templateKey, string channelKey, Dictionary <string, object> contextObjectinfos, Dictionary <string, string> customParamReplacements, params string[] recipientUserIds)
        {
            //Queue messages per each recipient user.
            foreach (var recipientUserId in recipientUserIds)
            {
                var payload = new AlertNotificationRequestDto
                {
                    TemplateKey             = templateKey,
                    ChannelKey              = channelKey,
                    ContextObjectInfos      = contextObjectinfos,
                    CustomParamReplacements = customParamReplacements,
                    RecipientUserId         = recipientUserId
                };

                await _serviceBusService.SendMessageAsync(new ServiceBusMessageDto
                {
                    MessagePayload   = JsonConvert.SerializeObject(payload),
                    CustomProperties = new Dictionary <string, object>
                    {
                        { ServiceBusMessageProperties.GroupId, _requestContext.GroupId },
                        { ServiceBusMessageProperties.UserId, _requestContext.UserId ?? string.Empty }
                    }
                }, _queueNameInfo.AlertNotifyQueueName);
            }
        }
        public async Task <IActionResult> Post([FromRoute] string userId, [FromBody] ProfileImageDto dto)
        {
            // Angefragter User wird aus der DB geladen.
            var catworkUser = await _context.CatworkUsers.SingleOrDefaultAsync(m => m.UserId == userId);

            if (catworkUser == null)
            {
                return(NotFound());
            }

            // Base64 encodiertes Bild wird in ByteArray umgewandelt
            byte[] imageByteArray = Convert.FromBase64String(dto.Base64);

            // Memorystream wird aus ByteArray erstellt und an den BlobStorageService übergeben.
            // Die URL wird in der DB gespeichert.
            using (var ms = new MemoryStream(imageByteArray))
            {
                catworkUser.ProfilePicture =
                    await _blobStorageService.WriteProfileImageToBlob(ms, userId);
            }

            _context.Update(catworkUser);
            await _context.SaveChangesAsync();

            // Die neue URL wird in den Servicebus geschrieben.
            await _serviceBusService.SendMessageAsync(catworkUser.ProfilePicture);

            return(Ok());
        }
예제 #4
0
        /// <summary>
        /// Service-level method to send submission to appropriate providers
        /// </summary>
        /// <param name="submissionId">submission Id</param>
        /// <param name="submissionDocument">Submission content</param>
        /// <returns></returns>
        public Task <SubmissionVM> SendSubmission(string submissionId, SubmissionVM submissionDocument)
        {
            //Push cosmosDB submission
            var cosmosSubmission = UpdateAsync(submissionId, submissionDocument);

            //Start hangfire job for service bus submission
            try
            {
                _backgroundJobClient.Enqueue(() => _serviceBusService.SendMessageAsync(submissionDocument));
            }
            catch (Exception e)
            {
                //This exception will be handled further at a future point
                Console.WriteLine("Hangfire exception!");
                Console.WriteLine(e);
            }

            //Return cosmosDB submission
            return(cosmosSubmission);
        }