Пример #1
0
        private static void WaitForInput(CSocket socket)
        {
            Tuple <String, Object> received = socket.ReceiveObject();
            String parameter = received.Item1;

            messageParameters = (MessageParameters)received.Item2;

            if (parameter.Equals(CALL_INDICATION))
            {
                CPCC.PrintLogs(CALL_INDICATION);
                CPCC.SendMessage(CALL_CONFIRMED_CPCC, messageParameters.getFirstParameter(), messageParameters.getSecondParameter(), messageParameters.getCapacity());
            }
            else if (parameter.Equals(CALL_TEARDOWN_CPCC))
            {
                CPCC.PrintLogs(CALL_TEARDOWN_CPCC);
                CPCC.SendMessage(CALL_TEARDOWN_CPCC, messageParameters.getFirstParameter(), messageParameters.getSecondParameter(), messageParameters.getCapacity());
            }
            else if (parameter.Equals(CALL_CONFIRMED_CPCC))
            {
                CPCC.PrintLogs(CALL_CONFIRMED_CPCC);
            }
            else if (parameter.Equals(CALL_REJECTED_CPCC))
            {
                CPCC.PrintLogs(CALL_REJECTED_CPCC);
            }
        }
Пример #2
0
        public override void Append(IError error)
        {
            string formattedMessage = MessageParameters.GetFormattedMessage(this.Layout, error);

            Console.WriteLine(formattedMessage);
            this.messagesAppended++;
        }
        public async Task <MessageParameters> CreateMessageParametersAsync(long jobId)
        {
            FileUploadJob job = await _fileUploadJobManager.GetJobById(jobId);

            List <ITopicItem> topics = (await _jobTopicTaskService.GetTopicItems(job.JobType, job.IsFirstStage)).ToList();

            JobContextMessage contextMessage = new JobContextMessage(
                job.JobId,
                topics,
                job.Ukprn.ToString(),
                job.StorageReference,
                job.FileName,
                job.SubmittedBy,
                0,
                job.DateTimeSubmittedUtc);

            contextMessage.KeyValuePairs.Add("CollectionName", job.CollectionName);
            contextMessage.KeyValuePairs.Add("ReturnPeriod", job.PeriodNumber);

            AddExtraKeys(contextMessage, job);

            MessageParameters message = new MessageParameters(job.JobType)
            {
                JobContextMessage = contextMessage,
                SubscriptionLabel = topics[0].SubscriptionName,
                TopicParameters   = new Dictionary <string, object>
                {
                    {
                        "To", topics[0].SubscriptionName
                    }
                }
            };

            return(message);
        }
        public void SendMessagesAsync_Test()
        {
            var topicPublishMock = new Mock <ITopicPublishService <JobContextDto> >();

            topicPublishMock.Setup(x => x.PublishAsync(new JobContextDto(), new Dictionary <string, object>(), "Test")).Returns(Task.CompletedTask);

            var message = new MessageParameters(JobType.IlrSubmission)
            {
                JobContextMessage = new JobContextMessage()
                {
                    KeyValuePairs = new Dictionary <string, object>(),
                    Topics        = new List <ITopicItem>()
                },
                SubscriptionLabel = "Test",
                TopicParameters   = new Dictionary <string, object>(),
            };

            var indexedTopicsMock = new Mock <IIndex <JobType, ITopicPublishService <JobContextDto> > >();

            indexedTopicsMock.SetupGet(x => x[JobType.IlrSubmission]).Returns(topicPublishMock.Object);

            var messagingService = new MessagingService(indexedTopicsMock.Object, new JobContextMapper(), new Mock <ILogger>().Object);

            messagingService.SendMessageAsync(message).ConfigureAwait(true);

            topicPublishMock.Verify(x => x.PublishAsync(It.IsAny <JobContextDto>(), It.IsAny <Dictionary <string, object> >(), "Test"), Times.Once);
        }
        public async Task <IActionResult> GetAll(Guid userID, [FromQuery] MessageParameters parameters)
        {
            var user = new User
            {
                ID = userID
            };

            #region [Authorization]
            var result = await this.AuthorizationService.AuthorizeAsync
                         (
                this.User, user, nameof(KindlyPolicies.AllowIfOwner)
                         );

            if (result.Succeeded == false)
            {
                return(this.Unauthorized());
            }
            #endregion

            var messages = await this.Repository.GetByUser(userID, parameters);

            var messageDtos = messages.Select(l => this.Mapper.Map <MessageDto>(l)).ToList();

            this.Response.AddPaginationHeader(new PaginationHeader
                                              (
                                                  messages.PageNumber,
                                                  messages.PageSize,
                                                  messages.TotalPages,
                                                  messages.TotalCount
                                              ));

            return(this.Ok(messageDtos));
        }
