コード例 #1
0
        public void TestGenericStart()
        {
            var task     = new ManualTask <int>();
            var listener = new TaskListener <int>();

            task.StartTask(listener);
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(default(int), listener.Value);

            task     = new ManualTask <int>((t) => t.SetFinished(100));
            listener = new TaskListener <int>();
            task.StartTask(listener);
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(100, listener.Value);
        }
コード例 #2
0
        public void Test()
        {
            var request  = new ManualTask <bool>((f) => f.SetFinished(true));
            var cacheReq = new CacheRequest <bool>(0, request);

            Assert.AreEqual(request, cacheReq.Request);
            Assert.AreEqual(0, cacheReq.Listeners.Count);

            var listener = cacheReq.Listen();

            Assert.IsNotNull(listener);
            Assert.AreEqual(1, cacheReq.Listeners.Count);
            Assert.IsFalse(listener.Value);

            var listener2 = cacheReq.Listen();

            Assert.IsNotNull(listener2);
            Assert.AreEqual(2, cacheReq.Listeners.Count);
            Assert.IsFalse(listener2.Value);

            cacheReq.Unlisten(new CacheListener <bool>(0));
            Assert.AreEqual(2, cacheReq.Listeners.Count);

            cacheReq.StartRequest();
            Assert.IsTrue(listener.Value);
            Assert.IsTrue(listener2.Value);
        }
コード例 #3
0
        public void TestStart()
        {
            var task     = new ManualTask((t) => {});
            var listener = new TaskListener();

            task.StartTask(listener);
            Assert.IsFalse(listener.IsFinished);
            Assert.AreEqual(0f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);

            task.SetProgress(0.25f);
            Assert.IsFalse(listener.IsFinished);
            Assert.AreEqual(0.25f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);

            task.SetFinished();
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
        }
コード例 #4
0
        protected internal override BaseElement ConvertXMLToElement(XMLStreamReader xtr, BpmnModel model)
        {
            ManualTask manualTask = new ManualTask();

            BpmnXMLUtil.AddXMLLocation(manualTask, xtr);
            ParseChildElements(XMLElementName, manualTask, model, xtr);
            return(manualTask);
        }
コード例 #5
0
ファイル: BpmnFactory.cs プロジェクト: windischb/BPMNUtils
        public virtual ManualTask CreateManualTask()
        {
            var task = new ManualTask();

            //task.Tag = new ManualTaskActivityBehavior();

            return(task);
        }
コード例 #6
0
        public void TestInitialState()
        {
            var task = new ManualTask();

            Assert.IsFalse(task.DidRun);
            Assert.IsFalse(task.IsFinished);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsNull(task.Listener);
        }
コード例 #7
0
ファイル: ManualTask.cs プロジェクト: zhangzihan/nactivity
        public override BaseElement Clone()
        {
            ManualTask clone = new ManualTask
            {
                Values = this
            };

            return(clone);
        }
コード例 #8
0
        public void CreatePackage(FileBasedProject project, string packageFile)
        {
            #region "CreateManualTask"
            ProjectFile[] packageFiles = project.GetTargetLanguageFiles(new Language(CultureInfo.GetCultureInfo("de-DE")));
            ManualTask    newTask      = project.CreateManualTask(
                "Translate",
                "Fred",
                DateTime.Now.AddDays(3),
                packageFiles.GetIds());
            #endregion

            #region "CreateProjectPackage"
            ProjectPackageCreation projectPackage = project.CreateProjectPackage(
                newTask.Id,
                "Sample Package",
                "Please hurry up, this is job is urgent!",
                GetPackageOptions());
            #endregion

            #region "PackageStatus"
            bool packageIsCreated = false;
            while (!packageIsCreated)
            {
                switch (projectPackage.Status)
                {
                case PackageStatus.Cancelling:
                case PackageStatus.InProgress:
                case PackageStatus.Scheduled:
                case PackageStatus.NotStarted:
                    packageIsCreated = false;
                    break;

                case PackageStatus.Cancelled:
                case PackageStatus.Completed:
                case PackageStatus.Failed:
                case PackageStatus.Invalid:
                    packageIsCreated = true;
                    break;

                default:
                    break;
                }
            }

            if (projectPackage.Status != PackageStatus.Completed)
            {
                throw new Exception("A problem occurred during package creation.");
            }

            #endregion

            #region "SavePackage"
            project.SavePackageAs(projectPackage.PackageId, packageFile);
            #endregion
        }
