/// <summary> /// Removes a specific attribute from the seat /// </summary> /// <param name="si">Seat</param> /// <param name="att">Specific attribute</param> public static void RemoveAttribute(this SeatInfo si, SeatAttributeEnum att) { si.SeatAttributes = si.SeatAttributes.Except(new[] { att }).ToArray(); }
/// <summary> /// Adds a specific attribute to the seat /// </summary> /// <param name="si">Seat</param> /// <param name="att">Specific attribute</param> public static void AddAttribute(this SeatInfo si, SeatAttributeEnum att) { si.SeatAttributes = si.SeatAttributes.Union(new[] { att }).ToArray(); }
/// <summary> /// Checks if the seats has a specific attribute /// </summary> /// <param name="si">Seat</param> /// <param name="att">Specific attribute</param> /// <returns>True if the seats has a specific attribute</returns> public static bool HasAttribute(this SeatInfo si, SeatAttributeEnum att) { return(si.SeatAttributes.Contains(att)); }
/// <summary> /// Removes the attribute from every seats /// </summary> /// <param name="seats">Seat collection</param> /// <param name="att">The attribute</param> public static void ClearAttribute(this IEnumerable <SeatInfo> seats, SeatAttributeEnum att) { seats.WithAttribute(att).ToList().ForEach(x => x.RemoveAttribute(att)); }
/// <summary> /// Takes away the attribute from the seats having it, and gives it to the new one who needs it /// </summary> /// <param name="seats">Seat collection</param> /// <param name="receiver">Seat that needs the attribute</param> /// <param name="att">The attribute</param> public static void MoveAttributeTo(this IEnumerable <SeatInfo> seats, SeatInfo receiver, SeatAttributeEnum att) { seats.ClearAttribute(att); receiver?.AddAttribute(att); }
/// <summary> /// Filters Seats that contains the attribute /// </summary> /// <param name="seats">Seat collection</param> /// <param name="att">Expected attribute</param> /// <returns>Seats that contains the attribute</returns> public static IEnumerable <SeatInfo> WithAttribute(this IEnumerable <SeatInfo> seats, SeatAttributeEnum att) { return(seats.Where(s => s.HasAttribute(att))); }