Пример #6
0
        /// <summary>
        /// Called when an operation request has been received.
        /// </summary>
        /// <remarks>An operation request is sent when a client sends an operation request to the master. So all operation requests are from game clients</remarks>
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            var gameOperationRequest = new GameOperationRequest(operationRequest.Parameters);

            if (!gameOperationRequest.IsValid)
            {
#if MMO_DEBUG
                Logger.DebugFormat("[OnOperationRequest]: GameOperationRequest (OpCode={0}) is not valid", operationRequest.OperationCode);
#endif
                return;
            }

            ISession session;
            if (sessions.TryGetValue(gameOperationRequest.ClientId, out session))
            {
                var messageParameters = new MessageParameters {
                    ChannelId = sendParameters.ChannelId, Encrypted = sendParameters.Encrypted
                };
                session.ReceiveOperationRequest(gameOperationRequest, messageParameters);
            }
            else
            {
                Logger.ErrorFormat("[OnOperationRequest]: Session (Id={0}) cannot be found", gameOperationRequest.ClientId);
            }
        }
Пример #7
0
        public void OnOperationRequest(GameOperationRequest operationRequest, MessageParameters parameters)
        {
            switch ((GameOperationCode)operationRequest.OperationCode)
            {
            case GameOperationCode.LoginUser:
            {
                this.ExecUserOperation(() => this.HandleOperationLogin(operationRequest, parameters), operationRequest.ClientId, parameters);
            }
            break;

            case GameOperationCode.CreateUser:
            {
                this.ExecUserOperation(() => this.HandleOperationCreateNewUser(operationRequest, parameters), operationRequest.ClientId, parameters);
            }
            break;

            default:
            {
                this.peer.SendOperationResponse(operationRequest.ClientId,
                                                new GameErrorResponse(operationRequest.OperationCode)
                    {
                        ReturnCode = (short)ResultCode.OperationNotAvailable,
                    },
                                                new MessageParameters());
            }
            break;
            }
        }
Пример #8
0
        public Task <PagedList <Message> > GetMessagesForUser(MessageParameters messageParameters)
        {
            // asQueryable pour faire des requetes après
            var messages = _context.Messages
                           .AsQueryable();

            switch (messageParameters.Contener)
            {
            case "Inbox":
                messages = messages.Where(m => m.ReceptId == messageParameters.UserId && m.ReceptDeleted == false);
                break;

            case "Outbox":
                messages = messages.Where(m => m.SenderId == messageParameters.UserId && m.SenderDeleted == false);
                break;

            default:
                messages = messages.Where(m => m.ReceptId == messageParameters.UserId && m.IsRead == false &&
                                          m.ReceptDeleted == false);
                break;
            }
            ;
            messages = messages.OrderByDescending(m => m.MessageSent);

            return(PagedList <Message> .CreateAsync(messages, messageParameters.PageNumber, messageParameters.PageSize));
        }
