/// <summary>
        /// Takes first OPC in opcDirectory and returns its root patch info. This
        /// is typically needed to retrieve rendering offsets to prevent rounding errors.
        /// </summary>
        public static PatchFileInfo GetFirstPatchFileInfo(string opcDirectory, PositionsType posType)
        {
            var paths         = OpcFileUtils.OpcPathsFromFolder(opcDirectory);
            var rootPatchPath = OpcFileUtils.GetRootPatchPath(paths.First());

            return(PatchFileInfo.FromFile(rootPatchPath));
        }
        /// <summary>
        /// Retrieves folderpaths within given directory which correspond to opc layout
        /// </summary>
        public static IEnumerable <string> OpcPathsFromFolder(string opcFolderPath)
        {
            var opcFolders = StorageConfig.GetDirectories(opcFolderPath).Where(x => OpcFileUtils.IsOpc(x));
            var resultList = new List <string>();

            foreach (var opc in opcFolders)
            {
                yield return(opc);
            }
        }