public static TheTvDbCacheSerializer Load(FileInfo cacheFile, FileInfo loadFrom = null)
        {
            try
            {
                var fileToUse = loadFrom ?? cacheFile;

                if (fileToUse.Exists)
                {
                    var theTvDbCache = Deserialize(fileToUse);

                    theTvDbCache.IsSaved = true;
                    theTvDbCache.LoadOk = true;
                    theTvDbCache.LoadResult = string.Empty;

                    return theTvDbCache;
                }

                var cache = new TheTvDbCacheSerializer(cacheFile)
                {
                    LoadOk = true,
                    LoadResult = string.Empty,
                    IsSaved = false,
                    LastUpdated = null,
                    Series = new List<TheTvDbSeries>()
                };

                cache.Save(0);

                return cache;
            }
            catch (Exception e)
            {
                return new TheTvDbCacheSerializer
                {
                    LoadOk = false,
                    LoadResult = e.Message
                };
            }
        }