Ejemplo n.º 1
0
 public ActionResult ChnxoSave(ChnxoViewModel cvm)
 {
     MessageArgument<ChnxoViewModel> maCVM = new MessageArgument<ChnxoViewModel>();
     maCVM.Action = MessageAction.Save;
     maCVM.MainParameter = cvm;
     var messageResult = _bus.Send(maCVM);
     if (messageResult.Success)
     {
         return new JSONNetResult(cvm);
     }
     return null;
 }
Ejemplo n.º 2
0
            public void PublishData(T data)
            {
                MessageArgument <T> message = (MessageArgument <T>)Activator.CreateInstance(typeof(MessageArgument <T>), new object[] { data });

                OnDataPublisher(message);
            }
Ejemplo n.º 3
0
        // SUMMARY:

        /*
         *  - Check if there is shortMessage
         *  - Check if we have Customer
         *  - We create Transaction
         *    -ShortMessage.Guid '{0}' proccessed!
         */

        protected override void ProcessChargePurchase(ChargePurchaseNotification notification)
        {
            base.ProcessChargePurchase(notification);

            try
            {
                ShortMessage shortMessage = null;
                Log.Info(string.Format("ChargePurchaseNotification '{0}' arrived!", notification.ReferenceID));

                Guid            externalShortMessageGuid = Guid.Empty;
                MessageArgument shortMessageGuidArgument = (from ms in notification.Arguments where ms.Key.Equals("shortMessageGuid") select ms).FirstOrDefault();

                if (shortMessageGuidArgument == null)
                {
                    Log.Error(string.Format("There is no 'shortMessageGuid' argument in notification"));
                    return;
                }

                string shortMessageGuidString = shortMessageGuidArgument.Value.ToString();
                if (!Guid.TryParse(shortMessageGuidString, out externalShortMessageGuid))
                {
                    Log.Error(string.Format("Could not parse 'shorMessageGuid' from notificaiton ('{0}')", shortMessageGuidString));
                    return;
                }

                shortMessage = ShortMessage.CreateManager().Load(externalShortMessageGuid);

                if (shortMessage == null)
                {
                    Log.Error(String.Format("Couldn't find short message where externalShortMessageGuid is {0}", externalShortMessageGuid.ToString()));
                    return;
                }

                if (shortMessage.ShortMessageStatus == ShortMessageStatus.Sent)
                {
                    shortMessage.ShortMessageStatus = ShortMessageStatus.Delivered;
                    shortMessage.Update();
                }

                MobiChat.Data.Customer customer = MobiChat.Data.Customer.CreateManager().Load(notification.Transaction.CustomerID);
                if (customer == null)
                {
                    Log.Error(String.Format("Couldn't find Customer with ID: {0}", notification.Transaction.CustomerID));
                    return;
                }

                Transaction transaction = Transaction.CreateManager().Load(notification.Transaction.TransactionID, GuidType.External);
                if (transaction != null)
                {
                    Log.Error(String.Format("Transaction allready exist with externalGuid:{0}", notification.Transaction.TransactionID));
                    return;
                }

                transaction = new Transaction(-1,
                                              Guid.NewGuid(), notification.Transaction.TransactionID,
                                              notification.Purchase.PurchaseID,
                                              notification.Transaction.TransactionGroupID,
                                              TransactionStatus.Executed,
                                              TransactionType.Debit,
                                              DateTime.Now, DateTime.Now);
                transaction.Insert();

                Log.Info(string.Format("Transaction '{0}' created!", transaction.Guid));

                List <CallbackReport> reports = CallbackReport.CreateManager().Load(CallbackNotificationType.ChargePurchaseNotification);
                foreach (CallbackReport report in reports)
                {
                    Code.Report.Call(report.Url.Replace("{data}", shortMessage.Guid.ToString()));
                }
                Code.Report.Call(string.Format("http://{0}/notification/charged/{1}", shortMessage.Service.Name, shortMessage.Guid.ToString()));
            }
            catch (Exception e)
            {
                Log.Fatal(string.Format("ProcessChargePurchase fatal"), e);
            }
        }
