public HttpResponseMessage ExportMsi(bool is64bit) { var msi = new ServiceMsiUpdater().UpdateMsis(is64bit); var fileName = new ServiceMsiUpdater().GetNameForExport(is64bit); var dataStream = new MemoryStream(msi); var result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new StreamContent(dataStream); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentDisposition.FileName = fileName; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.ContentLength = dataStream.Length; return(result); }
public bool CopyMsiToClientUpdate() { foreach (var type in new List <bool> { true, false }) { var msi = new ServiceMsiUpdater().UpdateMsis(is64bit: type); var fileName = new ServiceMsiUpdater().GetNameForExport(is64bit: type); var destinationDir = Path.Combine(ServiceSetting.GetSettingValue(SettingStrings.StoragePath), "client_versions"); using (var unc = new UncServices()) { if (unc.NetUseWithCredentials() || unc.LastError == 1219) { var directory = new DirectoryInfo(destinationDir); try { if (!directory.Exists) { directory.Create(); } File.WriteAllBytes(Path.Combine(destinationDir, fileName), msi); } catch (Exception ex) { Logger.Error(ex.Message); return(false); } } else { return(false); } } } return(true); }