public void RemoveTaskGroup(string taskGroupGuid)
        {
            var hasTaskGroupGuid = TaskGroups.Any(x => x.Instance.Guid == taskGroupGuid);

            CommUtils.Assert(hasTaskGroupGuid, "此工作组不存在");

            var taskGroupLogicModel = TaskGroups.Single(x => x.Instance.Guid == taskGroupGuid);
            var taskGroup           = taskGroupLogicModel.Instance;
            var tasks = m_dbAdapter.Task.GetByTaskGroupId(taskGroup.Id);

            var taskShortCodes   = tasks.Select(x => x.ShortCode);
            var taskPermisssions = m_dbAdapter.Permission.GetByObjectUid(taskShortCodes);

            taskPermisssions.ForEach(x => m_dbAdapter.Permission.DeletePermission(x));

            tasks.ForEach(x => m_dbAdapter.Task.DeleteTask(x));

            //删除项目问题中对应的受阻工作
            var connectTasks = m_dbAdapter.IssueConnectionTasks.GetConnectionTasksByShortCodes(taskShortCodes.ToList());

            m_dbAdapter.IssueConnectionTasks.DeleteConnectionTasks(connectTasks);

            var taskGroupPermissions = m_dbAdapter.Permission.GetByObjectUid(taskGroupGuid);

            taskGroupPermissions.ForEach(x => m_dbAdapter.Permission.DeletePermission(x));

            taskGroup = m_dbAdapter.TaskGroup.RemoveTaskGroup(taskGroup);

            Activity.Add(taskGroup.ProjectId, ActivityObjectType.TaskGroup, taskGroup.Guid, "删除工作组:" + taskGroup.Name);

            m_taskGroups = null;
        }
        public void CanLogActivity()
        {
            AppConf appConf          = new AppConf("TestApp");
            string  testActivityName = "TestActivityName_".RandomLetters(8);

            Activity.Add(appConf, testActivityName, "This is a test message: {0}", "arg value");
            Thread.Sleep(1500);
            Expect.IsGreaterThan(Activity.Retrieve(testActivityName).ToArray().Length, 0);
        }
示例#3
0
        private void NotifyActivity(string details)
        {
            if (!_logEnabled)
            {
                return;
            }

            var curentThread = Thread.CurrentThread;

            Activity.Add(details + ":: Thread Id: " + curentThread.ManagedThreadId + " Thread pool thread: " + curentThread.IsThreadPoolThread);
        }
示例#4
0
        public async void LoadEvents()
        {
            var events = await _restInterface.GetEvents();

            foreach (var inst in events)
            {
                Activity.Add(inst);
            }

            IsBusy = false;
        }
示例#5
0
 protected void SetProperties(Activity activity)
 {
     activity.Description = this.Description;
     this.DependsOn?.ForEach(item => activity.DependsOn.Add(item?.ToSdkObject()));
     this.UserProperties?.ForEach(item => activity.UserProperties.Add(item?.ToSdkObject()));
     if (this.AdditionalProperties != null)
     {
         foreach (var item in this.AdditionalProperties)
         {
             if (item.Key != "typeProperties")
             {
                 activity.Add(item.Key, item.Value);
             }
         }
     }
 }
        }                                        //TODO: Переписать на IEnumerable

        public void Add(Activity activity, DateTime begin, DateTime end)
        {
            Activity act = Activity.SingleOrDefault(a => a.Name == activity.Name);

            if (act == null)
            {
                Activity.Add(activity);

                var exercises = new Exercies(begin, end, activity, user);
                Exercises.Add(exercises);
            }
            else
            {
                var exercises = new Exercies(begin, end, act, user);
                Exercises.Add(exercises);
            }

            Save();
        }
        void AddEntry()
        {
            //First, get item from Inventory.
            if (!string.IsNullOrEmpty(SearchKey))
            {
                foreach (ActiveInventoryObject aio in Cache.Current.Inventory.GetByUPCorSKU(SearchKey))
                {
                    ActiveInventoryObject newItem = new ActiveInventoryObject();

                    newItem.CopyProperties(aio);
                    newItem.Quantity = this.Quantity;
                    newItem.Price    = newItem.GetPriceEach(SelectedPricingModel);
                    newItem.AcceptChanges();
                    newItem.TotalDollarChanged += newItem_TotalDollarChanged;
                    Activity.Add(newItem);
                }
                RefreshTotals();
                SetStartFocus();
            }
        }
        public TaskGroupLogicModel NewTaskGroup(string projectSeriesGuid, string name, string description)
        {
            ValidateUtils.Name(name, "名称");
            ValidateUtils.Description(description, "描述");

            var taskGroups = m_dbAdapter.TaskGroup.GetByProjectId(m_instance.ProjectId);

            CommUtils.Assert(!taskGroups.Any(x => x.Name == name), "[{0}]中,[{1}]分组已存在", m_instance.Name, name);

            var taskGroup  = m_dbAdapter.TaskGroup.NewTaskGroup(m_instance.ProjectId, name, description);
            var logicModel = new TaskGroupLogicModel(this, taskGroup);

            var project = m_dbAdapter.Project.GetProjectById(taskGroup.ProjectId);
            var permissionLogicModel = new PermissionLogicModel(this);
            var projectSeries        = m_dbAdapter.ProjectSeries.GetById(project.ProjectSeriesId.Value);

            permissionLogicModel.SetPermission(projectSeries, project, taskGroup.Guid, PermissionObjectType.TaskGroup);

            Activity.Add(taskGroup.ProjectId, ActivityObjectType.TaskGroup, taskGroup.Guid, "新建工作组:" + name);

            m_taskGroups = null;

            return(logicModel);
        }
示例#9
0
        public void AddTask()
        {
            UnitOfWork  task = new UnitOfWork();
            ActivityLog log  = new ActivityLog()
            {
                Id = task.Id
            };

            Stopwatch sw1 = Stopwatch.StartNew();

            TaskList.Add(task);
            Activity.Add(log);
            log.AddElapsed = sw1.Elapsed;

            Task.Factory.StartNew(task.Run, TaskCreationOptions.AttachedToParent)
            .ContinueWith(t =>
            {
                Stopwatch sw2     = Stopwatch.StartNew();
                bool rc           = TaskList.Remove(task);
                int index2        = TaskList.IndexOf(task);
                log.RemoveElapsed = sw2.Elapsed;
                log.Success       = rc && index2 == -1;
            });
        }