コード例 #1
0
 private CloudInstance GetCloudInstance(string threadGroup)
 {
     using (var context = new InteractContext())
     {
         return(context.CloudInstance.Where(c => c.Threadgroup == threadGroup).FirstOrDefault());
     }
 }
コード例 #2
0
 public Library.Structure.ConsumerStatus GetThreadGroupServerStatus(string threadGroup)
 {
     using (var context = new InteractContext())
     {
         return(context.CloudInstance.Where(c => c.Threadgroup == threadGroup).Select(c => (Library.Structure.ConsumerStatus)c.ConsumerStatusId).FirstOrDefault());
     }
 }
コード例 #3
0
        public void SetConsumerThreadStatus(string threadGroup, string identifier, Library.Structure.ConsumerStatus clientStatus)
        {
            using (var context = new InteractContext())
            {
                using (var scope = CreateTransactionScope())
                {
                    var clientInstance = context.CloudClientInstance.Where(c => c.Identifier == identifier).FirstOrDefault();

                    if (clientInstance == null)
                    {
                        var serverInstance = GetCloudInstance(threadGroup);

                        if (serverInstance == null)
                        {
                            throw new NotFoundException($"Consumer Instance not fount to the threadgroup = {threadGroup}");
                        }

                        context.CloudClientInstance.Add(new CloudClientInstance
                        {
                            Identifier       = identifier,
                            CloudInstanceId  = serverInstance.Id,
                            ConsumerStatusId = Convert.ToInt32(clientStatus),
                            Created          = DateTime.Now,
                            Updated          = DateTime.Now
                        });
                    }
                    else
                    {
                        clientInstance.ConsumerStatusId = Convert.ToInt32(clientStatus);
                        clientInstance.Updated          = DateTime.Now;
                        context.CloudClientInstance.Update(clientInstance);
                    }
                    context.SaveChanges();
                    scope.Complete();
                }
            }
        }