Ejemplo n.º 1
0
        protected void RefreshBackgroundTaskComponent(List <BackgroundTaskPool.BackgroundTask> backTasks)
        {
            try
            {
                var backTasksProcessingNo = backTasks.FindAll(x => x.Status == (int)TaskStatus.Processing).Count;
                var backTasksWaitingNo    = backTasks.FindAll(x => x.Status == (int)TaskStatus.Waiting).Count;
                RunningStatusSectionBackgroundTaskRegionImageTextButton.Text = BackgroundTaskImageTextButtonText + @" " + backTasksProcessingNo + @"/" + backTasksWaitingNo;
                if (backTasksProcessingNo > 0)
                {
                    RunningStatusSectionBackgroundTaskRegionProgressCircleZone.Width = BackgroundTaskProgressCircleSize;
                    RunningStatusSectionBackgroundTaskRegionProgressCircle.Visible   = true;
                    RunningStatusSectionBackgroundTaskRegionProgressCircle.Width     = BackgroundTaskProgressCircleSize;
                    RunningStatusSectionBackgroundTaskRegionProgressCircle.Start();
                }
                else
                {
                    RunningStatusSectionBackgroundTaskRegionProgressCircle.Visible = false;
                    RunningStatusSectionBackgroundTaskRegionProgressCircle.Stop();
                    RunningStatusSectionBackgroundTaskRegionProgressCircleZone.Width = 0;
                }
                BackgroundTaskDetailLabel.Text = BackgroundTaskInfoLabelText;
                var idValTextList = new List <IdValueText>();
                foreach (var task in backTasks)
                {
                    var typeIdName = _backgroundTaskTypeList.Find(x => x.Id == task.Type);
                    if (typeIdName != null)
                    {
                        task.TypeName = AnnexHelper.GetText("", typeIdName.Name, _backgroundTaskTypeAnnexes, AnnexTextType.DisplayName, CultureHelper.CurrentLanguageCode, GetAnnexMode.StepByStep);
                    }
                    else
                    {
                        task.TypeName = WinformRes.Unknown;
                    }

                    Type t        = task.GetType();
                    var  myFields = t.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
                    for (int i = 0; i < myFields.Length; i++)
                    {
                        var idValueText = new IdValueText();
                        idValueText.Id    = task.Id;
                        idValueText.Value = myFields[i].Name;
                        var obj = myFields[i].GetValue(task);
                        idValueText.Text = obj == null ? "" : obj.ToString();
                        idValTextList.Add(idValueText);
                    }
                }
                ////BackgroundTaskDetailListViewEx.Render(idValTextList);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + GetType().FullName + "." + "RefreshBackgroundTaskComponent Error: " + ex.Message);
            }
        }