Пример #9
0
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            var gameOperationRequest = new GameOperationRequest(operationRequest.Parameters);
            var parameters           = new MessageParameters {
                ChannelId = sendParameters.ChannelId, Encrypted = sendParameters.Encrypted
            };

            switch (operationRequest.OperationCode)
            {
            case (byte)ClientOperationCode.Login:
            {
                this.RequestFiber.Enqueue(() => this.loginOperationHandler.OnOperationRequest(gameOperationRequest, parameters));
            }
            break;

            case (byte)ClientOperationCode.Character:
            {
                this.RequestFiber.Enqueue(() => this.characterOperationHandler.OnOperationRequest(gameOperationRequest, parameters));
            }
            break;

            default:
            {
                this.SendOperationResponse(gameOperationRequest.ClientId,
                                           new GameErrorResponse(operationRequest.OperationCode)
                    {
                        ReturnCode = (short)ResultCode.OperationNotAvailable,
                    },
                                           new MessageParameters());
            }
            break;
            }
        }
Пример #10
0
 public async Task SendMessageAsync(MessageParameters messageParameters)
 {
     JobContextMessage jobContextMessage = (JobContextMessage)messageParameters.JobContextMessage;
     await             _topicPublishServices[messageParameters.JobType].PublishAsync(
         _jobContextMapper.MapFrom(jobContextMessage),
         messageParameters.TopicParameters,
         messageParameters.SubscriptionLabel);
 }
Пример #11
0
 public RestCall(string baseURL, string apiMethod, string httpVerbose, MessageHeader header, MessageBody body, MessageParameters parameters)
 {
     BaseURL     = baseURL;
     APIMethod   = apiMethod;
     HttpVerbose = httpVerbose;
     Header      = header;
     Body        = body;
     Parameters  = parameters;
 }
Пример #12
0
    public void PublishEvent()
    {
        for (var i = 0; i < 10000; i++)
        {
            var parameters = new MessageParameters("CqrsEvent");
            var @event     = new SendCqrsEvent(parameters, Guid.NewGuid().ToString());

            _messageSender.Publish(@event);
        }
    }
Пример #13
0
    public void SendCommand()
    {
        for (var i = 0; i < 5000; i++)
        {
            var parameters = new MessageParameters("CqrsCommand");
            var command    = new SendCqrsCommand(parameters, Guid.NewGuid().ToString());

            _messageSender.Send(command);
        }
    }
Пример #14
0
    public static void CreateBatBullet(Vector3 senderPosition, int damage, int direction)
    {
        GameObject bullet = Instantiate(batBulletPrefab);

        bullet.transform.position = senderPosition + (GameController.Character.position - senderPosition) / 2;
        bullet.transform.up       = GameController.Character.position - senderPosition;
        MessageParameters parameters = new MessageParameters(direction, damage);

        GameController.Character.SendMessage("OnHit", parameters, SendMessageOptions.DontRequireReceiver);
    }
Пример #15
0
    public void SendQuery()
    {
        for (var i = 0; i < 5000; i++)
        {
            var parameters = new MessageParameters("CqrsQuery");
            var query      = new SendCqrsQuery(parameters, Guid.NewGuid().ToString());

            _ = _messageSender.Send(query);
        }
    }
        public MessageExecutor PrepareMessage(string MessageText)
        {
            MessageParameters MsgParam     = new MessageParameters();
            string            LocalMachine = Environment.MachineName;

            MsgParam.Message = LocalMachine + " : " + MessageText;
            MessageExecutor MessageExecutor = new MessageExecutor();

            MessageExecutor.MessageParameters = MsgParam;
            return(MessageExecutor);
        }
Пример #17
0
        public async Task <ActionResult <IEnumerable <MessageDto> > > GetMessagesForUser(
            [FromQuery] MessageParameters messageParameters)
        {
            messageParameters.UserName = User.GetUserName();

            var messages = await this.unitOfWork.MessageRepository.GetMessagesForUser(messageParameters);

            Response.AddPaginationHeader(messages.CurrentPage, messages.PageSize, messages.TotalCount, messages.TotalCount);

            return(messages);
        }