Ejemplo n.º 4
0
 void publisher_DataPublisher2(object sender, MessageArgument <int> e)
 {
     Console.WriteLine("Subscriber 2 : " + e.Message);
 }
Ejemplo n.º 5
0
 public void publisher_DataPublisher1(object sender, MessageArgument <int> message)
 {
     Console.WriteLine("Subscriber 1: " + message.Message);
 }
Ejemplo n.º 6
0
        public ActionResult ShortMessageRequest(string requestGuid)
        {
            // TODO: do some security check (domain, ip) of the sender

            Guid guid = Guid.Empty;

            if (!Guid.TryParse(requestGuid, out guid))
            {
                Log.Error(String.Format("Couldn't parse short message guid with request guid : " + requestGuid));
                this.Response.StatusCode        = 503;
                this.Response.StatusDescription = "RequestGuid could not be parsed";
                return(null);
            }

            MobiChat.Data.ShortMessageRequest shortMessageRequest = MobiChat.Data.ShortMessageRequest.CreateManager().Load(guid);
            if (shortMessageRequest == null)
            {
                Log.Error(string.Format("Short message request couldn't be loaded where guid: {0}", guid));
                this.Response.StatusCode        = 503;
                this.Response.StatusDescription = "RequestGuid does not exist";
                return(null);
            }

            if (shortMessageRequest.ShortMessage.ShortMessageStatus == Data.ShortMessageStatus.Sent)
            {
                Log.Error("Short message has been already sent");
                this.Response.StatusCode        = 503;
                this.Response.StatusDescription = "ShortMessage is already sent";
                return(null);
            }

            MessageArgument[] arguments = new MessageArgument[]
            {
                new MessageArgument("smschatargs_content", shortMessageRequest.ShortMessage.Text),
                new MessageArgument("smschatargs_keyword", shortMessageRequest.ShortMessage.Keyword),
                new MessageArgument("smschatargs_shortcode", shortMessageRequest.ShortMessage.Shortcode.ToString()),
                new MessageArgument("smschatargs_customer", shortMessageRequest.ShortMessage.Customer.Guid.ToString())
            };

            ServiceConfiguration serviceConfiguration = ServiceConfiguration.CreateManager().Load(shortMessageRequest.ShortMessage.Service.ServiceConfiguration.ID);

            // TODO: remove url to config
            Cashflow.Client.MobileExtensionClient client = new Cashflow.Client.MobileExtensionClient("http://v1.0.api.cashflow.dev.sentiware.local/mobile.svc/soap12");

            SendShortMessageRequest sendShortMessageRequest = new SendShortMessageRequest(
                RequestMode.Synchronous,
                shortMessageRequest.Guid.ToString(),
                serviceConfiguration.PaymentConfiguration.PaymentCredentials.Username, // username
                serviceConfiguration.PaymentConfiguration.PaymentCredentials.Password, // password
                shortMessageRequest.ShortMessage.Customer.Guid,
                shortMessageRequest.ShortMessage.Text,
                shortMessageRequest.Guid.ToString(),
                "",
                arguments);

            Log.Info("SendShortMessageRequest sent with referenceID: " + shortMessageRequest.Guid.ToString());

            SendShortMessageResponse response = client.SendShortMessage(sendShortMessageRequest);

            if (response.Status.Code != MessageStatusCode.Success)
            {
                Log.Error("Message Status Code is not Success");
                this.Response.StatusCode        = 503;
                this.Response.StatusDescription = "SendShortMessageResponse is not success";
                return(null);
            }
            else if (response.Status.Code == MessageStatusCode.Success)
            {
                Code.Report.Call(string.Format("http://{0}/notification/sent/{1}", shortMessageRequest.ShortMessage.Service.Name, shortMessageRequest.Guid.ToString()));
            }

            shortMessageRequest.ShortMessage.ShortMessageStatus = ShortMessageStatus.Sent;

            Log.Info("Short Message Status is Success");
            this.Response.StatusCode        = 200;
            this.Response.StatusDescription = "Success";
            return(null);
        }