public SystemChangedRespMC SystemChangedStreaming(SystemChangedReqMC request) { const string StatusReceiving = "Receiving"; const string StatusCompleted = "Completed"; const string StatusFailed = "Failed "; try { AddProgressBar(request.Id); using (FileStream createdFile = File.Create(Environment.CurrentDirectory + @"\" + Path.GetFileName(request.FullPath))) { const int Length = 4096; byte[] buffer = new byte[Length]; int bytesRead = request.FileStream.Read(buffer, 0, Length); long totalBytesRead = bytesRead; while (bytesRead > 0) { DrawFileProgressBar(GetProgressBarRow(request.Id), Path.GetFileName(request.FullPath), (int)totalBytesRead, (int)request.FileStreamLength, StatusReceiving); createdFile.Write(buffer, 0, bytesRead); bytesRead = request.FileStream.Read(buffer, 0, Length); totalBytesRead = totalBytesRead + bytesRead; } request.FileStream.Close(); } if (request.Checksum == CalculateMD5Sum(Environment.CurrentDirectory + @"\" + Path.GetFileName(request.FullPath))) { DrawFileProgressBar(GetProgressBarRow(request.Id), Path.GetFileName(request.FullPath), (int)request.FileStreamLength, (int)request.FileStreamLength, StatusCompleted); } else { DrawFileProgressBar(GetProgressBarRow(request.Id), Path.GetFileName(request.FullPath), (int)request.FileStreamLength, (int)request.FileStreamLength, StatusFailed); } RemoveProgressBar(request.Id); SystemChangedRespMC systemChangedRespMC = new SystemChangedRespMC(); systemChangedRespMC.Message = "Request handled."; return(systemChangedRespMC); } catch (Exception ex) { int row; if (TryGetProgressBarRow(request.Id, out row)) { DrawFileProgressBar(row, Path.GetFileName(request.FullPath), (int)request.FileStreamLength, (int)request.FileStreamLength, StatusFailed); RemoveProgressBar(request.Id); } DefaultFault defaultFault = new DefaultFault(); defaultFault.Message = ex.Message; defaultFault.Id = Guid.NewGuid(); throw new FaultException <DefaultFault>(defaultFault); } }
public string SystemChangedStreaming(string changeType, string checksum, string daemonName, DateTime dateTime, string fileName, long fileStreamLength, string fullPath, Guid id, string machineName, string oldFullPath, Stream fileStream) { SystemChangedReqMC inValue = new SystemChangedReqMC(); inValue.ChangeType = changeType; inValue.Checksum = checksum; inValue.DaemonName = daemonName; inValue.DateTime = dateTime; inValue.FileName = fileName; inValue.FileStreamLength = fileStreamLength; inValue.FullPath = fullPath; inValue.Id = id; inValue.MachineName = machineName; inValue.OldFullPath = oldFullPath; inValue.FileStream = fileStream; SystemChangedRespMC retVal = ((IFileWatcherStreamingService)(this)).SystemChangedStreaming(inValue); return(retVal.Message); }
SystemChangedRespMC IFileWatcherStreamingService.SystemChangedStreaming(SystemChangedReqMC request) { return(Channel.SystemChangedStreaming(request)); }