Пример #18
0
        public IAppender GetAppender(string appenderType, string layoutType, string levelStr)
        {
            Level level = MessageParameters.ParseLevel(levelStr);

            ILayout layout = this.layoutFactory.GetLayout(layoutType);

            Assembly assembly = Assembly.GetExecutingAssembly();

            Type typeToCreate = assembly
                                .GetTypes()
                                .FirstOrDefault(t => t.Name == appenderType);

            if (typeToCreate == null)
            {
                throw new InvalidLayoutTypeException();
            }

            List <object> args = new List <object>()
            {
                layout,
                level
            };

            if (appenderType == "FileAppender")
            {
                IFile file = new LogFile();
                args.Add(file);
            }

            IAppender appender = (IAppender)Activator.CreateInstance(typeToCreate, args.ToArray());

            //WITHOUT REFLECTION:

            //Level level = MessageParameters.ParseLevel(levelStr);
            //ILayout layout = this.layoutFactory.GetLayout(layoutType);
            //IAppender appender;
            //if (appenderType == "ConsoleAppender")
            //{
            //    appender = new ConsoleAppender(layout, level);
            //}
            //else if (appenderType == "FileAppender")
            //{
            //    IFile file = new LogFile();
            //    appender = new FileAppender(layout, level, file);
            //}
            //else
            //{
            //    throw new InvalidAppenderTypeException();
            //}

            return(appender);
        }
        /// <summary>
        /// Sends a(n) <see cref="GameEvent"/> to a session
        /// </summary>
        public void SendEvent(int sessionId, GameEvent gameEvent, MessageParameters messageParameters)
        {
            var parameters = ObjectDataMemberMapper.GetValues <DataMemberAttribute>(gameEvent);

            parameters.Add(0, sessionId);

            var eventData = new EventData(gameEvent.EventCode, parameters);

            this.SendEvent(eventData, new SendParameters
            {
                ChannelId = messageParameters.ChannelId,
                Encrypted = messageParameters.Encrypted,
            });
        }
Пример #20
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "shield")
        {
            anim.SetTrigger("GetBack");
        }

        if (collision.gameObject.tag == "character" && hitRequire)
        {
            hitRequire = false;
            MessageParameters parameters = new MessageParameters(Methods.GetDirection(gameObject), damage);
            GameController.Character.SendMessage("OnHit", parameters, SendMessageOptions.DontRequireReceiver);
            StartCoroutine(Delay());
        }
    }
Пример #21
0
        public async Task <PagedList <MessageDto> > GetMessagesForUser(MessageParameters messageParameters)
        {
            var query = this.dataContext.Messages
                        .OrderByDescending(message => message.MessageSent)
                        .ProjectTo <MessageDto>(this.mapper.ConfigurationProvider)
                        .AsQueryable();

            query = messageParameters.Container switch
            {
                "Inbox" => query.Where(message => message.RecipientUserName == messageParameters.UserName && message.RecipientDeleted == false),
                "Outbox" => query.Where(message => message.SenderUserName == messageParameters.UserName && message.SenderDeleted == false),
                _ => query.Where(message => message.RecipientUserName == messageParameters.UserName && message.DateRead == null && message.RecipientDeleted == false),
            };

            return(await PagedList <MessageDto> .CreateAsync(query, messageParameters.PageNumber, messageParameters.PageSize));
        }
        public async Task GenerateKeysAsync()
        {
            var job = new FileUploadJob()
            {
                JobType = JobType.IlrSubmission,
                JobId   = 10,
                Ukprn   = 123456
            };

            IlrMessageFactory factory = GetFactory(false, job);

            MessageParameters result = await factory.CreateMessageParametersAsync(It.IsAny <long>());

            result.JobContextMessage.KeyValuePairs[JobContextMessageKey.InvalidLearnRefNumbers].Should()
            .Be($"{job.Ukprn}/{job.JobId}/ValidationInvalidLearners.json");
        }
Пример #23
0
        public async Task <IActionResult> GetMessagesForUser(int userId, [FromQuery] MessageParameters messageParameters)
        {
            // verification user autorisé
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            messageParameters.UserId = userId;
            var messagesFromRepo = await _repo.GetMessagesForUser(messageParameters);

            var messages = _mapper.Map <IEnumerable <MessageToReturnDto> >(messagesFromRepo);

            Response.AddPagination(messagesFromRepo.CurrentPage, messagesFromRepo.PageSize,
                                   messagesFromRepo.TotalCount, messagesFromRepo.TotalPages);
            return(Ok(messages));
        }
