/// <summary>достает имя файла по типу </summary> private string GetFileByType(BusinessGraphicsResourceInfo info, FileType fType) { switch (fType) { case FileType.xmlResource: return info.File; case FileType.mapResource: return info.MapFile; case FileType.mapdataResource: return info.MapDataFile; default: throw new Exception("Unknown file type "); } }
/// <summary>подготовим файлы карт</summary> private string PrepareFile(BusinessGraphicsResourceInfo info, FileType fType) { //достанем временной индентивикатор для карт, по нему будем ориентироваться новый файл или нет ResourceFileProperty file = info.ResourceFileList.FirstOrDefault(f => f.Id.Equals(FileType.mapResource.ToString())); //если файла карты нет, значит БГ без карты, возьмем тогда сам xml if (file == null) file = info.ResourceFileList.FirstOrDefault(f => f.Id.Equals(FileType.xmlResource.ToString())); long dtFile = file.ModifiedUtc; //информация об оригинальном файле ResourceFileProperty oldMapFileName = info.ResourceFileList.FirstOrDefault(f => f.Id.Equals(fType.ToString())); //информация о файле который приехал с сервера в качестве ресурса string resFileName = GetFileByType(info, fType); if (string.IsNullOrEmpty(resFileName) || !File.Exists(resFileName)) return string.Empty; //имя файла как он должен называться string newFileName = Path.Combine( Path.GetDirectoryName(resFileName), Path.GetFileNameWithoutExtension(oldMapFileName.ResourceFileName) + dtFile.ToString() + "." + GetFileExtension(fType)); if (!File.Exists(newFileName)) { File.Copy(resFileName, newFileName); } return newFileName; }