protected override async Task ProcessMessage(ExternalEventNotification notification, CancellationToken cancellationToken) { string lockName = $"extevt:{notification.Id}"; if (!await _distributedLock.TryAcquireLock(lockName, cancellationToken)) { return; } try { var subscriber = await _subscriberRepository.Get(notification.CasePlanInstanceId, notification.CasePlanElementInstanceId, notification.EvtName, cancellationToken); if (subscriber == null) { throw new InvalidOperationException("subscriber doesn't exist"); } subscriber.IsCaptured = true; subscriber.Parameters = notification.Parameters; await _subscriberRepository.Update(subscriber, cancellationToken); await MessageBroker.QueueCasePlanInstance(notification.CasePlanInstanceId, cancellationToken); } finally { await _distributedLock.ReleaseLock(lockName, cancellationToken); } }
public ActionResult Subscribe(Subscriber subscriber) { var viewModal = new SubscriberViewModel(subscriber); if (!ModelState.IsValid) { viewModal.Status = new Status { Message = SubscribeFormDefinitions.ErroreMessage, Type = StatusType.danger }; return(PartialView("_FormFields", viewModal)); } if (_subscriberRepository.Get(subscriber.Email) != null) { viewModal.Status = new Status { Message = SubscribeFormDefinitions.DuplicateMessage, Type = StatusType.danger }; return(PartialView("_FormFields", viewModal)); } _subscriberRepository.Add(subscriber); _unitOfWork.Complete(); viewModal.Status = new Status { Message = SubscribeFormDefinitions.SuccessMessage, Type = StatusType.success }; viewModal.Subscriber = new Subscriber(); ModelState.Clear(); return(PartialView("_FormFields", viewModal)); }
public async Task <bool> Execute(string casePlanInstanceId, string casePlanElementInstanceId, Dictionary <string, string> parameters, CancellationToken token) { var casePlanInstance = await _casePlanInstanceCommandRepository.Get(casePlanInstanceId, token); if (casePlanInstance == null) { throw new UnknownCasePlanInstanceException(casePlanInstanceId); } if (!string.IsNullOrWhiteSpace(casePlanElementInstanceId)) { var elt = casePlanInstance.GetChild(casePlanElementInstanceId); if (elt == null) { throw new UnknownCasePlanElementInstanceException(casePlanInstanceId, casePlanElementInstanceId); } } var subscriber = await _subscriberRepository.Get(casePlanInstanceId, casePlanElementInstanceId, EvtName, token); if (subscriber == null) { throw new InvalidOperationException("subscriber doesn't exist"); } subscriber.IsCaptured = true; subscriber.Parameters = parameters; await _subscriberRepository.Update(subscriber, token); await _casePlanInstanceProcessor.Execute(casePlanInstance, token); await _casePlanInstanceCommandRepository.Update(casePlanInstance, token); await _casePlanInstanceCommandRepository.SaveChanges(token); return(true); }
private async Task <string> GetSubscriber(string id) { var Subscriber = await _subscriberRepository.Get(id); return(JsonConvert.SerializeObject(Subscriber)); }
public void GetFromNullSubscriberRepositoryShouldReturnNull() { _cut.Get("MyServerName", "MyQueueName").Should().BeNull(); }