Esempio n. 1
0
        public Fork Contain(ISeatingTerm seatingTerm)
        {
            Fork tempReturn;

            if (Self == seatingTerm && Self != null)
            {
                return(this);
            }
            else if (ChildList.Count != 0)
            {
                for (int i = 0; i < ChildList.Count; i++)
                {
                    tempReturn = ChildList[i].Contain(seatingTerm);
                    if (tempReturn != null)
                    {
                        return(tempReturn);
                    }
                }
            }
            //else
            //{
            //    return null;
            //}
            return(null);
        }
Esempio n. 2
0
        private AssignmentSeatingState CheckAssignmentState(ISeatingTerm assignment)
        {
            var  firstSeat   = default(ISeatingSeat);
            bool hasEmpty    = false;
            bool hasSeat     = false;
            bool hasDiffSeat = false;

            if (!_termOccupationRegister.Keys.Contains(assignment))
            {
                return(AssignmentSeatingState.Empty);
            }
            foreach (List <SeatArrangement> seatArrList in _termOccupationRegister[assignment])
            {
                foreach (var iso in seatArrList)
                {
                    if (iso.Seat == default(ISeatingSeat))
                    {
                        hasEmpty = true;
                    }
                    else
                    {
                        hasSeat = true;
                        if (firstSeat == default(ISeatingSeat))
                        {
                            firstSeat = iso.Seat;
                        }
                        else if (firstSeat != iso.Seat)
                        {
                            hasDiffSeat = true;
                        }
                    }
                }
            }
            if (hasEmpty && !hasSeat)
            {
                return(AssignmentSeatingState.Empty);
            }
            else if (hasEmpty && hasSeat)
            {
                return(AssignmentSeatingState.Partial);
            }
            else if (!hasEmpty && hasSeat && !hasDiffSeat)
            {
                return(AssignmentSeatingState.Full);
            }
            else if (!hasEmpty && hasSeat && hasDiffSeat)
            {
                return(AssignmentSeatingState.FullButSeprate);
            }
            return(AssignmentSeatingState.Empty);
        }
Esempio n. 3
0
 public Fork Contain(ISeatingTerm seatingTerm)
 {
     Fork tempReturn;
     if (Self == seatingTerm && Self != null)
     {
         return this;
     }
     else if (ChildList.Count != 0)
     {
         for (int i = 0; i < ChildList.Count; i++)
         {
             tempReturn = ChildList[i].Contain(seatingTerm);
             if (tempReturn != null)
                 return tempReturn;
         }
     }
     //else
     //{
     //    return null;
     //}
     return null;
 }
Esempio n. 4
0
 public ISeatingTerm GetSourceParent()
 {
     _sourceParent = _sourceParent ?? Source.GetLowestTerm() as ISeatingTerm;
     return _sourceParent;
 }
Esempio n. 5
0
 public ISeatingTerm GetSourceParent()
 {
     _sourceParent = _sourceParent ?? Source.GetLowestTerm() as ISeatingTerm;
     return(_sourceParent);
 }
Esempio n. 6
0
 public static bool SeatIsEmpty(this ISeatingTerm term)
 {
     return(string.IsNullOrEmpty(term.Seat));
 }
Esempio n. 7
0
 public Fork(ISeatingTerm seatingTerm)
 {
     _self = seatingTerm;
     _childList = new List<Fork>();
 }
Esempio n. 8
0
 public Fork(ISeatingTerm seatingTerm)
 {
     _self      = seatingTerm;
     _childList = new List <Fork>();
 }
Esempio n. 9
0
 private AssignmentSeatingState CheckAssignmentState(ISeatingTerm assignment)
 {
     var firstSeat = default(ISeatingSeat);
     bool hasEmpty = false;
     bool hasSeat = false;
     bool hasDiffSeat = false;
     if (!_termOccupationRegister.Keys.Contains(assignment))
     {
         return AssignmentSeatingState.Empty;
     }
     foreach (List<SeatArrangement> seatArrList in _termOccupationRegister[assignment])
     {
         foreach (var iso in seatArrList)
         {
             if (iso.Seat == default(ISeatingSeat))
             {
                 hasEmpty = true;
             }
             else
             {
                 hasSeat = true;
                 if (firstSeat == default(ISeatingSeat))
                 {
                     firstSeat = iso.Seat;
                 }
                 else if (firstSeat != iso.Seat)
                 {
                     hasDiffSeat = true;
                 }
             }
         }
     }
     if (hasEmpty && !hasSeat)
     {
         return AssignmentSeatingState.Empty;
     }
     else if (hasEmpty && hasSeat)
     {
         return AssignmentSeatingState.Partial;
     }
     else if (!hasEmpty && hasSeat && !hasDiffSeat)
     {
         return AssignmentSeatingState.Full;
     }
     else if (!hasEmpty && hasSeat && hasDiffSeat)
     {
         return AssignmentSeatingState.FullButSeprate;
     }
     return AssignmentSeatingState.Empty;
 }
Esempio n. 10
0
 public static bool ArrangeSeatYet(this ISeatingTerm obj)
 {
     return(obj.IsNeedSeat && obj.If <Term>(o => o.SeatIsEmpty()));
     //return new[] { "W", "X" }.Contains(obj.OccupyStatus);
 }