public override void Validate()
        {
            base.Validate();

            if(Lefts.Any(l => string.IsNullOrWhiteSpace(l)) ||
               Rights.Any(r => string.IsNullOrWhiteSpace(r)) ||
               Relation.Any(digit => !digit.HasValue)
            )
               throw new NullReferenceException("Error! There are empty fields.");
        }
Example #2
0
                /// <summary>
                /// 移除队首的
                /// </summary>
                public void PopFirst()
                {
                    if (SkewPipes.Count == 0)
                    {
                        return;
                    }

                    SkewPipes.RemoveAt(0);
                    Lefts.RemoveAt(0);
                    Rights.RemoveAt(0);
                }
Example #3
0
 public void Clear()
 {
     lock (lockObject)
     {
         var array = Lefts.ToArray();
         foreach (var item in array)
         {
             Remove(item);
         }
     }
 }
Example #4
0
                /// <summary>
                /// 移除队尾的
                /// </summary>
                public void PopLast()
                {
                    int index = SkewPipes.Count - 1;

                    if (index < 0)
                    {
                        return;
                    }

                    SkewPipes.RemoveAt(index);
                    Lefts.RemoveAt(index);
                    Rights.RemoveAt(index);
                }
Example #5
0
                /// <summary>
                /// 加入队列
                /// </summary>
                /// <param name="skewPipe"></param>
                public void Push(SkewPipe skewPipe)
                {
                    //这里以X小的为左点,X大的为右点
                    SkewPipes.Add(skewPipe);
                    var curve = (skewPipe.pipe.Location as LocationCurve).Curve;

                    if (curve.GetEndPoint(0).X < curve.GetEndPoint(1).X)
                    {
                        Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint);
                        Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint);
                    }
                    else
                    {
                        Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint);
                        Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint);
                    }
                }
        public void SetListLength(int length)
        {
            while (Lefts.Count > length)
            {
                Rights.RemoveAt(Lefts.Count - 1);
                Lefts.RemoveAt(Lefts.Count - 1);
                Relation.RemoveAt(Lefts.Count - 1);
            }

            while (Lefts.Count < length)
            {
                Lefts.Add(new QPart {
                    Text = ""
                });
                Rights.Add(new QPart {
                    Text = ""
                });
                Relation.Add(Relation.Count);
            }
        }
Example #7
0
 /// <summary>
 /// 清空
 /// </summary>
 public void Clear()
 {
     SkewPipes.Clear();
     Lefts.Clear();
     Rights.Clear();
 }
 public List <string> LeftsAsList()
 {
     return(Lefts.Select((text) => text.Text).ToList());
 }