Ejemplo n.º 1
0
        public async Task SendAsync(Message message)
        {
            using (var session = _messageQueue.BeginSession())
            {
                await session.EnqueueAsync(message);

                await session.SaveChanges();
            }
        }
        /// <inheritdoc />
        public async Task SendAsync(ClaimsPrincipal principal, Message message)
        {
            if (principal == null)
            {
                throw new ArgumentNullException(nameof(principal));
            }
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }
            using (var session = _messageQueue.BeginSession())
            {
                await session.EnqueueAsync(principal, message);

                await session.SaveChanges();
            }
        }
Ejemplo n.º 3
0
        public void DeliverMessages(IMessageQueue queue)
        {
            if (_outboundMessages.Count == 0)
            {
                return;
            }

            using (var scope = queue.BeginSession())
            {
                scope.EnqueueAsync(Principal, _outboundMessages);
                _outboundMessages.Clear();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Commit all enqueued messages.
        /// </summary>
        /// <returns>task</returns>
        public async Task CommitAsync()
        {
            using (var scope = _messageQueue.BeginSession())
            {
                foreach (var perClaim in _messages.GroupBy(x => x.Item1))
                {
                    if (perClaim.Key == null)
                    {
                        await scope.EnqueueAsync(perClaim.Select(x => x.Item2).ToList());
                    }
                    else
                    {
                        await scope.EnqueueAsync(perClaim.Key, perClaim.Select(x => x.Item2).ToList());
                    }
                }

                await scope.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Enqueue all messages.
        /// </summary>
        /// <returns>task</returns>
        public async Task CommitAsync()
        {
            var grouped = _messages.GroupBy(x => x.Item1);

            using (var session = _messageQueue.BeginSession())
            {
                foreach (var group in grouped)
                {
                    if (group.Key == null)
                    {
                        await session.EnqueueAsync(group.Select(x => x.Item2).ToList());
                    }
                    else
                    {
                        await session.EnqueueAsync(group.Key, group.Select(x => x.Item2).ToList());
                    }
                }

                await session.SaveChanges();
            }
        }
        public async Task <HttpResponseMessage> SupplyFeedback(string appKey, string sig)
        {
            var json = await UnpackContent();

            try
            {
                var ser   = new MessagingSerializer();
                var model = (FeedbackDTO)ser.Deserialize(typeof(FeedbackDTO), json);

                var app = await _applicationRepository.GetByKeyAsync(appKey);

                using (var session = _queue.BeginSession())
                {
                    var dto = new ProcessFeedback
                    {
                        ApplicationId = app.Id,
                        Description   = model.Description,
                        EmailAddress  = model.EmailAddress,
                        ReceivedAtUtc = DateTime.UtcNow,
                        RemoteAddress = Request.GetClientIpAddress(),
                        ReportId      = model.ReportId,
                        ReportVersion = "1"
                    };

                    await session.EnqueueAsync(ReportController.CreateReporterPrincipal(), new Message(dto));

                    await session.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                _logger.Warn(
                    "Failed to submit feedback: " + JsonConvert.SerializeObject(new { appKey, json }),
                    ex);
            }

            return(new HttpResponseMessage(HttpStatusCode.NoContent));
        }