protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters) { switch (operationRequest.OperationCode) { // Echo case 0: { var request = OperationFactory.GetRequest(operationRequest.OperationCode, operationRequest.Parameters) as EchoRequest; EchoResponse response = new EchoResponse(request.Message); SendOperationResponse(new OperationResponse(response.OperationCode, response.Parameters), sendParameters); } break; // Delay Echo case 1: { var request = OperationFactory.GetRequest(operationRequest.OperationCode, operationRequest.Parameters) as DelayRequest; int sleepTime = request.DelayMilliSeconds; Thread.Sleep(sleepTime); DelayResponse response = new DelayResponse(request.DelayMilliSeconds, request.Message); SendOperationResponse(new OperationResponse(response.OperationCode, response.Parameters), sendParameters); } break; } }
private void OnReceiveDelayResponse(DelayResponse m) { var newMessage = new DelayResponse($"{m.Message}|||{Self.Path.Name} adding to the message"); barActor.Tell(newMessage, Sender); //passing along Sender so the reply goes back to the MVC controller Self.Tell(PoisonPill.Instance); //this tells itself a message to shutdown so this instance of the actor is removed }
private void OnReceiveDelayResponse(DelayResponse m) { var actor = CreateChild(); Context.System.Scheduler.ScheduleTellOnce(TimeSpan.FromSeconds(2), actor, m, Sender); }
public string GetWithActorDelayed(string message) { var newMessage = new DelayResponse($"MVC Contoller (with delay) says: {message}"); var response = _systemActors.FooCoordinatorActor.Ask <ResponseDelayed>(newMessage).Result; return(response.Response); }
public async Task <DelayResponse> DelayAsync(TimeSpan delay, CancellationTokenProxy token) { WaitForOperationStarted.Set(); var result = new DelayResponse { Delay = delay, TokenCanBeCanceled = token.Token.CanBeCanceled }; try { await Task.Delay(delay, token).ConfigureAwait(false); } catch (Exception ex) { result.IsFaulted = true; result.ExceptionType = ex.GetType().AssemblyQualifiedName; result.ExceptionMessage = ex.ToString(); } result.IsCanceled = token.Token.IsCancellationRequested; return(result); }
private void OnReceiveDelayResponse(DelayResponse m) { var newMessage = new ResponseDelayed($"{m.Message}|||{Self.Path.Name} adding to the message"); Sender.Tell(newMessage); }
public virtual JsonResult IndexDelaysDetails(string operationNumber) { DelayResponse response; var jsonDataRequest = PageSerializationHelper.DeserializeJsonForm(Request.Form[0]); var viewModel = PageSerializationHelper.DeserializeObject <DelaysEditModel>(jsonDataRequest.SerializedData); Dictionary <int, string> ListOutputs = new Dictionary <int, string>(); Dictionary <int, string> ListOutcomes = new Dictionary <int, string>(); var ResultOP = _ClientDelayArchievementRepository.GetListOutputs(operationNumber); var ResultOC = _ClientDelayArchievementRepository.GetListOutComes(operationNumber); foreach (var data in ResultOP) { if (data.Key != 0) { ListOutputs.Add(data.Key, data.Value); } } foreach (var data in ResultOC) { if (data.Key != 0) { ListOutcomes.Add(data.Key, data.Value); } } string lang = IDBContext.Current.CurrentLanguage.ToUpper(); var ListDelaysType = _ClientDelayArchievementRepository.GetTypesDelay(lang); viewModel.UpdateAchievementDelayFromFieldViewModel(jsonDataRequest.ClientFieldData, ListOutputs, ListOutcomes, ListDelaysType); response = new DelayResponse(); if (viewModel.DeleteDelay.Count > 0) { response.IsValid = _ClientDelayArchievementRepository.DeleteAchievement(viewModel.DeleteDelay.ToArray()); } if (viewModel.DeleteOtherDelay.Count > 0) { response.IsValid = _ClientDelayArchievementRepository.DeleteOtherDelay(viewModel.DeleteOtherDelay.ToArray()); } ViewBag.IsFREditable = _findingRecomendationService.OperationEditValidation(operationNumber); var userName = IDBContext.Current.UserLoginName; var errorMessage = SynchronizationHelper.AccessToResources("edit", TCMGlobalValues.URL_DELAYS_DETAILS, operationNumber, userName); if (!string.IsNullOrWhiteSpace(errorMessage)) { response.IsValid = false; response.ErrorMessage = errorMessage; } else { response.IsValid = _ClientDelayArchievementRepository.SaveDelays(viewModel); if (response.IsValid) { SynchronizationHelper.TryReleaseLock(TCMGlobalValues.URL_DELAYS_DETAILS, operationNumber, userName); } } return(Json(response)); }