Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }