示例#1
0
        private static IEnumerable <string> DeliverMessageOriginateFrom(
            UserMessage user,
            ReceivingProcessingMode receivingPMode,
            DeliverMessage deliver)
        {
            if (user.MessageId != deliver.MessageInfo?.MessageId)
            {
                yield return("MessageId");
            }

            if (user.CollaborationInfo.Service.Value != deliver.CollaborationInfo?.Service?.Value)
            {
                yield return("Service");
            }

            if (user.CollaborationInfo.Action != deliver.CollaborationInfo?.Action)
            {
                yield return("Action");
            }

            if (user.Sender.PrimaryPartyId != deliver.PartyInfo?.FromParty?.PartyIds?.FirstOrDefault()?.Id)
            {
                yield return("FromParty");
            }

            if (user.Receiver.PrimaryPartyId != deliver.PartyInfo?.ToParty?.PartyIds?.FirstOrDefault()?.Id)
            {
                yield return("ToParty");
            }

            if (receivingPMode.Id != deliver.CollaborationInfo?.AgreementRef?.PModeId)
            {
                yield return("PModeId");
            }
        }
            public async Task AsyncSerializeToValidXml()
            {
                // Arrange
                var deliverMessage = new DeliverMessage();

                // Act
                string actualXml = await AS4XmlSerializer.ToStringAsync(deliverMessage);

                // Assert
                Assert.NotEmpty(actualXml);
            }
    // Update is called once per frame
    void Update()
    {
        Quest curQuest = playerScript.activeQuests[0];

        if (buttonPressed[2])
        {
            if (buttons[2] == "Yes please!")
            {
                playerScript.activeQuests[0] = new Tut1();
                curQuest = playerScript.activeQuests[0];
                string[] descs = curQuest.description.Split(new string[] { "\n" }, 2, System.StringSplitOptions.None);
                dialog  = descs[0];
                buttons = new string[] { "", "", "", "Next" };
            }
        }
        if (buttonPressed[3])
        {
            if (buttons[3] == "I am fine")
            {
                DeliverMessage dm = new DeliverMessage();
                portal.transform.position    = new Vector3(3, 0, 23);
                playerScript.activeQuests[0] = dm;
                dialog     = dm.description;
                buttons[0] = "";
                buttons[1] = "";
                buttons[2] = "";
                buttons[3] = "OK";
                portal.SetActive(true);
            }
            else if (buttons[3] == "OK")
            {
                GameEngine.ge.changePanel(0);
                Destroy(this);
            }
            else if (buttons[3] == "Next")
            {
                string[] descs = curQuest.description.Split(new string[] { "\n" }, 2, System.StringSplitOptions.None);
                dialog     = descs[1];
                buttons[0] = "";
                buttons[1] = "";
                buttons[2] = "";
                buttons[3] = "OK";
            }
            else if (buttons[3] == "Thank you")
            {
                curQuest.reward();
                portal.transform.position = new Vector3(3, 0, 23);
                GameEngine.ge.changePanel(0);
                Destroy(this);
            }
        }
    }
 public Tut1()
 {
     name         = "Tutorial 1";
     goal         = 1;
     progress     = 0;
     description  = "Press WASD on your keyboard to move and move your mouse to look around. Click on your left-mouse button to attack enemies or interact with NPCs. In this world you will need to fight monsters and complete various quests to become stronger.\nSee that Monster over there? If you get too close it will start attacking you. Talk to me again after you have defeated it.";
     task         = "Kill 1 Monguer then talk to pixie";
     rewardGold   = 5;
     rewardExp    = 5;
     completeText = "Well done! Killing an enemy will earn you exp and gold. The stronger the enemies, the more exp and gold you get. Here are your rewards for completing this quest: " + rewardGold + " gold, " + rewardExp + " exp.";
     next         = new DeliverMessage();
     id           = 1;
 }
        /// <summary>
        /// Transform a given <see cref="ReceivedMessage" /> to a Canonical <see cref="MessagingContext" /> instance.
        /// </summary>
        /// <param name="message">Given message to transform.</param>
        /// <returns></returns>
        public async Task <MessagingContext> TransformAsync(ReceivedMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (!(message is ReceivedEntityMessage entityMessage) ||
                !(entityMessage.Entity is MessageEntity me))
            {
                throw new InvalidDataException(
                          $"The message that must be transformed should be of type {nameof(ReceivedEntityMessage)} with a {nameof(MessageEntity)} as Entity");
            }

            MessagingContext context = await AS4MessageTransformer.TransformAsync(entityMessage);

            AS4Message as4Message = context.AS4Message;

            UserMessage toBeDeliveredUserMessage =
                as4Message.UserMessages.FirstOrDefault(u => u.MessageId == me.EbmsMessageId);

            if (toBeDeliveredUserMessage == null)
            {
                throw new InvalidOperationException(
                          $"No UserMessage {me.EbmsMessageId} can be found in stored record for delivering");
            }

            IEnumerable <Attachment> toBeUploadedAttachments =
                as4Message.Attachments
                .Where(a => a.MatchesAny(toBeDeliveredUserMessage.PayloadInfo))
                .ToArray();

            DeliverMessage deliverMessage =
                CreateDeliverMessage(
                    toBeDeliveredUserMessage,
                    toBeUploadedAttachments,
                    context.ReceivingPMode);

            Logger.Info($"(Deliver) Created DeliverMessage from (first) UserMessage {as4Message.FirstUserMessage.MessageId}");
            var envelope = new DeliverMessageEnvelope(
                message: deliverMessage,
                contentType: "application/xml",
                attachments: toBeUploadedAttachments);

            context.ModifyContext(envelope);
            return(context);
        }
    // Use this for initialization
    new void Start()
    {
        base.Start();
        portal  = GameObject.FindGameObjectWithTag("ToVillage");
        name    = "Pixie";
        dialog  = "";
        buttons = new string[] { "", "", "", "" };
        Quest curQuest = playerScript.activeQuests[0];

        if (curQuest == null)
        {
            dialog  = "Hello adventurer! Shall I teach you the basics on how to survive in this world?";
            buttons = new string[] { "", "", "Yes please!", "I am fine" };
        }
        else if (curQuest.name == "Tutorial 1")
        {
            if (curQuest.progress < curQuest.goal)
            {
                string[] descs = curQuest.description.Split(new string[] { "\n" }, 2, System.StringSplitOptions.None);
                dialog  = descs[0];
                buttons = new string[] { "", "", "", "Next" };
            }
            else
            {
                dialog     = curQuest.completeText;
                buttons[0] = "";
                buttons[1] = "";
                buttons[2] = "";
                buttons[3] = "Thank you";
            }
        }
        else
        {
            DeliverMessage dm = new DeliverMessage();
            dialog     = dm.description;
            buttons[0] = "";
            buttons[1] = "";
            buttons[2] = "";
            buttons[3] = "OK";
        }
    }