コード例 #9
0
        public void TestGenericOnFinished()
        {
            var task = new ManualTask <int>((t) => t.SetFinished(50));

            int value = 0;

            task.OnFinished += (v) => value = v;

            task.StartTask();
            Assert.AreEqual(50, value);
        }
コード例 #10
0
        //Output the project as a package
        private void CreateProjectPackage(FileBasedProject createdProject, Language targetLanguage, string packageOutputPath)
        {
            // at first create a manual task which will be added into the package
            ManualTask translate = createdProject.CreateManualTask(
                "Translate",
                "API translator",
                DateTime.Now.AddDays(7),
                this.GetTaskFiles(createdProject, targetLanguage));

            // As last parameter of previous method you can suply array of TaskFileInfo(s), example here, or just array of Guids
            // which you can get by using createdProject.GetTargetLanguageFiles(targetLanguage).GetIds(); we should document this option

            // create a project package
            ProjectPackageCreation package = createdProject.CreateProjectPackage(
                translate.Id,
                "mypackage",
                "A package created by the API",
                this.GetPackageOption());

            bool packageIsCreated = false;

            while (!packageIsCreated)
            {
                switch (package.Status)
                {
                case PackageStatus.Cancelling:
                case PackageStatus.InProgress:
                case PackageStatus.Scheduled:
                case PackageStatus.NotStarted:
                    packageIsCreated = false;
                    break;

                case PackageStatus.Cancelled:
                case PackageStatus.Completed:
                case PackageStatus.Failed:
                case PackageStatus.Invalid:
                    packageIsCreated = true;
                    break;

                default:
                    break;
                }
            }

            if (package.Status != PackageStatus.Completed)
            {
                throw new Exception("Problem during package creation");
            }

            // Save the package as a file
            createdProject.SavePackageAs(package.PackageId, packageOutputPath);
        }
コード例 #11
0
        protected internal override Task createModelAccessTask(BpmnModelInstance modelInstance, Type delegateClass)
        {
            ManualTask task = modelInstance.newInstance(typeof(ManualTask));

            task.Id = "manualTask";
            CamundaExecutionListener executionListener = modelInstance.newInstance(typeof(CamundaExecutionListener));

            executionListener.CamundaEvent = [email protected]_Fields.EVENTNAME_START;
//JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method:
            executionListener.CamundaClass = delegateClass.FullName;
            task.builder().addExtensionElement(executionListener);
            return(task);
        }
コード例 #12
0
        /// <summary>
        /// Starts loading hit object to resolve for specified future.
        /// </summary>
        private IEnumerator LoadHitObjects(ManualTask task)
        {
            int createCount = 0;
            int lastLoads   = 0;

            foreach (var obj in GameSession.CurrentMap.HitObjects)
            {
                // If create count reached 0, determine new creation count.
                if (createCount <= 0)
                {
                    createCount = Mathf.Max((int)((1f / Time.deltaTime) + lastLoads) / 4, 1);
                    lastLoads   = createCount;
                    yield return(null);
                }
                createCount--;

                HitObjectView hitObjView = null;
                if (obj is HitCircle hitCircle)
                {
                    var hitCircleView = hitCircleRecycler.GetNext();
                    hitCircleView.Depth       = hitObjectViews.Count;
                    hitCircleView.ObjectIndex = hitObjectViews.Count;
                    hitCircleView.SetHitObject(hitCircle);

                    hitObjectViews.Add(hitCircleView);
                    hitObjView = hitCircleView;
                }
                else if (obj is Dragger dragger)
                {
                    var draggerView = draggerRecycler.GetNext();
                    draggerView.Depth       = hitObjectViews.Count;
                    draggerView.ObjectIndex = hitObjectViews.Count;
                    draggerView.SetHitObject(dragger);

                    hitObjectViews.Add(draggerView);
                    hitObjView = draggerView;
                }

                if (hitObjView != null)
                {
                    // Apply combo color
                    var combo = obj as IHasCombo;
                    if (combo != null)
                    {
                        hitObjView.Tint = GetComboColor(combo);
                    }
                }
            }
            task.SetFinished();
        }
