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; }
public void PublishData(T data) { MessageArgument <T> message = (MessageArgument <T>)Activator.CreateInstance(typeof(MessageArgument <T>), new object[] { data }); OnDataPublisher(message); }
// 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); } }
void publisher_DataPublisher2(object sender, MessageArgument <int> e) { Console.WriteLine("Subscriber 2 : " + e.Message); }
public void publisher_DataPublisher1(object sender, MessageArgument <int> message) { Console.WriteLine("Subscriber 1: " + message.Message); }
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); }