public void TransmitMessage(IObservableAction message) { foreach (KeyValuePair <object, Func <IObservableAction, bool> > item in _subscriberContainer) { item.Value.Invoke(message); } }
public bool MessageFromObserver(IObservableAction message) { bool retVal = true; string className = this.GetType().Name; string process = ""; var action = message.Actions.Where(e => e.targetByName == className).FirstOrDefault <MessageAction>(); if (action != null) { if (action.command_action == TypeOfObservableAction.InsertData) { process = "insert"; } else if (action.command_action == TypeOfObservableAction.UpdateData) { process = "update"; } else if (action.command_action == TypeOfObservableAction.DeleteData) { process = "delete"; } Console.WriteLine($"Class B: {process}"); } return(retVal); }
public bool MessageFromObserver(IObservableAction message) { bool retVal = true; string className = nameof(NextNumber); bool process = false; IList <MessageAction> listRemove = new List <MessageAction>(); try { var query = message.Actions.Where(e => e.targetByName == className); foreach (var action in query) { process = false; if (action.command_action == TypeOfObservableAction.InsertData) { if (action?.NextNumber.NextNumberValue == 0) { Task <NextNumber> nextNumberTask = Task.Run(async() => await NextNumber.Query().GetNextNumber()); Task.WaitAll(nextNumberTask); action.NextNumber.NextNumberValue = nextNumberTask.Result.NextNumberValue; } NextNumber.AddNextNumber(action.NextNumber).Apply(); process = true; } else if (action.command_action == TypeOfObservableAction.UpdateData) { NextNumber.UpdateNextNumber(action.NextNumber).Apply(); process = true; } else if (action.command_action == TypeOfObservableAction.DeleteData) { NextNumber.DeleteNextNumber(action.NextNumber).Apply(); process = true; } if (process == true) { listRemove.Add(action); } } foreach (var item in listRemove) { message.Actions.Remove(item); } return(retVal); } catch (Exception ex) { throw new Exception("MessageFromObserver", ex); } }