Esempio n. 1
0
        /// <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)
                { }
            }
        }
Esempio n. 2
0
 public async Task <ActionResult> Index(MailMerge mailMergeFiles)
 {
     //Call uploadfile function to upload files and generate email
     if (ModelState.IsValid)
     {
         await UploadFile(mailMergeFiles);
     }
     return(View());
 }