Пример #24
0
        public IError GetError(string dateString, string levelStr, string message)
        {
            Level level = MessageParameters.ParseLevel(levelStr);

            DateTime dateTime;

            try
            {
                dateTime = DateTime.ParseExact(dateString, MessageParameters.dateFormat, CultureInfo.InvariantCulture);
            }
            catch
            {
                throw new InvalidDateFormatException();
            }

            return(new Error(dateTime, message, level));
        }
Пример #25
0
    public void OnHit(MessageParameters parameters)
    {
        health--;
        if (health < 1)
        {
            Destroy(gameObject);
        }
        Vector3 getDamageForce = new Vector3(0.1f, 1, 0);

        getDamageForce.x *= parameters.direction;
        if (rb != null)
        {
            rb.velocity = Vector3.zero;
            rb.AddForce(getDamagePower * getDamageForce, ForceMode2D.Impulse);
        }

        if (state == MonsterState.Calm || state == MonsterState.Find)
        {
            SetTriggered();
        }
    }
Пример #26
0
    private void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.tag == parentTag)
        {
            return;
        }

        if (!hit && collider.gameObject.layer != LayerMask.NameToLayer("dont hit"))
        {
            hit = true;
            Destroy(rb);

            transform.parent = collider.transform;

            int direction = force.x < 0 ? -1 : 1;
            MessageParameters parameters = new MessageParameters(direction, damage);
            if (collider.gameObject.tag != "shield")
            {
                collider.gameObject.SendMessageUpwards("OnHit", parameters, SendMessageOptions.DontRequireReceiver);
            }
            StartCoroutine(Hitting());
        }
    }
Пример #27
0
 public SendCqrsQuery(MessageParameters parameters, string correlationId, string?causationId = null)
     : base(parameters, correlationId, causationId)
 {
 }
