public List <FateEntity> GetFate(IStory story)
        {
            List <FateEntity> rl = new List <FateEntity>();
            var l = story.GetFate(this);

            //if(filterType== FilterType.Type)
            //{
            //    l = l.Where(v => v.Item1.GetType().Name == filter).ToList();
            //}
            //if(filterType== FilterType.Name)
            //{
            //    l = l.Where(v => v.Item1.Name == filter).ToList();
            //}
            l.ForEach(v =>
            {
                var fateEntity = new FateEntity()
                {
                    Name                = v.Item1.Name,
                    FateEntityType      = GetEntityType(v.Item1),
                    Description         = v.Item2.Memo,
                    BeginTime           = CommonProc.GetMaxTime(v.Item2.BeginTime, v.Item1.BeginTime),
                    EndTime             = CommonProc.GetMinTime(v.Item2.EndTime, v.Item1.EndTime),
                    RelationType        = v.Item2.RelationType,
                    RelationDescription = v.Item2.Memo
                };
                //fateEntity.KeywordList.AddRange(v.Item1.KeyWordList);
                rl.Add(fateEntity);
            });
            return(rl);
        }
Beispiel #2
0
 void RefreshTrack(List <ISubject> l, List <Tuple <IRelation, IStoryEntityObject, IStoryEntityObject> > fl)
 {
     TrackList.Clear();
     foreach (var s in l)
     {
         var t = new Track()
         {
             Name = s.Name
         };
         var sl = fl.Where(v => v.Item2.ObjectID == s.ObjectID || v.Item3.ObjectID == s.ObjectID);
         foreach (var r in sl)
         {
             var e = new FateEntity()
             {
                 Name = s.Name,
                 RelationDescription = r.Item1.Memo,
                 BeginTime           = r.Item1.BeginTime,
                 EndTime             = r.Item1.EndTime,
                 RelationType        = r.Item1.RelationType
             };
             if (s.ObjectID == r.Item1.SourceID)
             {
                 e.Description = "To " + r.Item3.Name;
             }
             if (s.ObjectID == r.Item1.TargetID)
             {
                 e.Description = "From " + r.Item2.Name;
             }
             t.EntityList.Add(e);
         }
         TrackList.Add(t);
     }
 }
        void DrawEntity(FateEntity entity, double y, double h)
        {
            var x1 = GetPosition(entity.BeginTime);
            var x2 = GetPosition(entity.EndTime);
            var b  = new Border()
            {
                BorderThickness = new Windows.UI.Xaml.Thickness()
                {
                    Left = 1, Right = 1, Top = 2, Bottom = 2
                },
                Background = new SolidColorBrush()
                {
                    Color = Colors.LightGray, Opacity = 0.3
                },
                Height            = h,
                Width             = x2 - x1,
                VerticalAlignment = VerticalAlignment.Center
            };

            Canvas.SetLeft(b, x1);
            Canvas.SetTop(b, y);
            TargetCanvas.Children.Add(b);
        }