}             // func CreateInFile

            public IEnumerable <IOdetteFileEndToEnd> GetEndToEnd()
            {
                if (service.directoryIn == null)                 // do we have the directory
                {
                    yield break;
                }

                // enumerator all files
                foreach (var fi in service.directoryIn.EnumerateFiles("*" + GetInFileExtention(OdetteInFileState.PendingEndToEnd), SearchOption.TopDirectoryOnly))
                {
                    var file = TrySplitFileName(fi.Name);
                    if (file != null)
                    {
                        var fileItem = new FileItem(service, fi, file, false);
                        var e2e      = new FileEndToEnd(fileItem);
                        fileItem.Log(log, String.Format("Sent {1} end to end for: {0}", OdetteFileImmutable.FormatFileName(file, e2e.UserData), e2e.ReasonCode == 0 ? "positive" : "negative"));
                        yield return(e2e);
                    }
                    else
                    {
                        log.Warn("GetEndToEnd: Can not parse file name '{0}'...", fi.Name);
                    }
                }
            }             // func GetEndToEnd