Пример #28
0
        private async Task <byte[]> SendMessageInternal(string routingKeyOrTopicName, byte[] message, IDictionary <string, object> headers, MessageType messageType, MessageParameters p = null)
        {
            if (EndpointType != EndpointTypeEnum.Publisher)
            {
                var e = new InvalidOperationException("Attempt to send a message on a consumer prohibited.");
                VerboseLoggingHandler.Log(e);
                throw e;
            }

            p ??= DefaultMessageParameters;
            if (string.IsNullOrEmpty(routingKeyOrTopicName))
            {
                routingKeyOrTopicName = RoutingKeyOrTopicName;
            }
            VerboseLoggingHandler.Log($"SendMessageInternal sending message, type='{messageType}', routingKeyOrTopicName='{routingKeyOrTopicName}', durable='{p.Durable}', mandatory='{p.Mandatory}', persistent='{p.Persistent}', priority='{p.Priority}', autoAck='{p.AutoAck}', resilient='{p.Resilient}', timeout='{p.TimeOut}' (ms)");
            headers ??= new Dictionary <string, object>();


            byte[] ret = null;

            var messageTypeText = new StringBuilder();

            var messageProperties = Channel.CreateBasicProperties();

            messageProperties.Type       = MessageTypeFragmentsChat;
            messageProperties.Timestamp  = AmqpTimestampNow;
            messageProperties.Priority   = p.Priority;
            messageProperties.Persistent = p.Persistent;
            messageProperties.Expiration = p.TimeOut.ToString();
            if (p.Durable)
            {
                messageProperties.DeliveryMode = 2;
            }

            messageProperties.CorrelationId = ConversationId.ToString();

            if (!p.AutoAck)
            {
                messageTypeText.Append((MessageTypeFragmentsRequestAmqAck));
            }

            if ((messageType & MessageType.RequireAck) == MessageType.RequireAck)
            {
                messageTypeText.Append(MessageTypeFragmentsRequestAck);
            }
            if ((messageType & MessageType.RequireResponse) == MessageType.RequireResponse)
            {
                messageTypeText.Append(MessageTypeFragmentsRequestReply);
            }
            headers.Add(DictionaryKey_PassedQueueTtl, ReturnChannelQueueTtl);

            messageProperties.Type    = messageTypeText.ToString();
            messageProperties.Headers = headers;

            try
            {
                ReturnData = null;
                messageProperties.ReplyTo = ReturnChannelQueueName;
                VerboseLoggingHandler.Log($"Publishing now");
                Channel.BasicPublish(ExchangeName, routingKeyOrTopicName, p.Mandatory, messageProperties, message);
                //_channel.WaitForConfirmsOrDie(new TimeSpan(0, 0, 0, 0, timeout.Value));
                if (((PublisherParameters)(ChannelParameters)).EnableConfirmSelect)
                {
                    try
                    {
                        Channel.WaitForConfirms();
                    }
                    catch (InvalidOperationException e1)
                    {
                        if (e1.Message == "Confirms not selected")
                        {
                            var e = new InvalidOperationException("Invalid configuration. WaitForConfirms behavior requested, but Exchange not configured for them.", e1);
                            VerboseLoggingHandler.Log(e);
                            throw e;
                        }
                        else
                        {
                            VerboseLoggingHandler.Log(e1);
                            throw e1;
                        }
                    }
                }

                if (messageType == MessageType.Normal)
                {
                    return(null);
                }

                VerboseLoggingHandler.Log($"Published. LatchCount='{ReturnChannelLatch.CurrentCount}', timeout='{p.TimeOut}' (ms)");
                await ReturnChannelLatch.WaitAsync(p.TimeOut, LocalCancellationToken);

                VerboseLoggingHandler.Log($"Released. LatchCount='{ReturnChannelLatch.CurrentCount}'");
            }
            finally
            {
                if (messageType != MessageType.Normal)
                {
                    VerboseLoggingHandler.Log($"Completed. LatchCount='{ReturnChannelLatch.CurrentCount}'");
                    ret = ReturnData;
                }
            }

            return(ret);
        }
Пример #29
0
        public string Write(ILayout layout, IError error)
        {
            string formattedMessage = MessageParameters.GetFormattedMessage(layout, error);

            return(formattedMessage);
        }
Пример #30
0
        public static bool PrepareForMessageSend(
            string callMethod,
            RunTarget runTarget,
            GameObject subject,
            GameObject target,
            GameObject referenceTarget,
            MessageParameters parameters,
            out GameObject obj,
            out object[] suppliedParameters
            )
        {
            suppliedParameters = new object[0];
            obj = subject;

            if (string.IsNullOrEmpty(callMethod) || string.IsNullOrWhiteSpace(callMethod))
            {
                Debug.LogWarning("Call Method is blank...");
                return(false);
            }

            if (runTarget == RunTarget.Player && !GameManager.playerExists)
            {
                Debug.LogWarning("Cant Call Method: " + callMethod + " on player, player doesnt exist yet!");
                return(false);
            }


            switch (runTarget)
            {
            case RunTarget.Subject:
                obj = subject;
                break;

            case RunTarget.Target:
                obj = target;
                break;

            case RunTarget.Reference:
                obj = referenceTarget;
                break;

            case RunTarget.Static:
                obj = null;
                break;

            case RunTarget.Player:
                obj = GameManager.playerActor.gameObject;
                break;
            }

            if (obj == null && runTarget != RunTarget.Static)
            {
                Debug.LogWarning("RunTarget: " + runTarget.ToString() + " is null, can't call method: " + callMethod);
                return(false);
            }


            if (parameters.Length > 0)
            {
                List <object> parametersList = new List <object>();
                for (int i = 0; i < parameters.Length; i++)
                {
                    if (parameters[i] != null)
                    {
                        parametersList.Add(parameters[i].GetParamObject());
                    }
                }
                suppliedParameters = parametersList.ToArray();
            }

            return(true);
        }