Exemplo n.º 1
0
        public async Task <IOperationMessage> GetOperationStatusAsync(Guid id)
        {
            if (!Messages.Any(m => m.Id == id))
            {
                IOperationMessage message = null;
                await Task.Run(async() =>
                {
                    int counter = 0;
                    //TODO: Possibly use a timer here may underload fail and always fallback.
                    while (!Messages.Any(m => m.Id == id) && IsConnected == true)
                    {
                        if (counter == 5)
                        {
                            break;
                        }
                        counter++;
                        Thread.Sleep(300);
                    }
                    if (Messages.Any(m => m.Id == id))
                    {
                        message = PopMessage(id, counter);
                        return;
                    }
                    else
                    {
                        message = await _operationsClient.GetOperationMessageAsync(id);
                    }
                });

                return(message);
            }

            return(PopMessage(id));
        }
Exemplo n.º 2
0
 /// <summary>
 /// Creates a new operation message.
 /// </summary>
 /// <param name="message">The message to create.</param>
 public void CreateOperationMessage(IOperationMessage message)
 {
     this.context.CreateOperationMessage(
         message.Operation.Id,
         message.Operation.TimeStamp,
         message.Message.Type,
         message.Message.TextHash,
         message.Message.Text);
 }
Exemplo n.º 3
0
 private void MessageRecievedHandler(object sender, IOperationMessage message)
 {
     _logger.LogInformation("Message recived with status: " + message.Status);
     Messages.Add(message);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Creates a new operation message.
 /// </summary>
 /// <param name="message">The message to create.</param>
 public void CreateOperationMessage(IOperationMessage message)
 {
     this.Invoke(
         () => this.repository.CreateOperationMessage(message),
         nameof(this.repository.CreateOperationMessage));
 }