コード例 #1
0
        public void ReliableMessengerMsgs_DeliveryAck_Clone()
        {
            DeliveryAck msgIn, msgOut;

            Msg.ClearTypes();
            Msg.LoadTypes(Assembly.GetExecutingAssembly());

            msgOut = new DeliveryAck();
            msgIn  = (DeliveryAck)msgOut.Clone();
            Assert.IsNotNull(msgIn);

            TestBaseCloning(msgOut);
        }
コード例 #2
0
        public virtual ResponseObj Acknowledgement([FromBody] DeliveryAck deliveryAck)
        {
            _logEventService.LogInfo(EventNumber.VIS_acknowledgement_request, EventDataType.Other, null,
                                     JsonConvert.SerializeObject(deliveryAck, Formatting.Indented));

            var identity = _identityService.GetCallerIdentity();

            try
            {
                _notificationService.Notify(new Common.Services.Internal.Interfaces.Notification
                {
                    FromOrgId             = identity.UID,
                    FromOrgName           = identity.Name,
                    FromServiceId         = InstanceContext.CallerServiceId,
                    NotificationCreatedAt = DateTime.UtcNow,
                    NotificationType      = EnumNotificationType.ACKNOWLEDGEMENT_RECEIVED,
                    Subject            = "Acknowledgement",
                    NotificationSource = EnumNotificationSource.VIS,
                    Body = string.Format("Acknowledgement of message delivery for message with id {0} recieved from {1}, {2}", deliveryAck.ReferenceId, deliveryAck.FromName, deliveryAck.FromId)
                });

                _context.SaveChanges();
                _logEventService.LogSuccess(EventNumber.VIS_acknowledgement_response, EventDataType.Other, null,
                                            JsonConvert.SerializeObject(deliveryAck, Formatting.Indented));
                return(new ResponseObj("Aclnowledgement was delivered."));
            }
            catch (HttpResponseException ex)
            {
                log.Error(ex.Message, ex);
                _logEventService.LogError(EventNumber.VIS_acknowledgement_request, EventType.Error_internal, null,
                                          JsonConvert.SerializeObject(ex.Response, Formatting.Indented));

                throw;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
                _logEventService.LogError(EventNumber.VIS_acknowledgement_request, EventType.Error_internal, null, ex.Message);

                string msg      = "VIS internal server error. " + ex.Message;
                var    errorMsg = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent(msg),
                    ReasonPhrase = "Internal error."
                };

                throw CreateHttpResponseException(HttpStatusCode.InternalServerError, msg);
            }
        }
コード例 #3
0
        public void ReliableMessengerMsgs_DeliveryAck_Serialize()
        {
            DeliveryAck    msgIn, msgOut;
            EnhancedStream es = new EnhancedMemoryStream();

            Msg.ClearTypes();
            Msg.LoadTypes(Assembly.GetExecutingAssembly());

            msgOut = new DeliveryAck();

            Msg.Save(es, msgOut);
            es.Seek(0, SeekOrigin.Begin);
            msgIn = (DeliveryAck)Msg.Load(es);
            Assert.IsNotNull(msgIn);
        }