Пример #1
0
        // 如果内存中有数据,就从内存中取,否则尝试加载一个,并放入容器
        public void Retrieve(IDType id, Action <T> cb)
        {
            DataItemWrapper w = Get(id);

            if (!w != null)
            {
                if (cb != null)
                {
                    cb(!w);
                }
            }
            else
            {
                data.Remove(id);
                Load(id, (T d) =>
                {
                    w = Get(id);
                    if (d != null && !w == null)
                    {
                        w          = new DataItemWrapper(d);
                        data[d.ID] = w;
                    }

                    if (cb != null)
                    {
                        cb(!w);
                    }
                });
            }
        }
Пример #2
0
        public void ThreeRowsSimple()
        {
            var definitionC = new NodeDefinition
            {
                Name      = "C",
                DependsOn = new List <string>
                {
                    "B"
                }
            };

            var definitionB = new NodeDefinition
            {
                Name      = "B",
                DependsOn = new List <string>
                {
                    "A"
                }
            };

            var definitionA = new NodeDefinition
            {
                Name = "A"
            };
            var counterWrapper = new TestCounterWrapper();
            var nodeRegistry   = new NodeRegistry <string>();

            nodeRegistry.Register("A", new BaseNode <string>(new TestActionProcess(p =>
            {
                if (p.Number < 3)
                {
                    p.Item = $"AAA{counterWrapper.Counter++}";
                }
                else
                {
                    p.Stop();
                }
            }), definitionA));
            nodeRegistry.Register("B",
                                  new BaseNode <string>(new TestActionProcess(p => { p.Item = p.Item += "BBB"; }), definitionB));
            nodeRegistry.Register("C",
                                  new BaseNode <string>(new TestActionProcess(p => { p.Item = p.Item += "CCC"; }), definitionC));

            var provider = new NodeDefinitionProvider("C");

            provider.Register("C", definitionC);
            provider.Register("B", definitionB);
            provider.Register("A", definitionA);

            var runner  = new DataNodeRunner <string>(provider, nodeRegistry);
            var wrapper = new DataItemWrapper <string>();

            runner.Step(wrapper);
            Assert.AreEqual("AAA0BBBCCC", wrapper.Item);
            runner.Step(wrapper);
            Assert.AreEqual("AAA1BBBCCC", wrapper.Item);
            runner.Step(wrapper);
            Assert.AreEqual("AAA2BBBCCC", wrapper.Item);
        }
Пример #3
0
 internal BeforeEventRenderEventArgs(Event e)
 {
     this.Id    = e.Id;
     this.Start = e.Start;
     this.End   = e.End;
     this.Text  = e.Text;
     DataItem   = new DataItemWrapper(e.Source);
 }
 internal ConflictEvent(EventPart e)
 {
     this.Start    = e.Event.Start;
     this.End      = e.Event.End;
     this.Value    = e.Event.Id;
     this.Position = e.EvColumn.Number;
     this.DataItem = new DataItemWrapper(e.Event.Source);
 }
Пример #5
0
 internal BeforeEventRenderEventArgs(Event e)
 {
     this.Value    = e.PK;
     this.Start    = e.Start;
     this.End      = e.End;
     this.Text     = e.Name;
     this.ColumnId = e.Resource;
     DataItem      = new DataItemWrapper(e.Source);
 }
Пример #6
0
        internal BeforeEventRenderArgs(Event e)
        {
            Id    = e.Id;
            Text  = e.Text;
            Start = e.Start;
            End   = e.End;

            DataItem = new DataItemWrapper(e.Source);
        }
Пример #7
0
 internal BeforeEventRenderEventArgs(Event e)
 {
     this.Value      = e.Id;
     this.Start      = e.Start;
     this.Arrival    = e.Arrival;
     this.End        = e.End;
     this.Departure  = e.Departure;
     this.Text       = e.Text;
     this.ResourceId = e.Resource;
     DataItem        = new DataItemWrapper(e.Source);
 }
Пример #8
0
        // 新增数据
        public void AddNew(T it)
        {
            if (data.ContainsKey(it.ID))
            {
                throw new Exception(it.ID + " already exists in data container");
            }

            DataItemWrapper w = new DataItemWrapper(it);

            w.Fix();
            data[it.ID]        = w;
            it.Status.NewAdd   = true;
            it.Status.Modified = false;
        }
Пример #9
0
        public void ABBCSimpleWhenANodeShouldntBeCalledTwice()
        {
            var definitionC = new NodeDefinition
            {
                Name      = "C",
                DependsOn = new List <string>
                {
                    "B",
                    "A"
                }
            };

            var definitionB = new NodeDefinition
            {
                Name      = "B",
                DependsOn = new List <string>
                {
                    "A"
                }
            };

            var definitionA = new NodeDefinition
            {
                Name = "A"
            };
            var nodeRegistry = new NodeRegistry <string>();

            nodeRegistry.Register("A", new BaseNode <string>(new TestActionProcess(p => { p.Item = "AAA"; }), definitionA));
            nodeRegistry.Register("B",
                                  new BaseNode <string>(new TestActionProcess(p => { p.Item = p.Item += "BBB"; }), definitionB));
            nodeRegistry.Register("C",
                                  new BaseNode <string>(new TestActionProcess(p => { p.Item = p.Item += "CCC"; }), definitionC));

            var provider = new NodeDefinitionProvider("C");

            provider.Register("C", definitionC);
            provider.Register("B", definitionB);
            provider.Register("A", definitionA);

            var runner  = new DataNodeRunner <string>(provider, nodeRegistry);
            var wrapper = new DataItemWrapper <string>();

            runner.Step(wrapper);
            Assert.AreEqual("AAABBBCCC", wrapper.Item);
        }
    protected void DayPilotScheduler1_BeforeResHeaderRender(object sender, BeforeHeaderRenderEventArgs e)
    {
        DataItemWrapper task = e.DataItem;

        string name     = (string)task["AssignmentNote"];
        int    id       = Convert.ToInt32(task["AssignmentId"]);
        string resource = Convert.ToString(task["ResourceName"]);
        string status   = Convert.ToString(task["AssignmentStatus"]);

        TimeSpan duration = TimeSpan.FromMinutes(Convert.ToInt32(task["AssignmentDuration"]));

        string durationString = duration.ToHourMinuteString();
        string spentString    = Binder.Get(task, "AssignmentDurationReal").IsNotNull
                                 ? Binder.Get(task, "AssignmentDurationReal").TimeSpanFromMinutes.ToHourMinuteString() : String.Empty;

        e.InnerHTML            = TaskLink(name, id, status);
        e.Columns[0].InnerHTML = "<div style='text-align:right'>" + durationString + "</div>";
        e.Columns[1].InnerHTML = "<div style='text-align:right'>" + spentString + "</div>";
        e.Columns[2].InnerHTML = resource;
    }