コード例 #13
0
        public void TestOnFinished()
        {
            var task = new ManualTask();

            bool isFinished = false;

            task.OnFinished += () => isFinished = true;
            Assert.IsFalse(isFinished);

            task.StartTask();
            Assert.IsTrue(isFinished);

            isFinished = false;
            task.StartTask();
            Assert.IsFalse(isFinished);
        }
コード例 #14
0
        private void RunDummyTask(ManualTask <DummyCacherData> task, string key)
        {
            var timer = new SynchronizedTimer()
            {
                Limit = 1f
            };

            timer.OnFinished += () =>
            {
                task.SetFinished(new DummyCacherData()
                {
                    Key         = key,
                    IsDestroyed = false
                });
            };
            timer.OnProgress += task.SetProgress;
            timer.Start();
        }
コード例 #15
0
        /// <summary>
        /// Event called on game session hard initialization.
        /// </summary>
        private void OnHardInit()
        {
            curComboOffset = 0;
            comboColors    = GameSession.CurrentMap.ComboColors;
            if (comboColors == null || comboColors.Count == 0)
            {
                comboColors = ColorPreset.DefaultComboColors;
            }

            Coroutine  loadRoutine = null;
            ManualTask task        = new ManualTask((t) => loadRoutine = UnityThread.StartCoroutine(LoadHitObjects(t)));

            task.IsRevoked.OnNewValue += (revoked) =>
            {
                if (revoked && loadRoutine != null)
                {
                    UnityThread.StopCoroutine(loadRoutine);
                }
            };
            Model.AddAsLoader(task);
        }
コード例 #16
0
        public void TestWithComplexTasks()
        {
            var manualTask = new ManualTask((t) => { });
            var multiTask  = new MultiTask(new List <ITask>()
            {
                new ManualTask((t) => {}),
                new ManualTask((t) => {})
            });
            var tasks = new List <ITask>()
            {
                manualTask,
                multiTask
            };

            var task     = new MultiTask(tasks);
            var listener = new TaskListener();

            task.StartTask(listener);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(2, task.Tasks.Count);
            Assert.IsFalse(task.IsFinished);
            Assert.IsTrue(task.DidRun);
            Assert.AreEqual(0f, listener.TotalProgress, Delta);
            Assert.IsFalse(listener.IsFinished);

            (multiTask.Tasks[0] as ManualTask).SetFinished();
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(0.25f, listener.TotalProgress, Delta);
            Assert.IsFalse(listener.IsFinished);

            manualTask.SetFinished();
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(0.75f, listener.TotalProgress, Delta);
            Assert.IsFalse(listener.IsFinished);

            (multiTask.Tasks[1] as ManualTask).SetFinished();
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(1f, listener.TotalProgress, Delta);
            Assert.IsTrue(listener.IsFinished);
        }
コード例 #17
0
 public virtual ManualTaskActivityBehavior CreateManualTaskActivityBehavior(ManualTask manualTask)
 {
     return(new ManualTaskActivityBehavior());
 }
コード例 #18
0
 protected internal AbstractManualTaskBuilder(BpmnModelInstance modelInstance, ManualTask element, Type selfType) : base(modelInstance, element, selfType)
 {
 }