示例#7
0
        private void bw_Delivery_DoWork(object sender, DoWorkEventArgs e)
        {       // Delivered message start parsing ...
            try
            {
                bool res;

                CurrentLogMessage c2 = null;
                DeliverMessage.Delivered_Message delmsg = (DeliverMessage.Delivered_Message)e.Argument;
                if (delmsg.Short_code == SharedParams.Short_Code.ToString())
                {
                    DeliverMessage DeliverMsg = new DeliverMessage(db, partnerManager, partnerActivityRepo, _logger);
                    DeliverMessage.RequestReturnValue RQretuenvalue = new DeliverMessage.RequestReturnValue();
                    var RQpack  = new PartnerRequest();
                    var queueNo = getCurrentChannelNo();
                    RQretuenvalue = DeliverMsg.Parse_Request(delmsg, queueNo, out RQpack);
                    if (RQretuenvalue.Ret_Status == true)
                    {
                        c2 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo,
                                                   RQpack.RequestName + " - " + RQpack.Shortcode + " - " + RQpack.ReplayDesc + " success (" + RQpack.Id + ") Q(" + queueNo + ")", "partnerok");
                        bw_Delivery.ReportProgress(0, c2);
                        if (RQpack.RequestId == 3)
                        {
                            var result = new PartnerRequestRepo(db).Create(RQpack);
                        }
                    }
                    else
                    {
                        if (RQretuenvalue.Ret_ID == -1)
                        {
                            CurrentLogMessage c = new CurrentLogMessage("S", SharedParams.Short_Code.ToString(), RQpack.MobileNo, RQretuenvalue.Ret_Message_to_Client, "partnererror");
                            e.Result = c;
                            var BadRequest = new PartnerRequest();
                            BadRequest.MobileNo      = RQpack.MobileNo;
                            BadRequest.Shortcode     = SharedParams.Short_Code.ToString();
                            BadRequest.Content       = RQpack.Content;
                            BadRequest.Error         = RQretuenvalue.Ret_Message;
                            BadRequest.AccessChannel = "sms";
                            BadRequest.QueueNo       = 1;
                            BadRequest.RequestId     = RQpack.RequestId;
                            BadRequest.ReplayDesc    = RQretuenvalue.Ret_Message_to_Client;
                            BadRequest.ReplayTime    = DateTime.Now;
                            BadRequest.Status        = 2;

                            res = (new PartnerRequestRepo(db).Create(BadRequest).Success);

                            if (res == false)
                            {
                                c2       = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, "failed to create bad request [" + RQretuenvalue.Ret_Message_to_Client + "]", "error");
                                e.Result = c2;
                            }
                            if (!string.IsNullOrEmpty(RQretuenvalue.Ret_Message_to_Client))
                            {
                                var outmessage = new SMSOut();
                                outmessage.Message  = RQretuenvalue.Ret_Message_to_Client;
                                outmessage.Receiver = RQpack.MobileNo;
                                res = (new OutSMSRepo(db).Create(outmessage).Success);
                                if (res == false)
                                {
                                    c2       = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, "failed to create sms to client [" + RQretuenvalue.Ret_Message_to_Client + "]", "error");
                                    e.Result = c2;
                                }
                            }
                        }
                        else if (RQretuenvalue.Ret_ID == -2)
                        {
                            CurrentLogMessage c = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, RQretuenvalue.Ret_Message, "partnererror");
                            e.Result = c;
                        }
                    }//res==true
                }
                delmsg = null;
            }
            catch (Exception ex)
            {
                CurrentLogMessage c1 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), "", ex.Message, "error");
                WriteLog(c1);
            }
        } // bw_Delivery_DoWork