コード例 #1
0
        private void UpdatePictureBoxWithPhoto(PictureBox pictureBox, string photoPath)
        {
            var oldRequest = (ImageLoadRequest)pictureBox.Tag;

            if (oldRequest?.RcImage.Path == photoPath)
            {
                return;
            }

            // Don't continue showing the old picture
            pictureBox.Image = null;
            pictureBox.Tag   = null;
            // If the old picture was not loaded yet, don't show it when it finishes loading.
            oldRequest?.CancellationTokenSource.Cancel();
            // We don't need the picture anymore, dispose of the bitmap if it has no more holders.
            oldRequest?.RcImage.Unref();

            if (photoPath == null)
            {
                return; // leave the picture blank, by request
            }
            var newRequest = new ImageLoadRequest
            {
                RcImage = imageCache.LoadAsync(photoPath).Ref(),
                CancellationTokenSource = new CancellationTokenSource()
            };

            pictureBox.Tag = (ImageLoadRequest)newRequest;
            newRequest.WaitAndSetImage(this, pictureBox);
        }
コード例 #2
0
 private void HandleInitiateMigration(InitiateMigration message)
 {
     //Case Docker
     if (ContainerTable.ContainerType == ContainersType.D)
     {
         var container = ContainerTable.GetContainerById(message.ContainerId) as DockerContainer;
         var imageId   = container.ImageId;
         var request   = new ImageLoadRequest(message.TargetHost, this.MachineId, imageId, message.ContainerId);
         CommunicationModule.SendMessage(request);
     }
     //Case Normal
     else
     {
         Task t = new Task(() =>
         {
             var container = ContainerTable.GetContainerById(message.ContainerId);
             ContainerTable.LockContainer(message.ContainerId);
             container.Checkpoint(this.MachineId);
             var size = (int)container.GetContainerNeededLoadInfo().CurrentLoad.MemorySize;
             MigrateContainerRequest request =
                 new MigrateContainerRequest(message.TargetHost, this.MachineId, container, size);
             CommunicationModule.SendMessage(request);
             ResetBackOff();
         });
         t.Start();
     }
     //GlobalEnviromentVariables.ResetCheckRate();
 }
コード例 #3
0
        public int GetTotalRecoredByTag(ImageLoadRequest req, int status)
        {
            string sql    = string.Format(@"Exec GetTotalRecoredByTag '{0}',{1}", req.TagName ?? "", status);
            var    result = context.Database.SqlQuery <int>(sql).FirstOrDefault();

            return(result);
        }
コード例 #4
0
        public int GetTotalRecored(ImageLoadRequest req, int status)
        {
            string sql    = string.Format(@"Exec GetTotalRecord '{0}','{1}','{2}','{3}',{4}", req.Category ?? "", req.FileName ?? "", req.TagName ?? "", req.EventName ?? "", status);
            var    result = context.Database.SqlQuery <int>(sql).FirstOrDefault();

            return(result);
        }
コード例 #5
0
        public List <Images_VM> GetUnapprovedImageList(ImageLoadRequest req)
        {
            string sql    = string.Format(@"Exec GetUnapprovedImages {0},{1},'{2}','{3}','{4}','{5}'", req.PageNo, req.PageSize, req.Category ?? "", req.FileName ?? "", req.TagName ?? "", req.EventName ?? "");
            var    result = context.Database.SqlQuery <Images_VM>(sql).ToList();

            return(result);
        }
コード例 #6
0
        public List <Images_VM> GetApprovedImageListByTag(ImageLoadRequest req)
        {
            string sql    = string.Format(@"Exec GetApprovedImagesByTag {0},{1},'{2}'", req.PageNo, req.PageSize, req.TagName ?? "");
            var    result = context.Database.SqlQuery <Images_VM>(sql).ToList();

            return(result);
        }
コード例 #7
0
        private void HandleImageLoadRequest(ImageLoadRequest message)
        {
            Task t = new Task(async() =>
            {
                var table = ContainerTable as DockerContainerTable;
                await table.LoadImage(message.ImageId);
                var responce = new ImageLoadResponce(message.SenderId, this.MachineId, message.ContainerId, true);
                CommunicationModule.SendMessage(responce);
            });

            t.Start();
        }
コード例 #8
0
 public JsonResult LoadUnapprovedImages(ImageLoadRequest req)
 {
     try
     {
         var result       = unitOfWork.SPRepository.GetUnapprovedImageList(req);
         var totalRecored = unitOfWork.SPRepository.GetTotalRecored(req, 0);
         return(Json(new { success = true, Data = result, TotalRecord = totalRecored }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(new { success = false, Data = ex.Message }, JsonRequestBehavior.AllowGet));
     }
 }