示例#1
0
        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>"
            }));
        }