private LockStatus LockData(out EpisodeGuid creationDate) { var sessionToken = CreateServiceModelSessionToken(); uint lockOptions = 129u; ModelVersion localModelVersion = new ModelVersion(new VersionNumber(0), new ModelHistoryCheckInfo(EpisodeGuid.Invalid)); IClientProxy <IModelService> bufferedProxy = GetBufferedProxy(); IModelService proxy = bufferedProxy.Proxy; return(proxy.LockData(sessionToken, lockOptions, bAllowBecomeNonExclusive: true, localModelVersion, out creationDate)); }
public bool DownloadFile(string sourceFile, string targetFile, EpisodeGuid creationDate) { try { IClientProxy <IModelService> clientProxy = GetStreamedProxy(); IModelService proxy = clientProxy.Proxy; return(PerformDownload(proxy, sourceFile, targetFile, creationDate)); } catch (Exception ex) { throw; } }
private bool PerformDownload(IModelService proxy, string sourceFile, string targetFile, EpisodeGuid creationDate) { var sessionToken = CreateServiceModelSessionToken(); using (FileDownloadMessageStream fileDownloadMessageStream = proxy.DownloadFile(new FileDownloadRequestMessage(sessionToken, creationDate, sourceFile))) { if (fileDownloadMessageStream.Stream == null) { throw new Exception(); } string directoryName = Path.GetDirectoryName(targetFile); if (!string.IsNullOrEmpty(directoryName)) { Directory.CreateDirectory(directoryName); } DateTime now = DateTime.Now; using (FileStream fileStream = File.Open(targetFile, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] array = new byte[16384]; int num = 0; do { num = fileDownloadMessageStream.Stream.Read(array, 0, array.Length); if (num > 0) { fileStream.Write(array, 0, num); } }while (num > 0); } fileDownloadMessageStream.Stream.Close(); } return(true); }