/// <summary> /// Main fucntion to upload file on server and send email /// </summary> /// <param name="mailMergeFiles"></param> /// <returns></returns> public async Task <bool> UploadFile(MailMerge mailMergeFiles) { string path = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), "Upload"));; string templateFileName = "", valuesFileName = ""; try { MultipartFormDataContent formDataContent = new MultipartFormDataContent(); if (mailMergeFiles.TemplateFile != null && mailMergeFiles.TemplateFile.Length > 0 && mailMergeFiles.ValuesFile != null && mailMergeFiles.ValuesFile.Length > 0) { //Upload template file to server templateFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + mailMergeFiles.TemplateFile.FileName; using (var filestream = new FileStream(Path.Combine(path, templateFileName), FileMode.Create)) { await mailMergeFiles.TemplateFile.CopyToAsync(filestream); } //Upload csv file to server valuesFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + mailMergeFiles.ValuesFile.FileName; using (var filestream = new FileStream(Path.Combine(path, valuesFileName), FileMode.Create)) { await mailMergeFiles.ValuesFile.CopyToAsync(filestream); } //Read CSV file uploaded System.Data.DataTable dt = CSVReader.ConvertCSVtoDataTable(Path.Combine(path, valuesFileName)); string result = wordMailMerge.generateEmail(Path.Combine(path, templateFileName), dt, Path.Combine(path, valuesFileName)); if (result.StartsWith("Error")) { TempData["msg"] = result; return(false); } //TempData["msg"] = "Email Generated successfully."; TempData["msg"] = "Success: Mail Merge Completed Successfully."; return(true); } else { TempData["msg"] = "Error: File doesnot contain any data."; return(false); } } catch (Exception) { throw; } finally { try { System.IO.File.Delete(Path.Combine(path, templateFileName)); System.IO.File.Delete(Path.Combine(path, valuesFileName)); } catch (Exception) { } } }
public async Task <ActionResult> Index(MailMerge mailMergeFiles) { //Call uploadfile function to upload files and generate email if (ModelState.IsValid) { await UploadFile(mailMergeFiles); } return(View()); }