Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        private async Task Process(ProcessBlockMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (message.BlockGraph == null)
            {
                throw new ArgumentNullException(nameof(message.BlockGraph));
            }

            var job = await unitOfWork.Job.GetFirstOrDefault(x => x.Hash.Equals(Id.ToHex()) && x.Status == JobState.Blockmainia);

            if (job != null)
            {
                var block = await processBlockActorProvider.ProcessBlock(new BlockGraphMessage(message.BlockGraph));

                if (block == null)
                {
                    return;
                }

                Graph.Add(block.ToBlockGraph());

                await unitOfWork.Job.SetState(job, JobState.Running);
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="message"></param>
 /// <returns></returns>
 public Task Process(ProcessBlockMessage message)
 {
     actor.Tell(message);
     return(Task.CompletedTask);
 }