public JsonResult DownloadFiles(string key) { var innerEx = string.Empty; var exMessage = string.Empty; try { var widRecord = scheduleRepo.GetAllSchedules().Where(x => x.PublicKey == key).FirstOrDefault(); if (widRecord != null) { var DE = scheduleRepo.GetDE(widRecord.WID); var DCoC = scheduleRepo.GetDCoC(widRecord.WID); if (DE != null && DCoC != null) { var dir = @"C:/DigitalForensics"; Directory.CreateDirectory(dir); var fileNameDE = DE.FileName; var fileNameDCoC = DCoC.DCoCFileName; fileNameDE = fileNameDE.Replace("enc", string.Empty); fileNameDCoC = fileNameDCoC.Replace("enc", string.Empty); var pathDE = $"{dir}/{fileNameDE}{DE.FileExtension}"; var pathDCoC = $"{dir}/{fileNameDCoC}{DCoC.DCoCFileExtension}"; FileInfo fi_DE = new FileInfo(pathDE); if (fi_DE.Exists) { fi_DE.Delete(); } FileInfo fi_DCoC = new FileInfo(pathDCoC); if (fi_DCoC.Exists) { fi_DCoC.Delete(); } using (FileStream fs_DE = fi_DE.Create()) { Byte[] txt = new UTF8Encoding(true).GetBytes(DE.FileData); fs_DE.Write(txt, 0, txt.Length); } using (FileStream fs_DCoC = fi_DCoC.Create()) { Byte[] txt = new UTF8Encoding(true).GetBytes(DCoC.DCoCFileData); fs_DCoC.Write(txt, 0, txt.Length); } return(Json(new { success = true, infoMessage = "Download successful. A folder named <b>DigitalForensics</b> has been created on your drive.<br> Your files have been downloaded to that folder." })); } } } catch (Exception ex) { innerEx = ex.InnerException != null ? ex.InnerException.InnerException != null ? $" {ex.InnerException.Message} {ex.InnerException.InnerException.Message}" : $" {ex.InnerException.Message}" : string.Empty; exMessage = ex.Message; } return(Json(new { success = -1, errorMessage = $"{errorMessage}<br/> <b>Error Detail</b><br/> Error Message: <b>{exMessage}</b> </br> Inner Exception Message:<b> {innerEx}</b>" })); }