IEnumerable <Segment> GetControlSums(SegmentCollection segments) { decimal ControlQuantity = segments.Where(s => s.Tag == "QTY").Sum(qty => Helpers.SegmentHelpers.GetQtyValue(qty)); int LineCount = segments.Where(s => s.Tag == "LIN").Count(); int SegmentCount = segments.Count(); for (int i = SegmentCount - 1; i > 0; --i) { if (segments[i].Tag == "BGM") { SegmentCount -= i; break; } } return(Helpers.Interchange.GetMessageTrailer(ControlQuantity, LineCount)); }