示例#1
0
        // GET: Emailing
        public ActionResult Index()
        {
            var model = new EmailingListViewModel();

            model.GridData.Templates = new List <TemplateViewModel>();
            //var emailings = _emailingRepository.GetAll().ToList();
            return(View(model));
        }
示例#2
0
        public async Task <JsonResult> ExportAndSend(EmailingListViewModel vm, JqGridModel model)
        {
            var result      = false;
            var htmlBuilder = new StringBuilder();

            try
            {
                string jsonPostData;
                using (var input = Request.InputStream)
                {
                    input.Position = 0;
                    using (var reader = new System.IO.StreamReader(input))
                    {
                        jsonPostData = reader.ReadToEnd();
                    }
                }

                var jqGrid = JsonConvert.DeserializeObject <JqGridModel>(jsonPostData, new JqGridConverter());
                int totalRecords;
                var data      = GetData(jqGrid.GridSettings, out totalRecords, true);
                var colStates = ConvertDataToExcel.ConvertColStateToColumnModels(jqGrid.ColStates);
                foreach (var columnModel in colStates)
                {
                    if (!string.IsNullOrEmpty(columnModel.Header))
                    {
                        htmlBuilder.AppendFormat(@"{0};", columnModel.Header);
                    }
                }

                htmlBuilder.AppendFormat(Environment.NewLine);
                htmlBuilder = ConvertDataToExcel.ConvertDataToArray(data, jqGrid.ColStates, htmlBuilder);

                var fileName = String.Format("{1}{0}.csv", vm.GridData.Caption, Server.MapPath(WebConfigurationManager.AppSettings["ReportsPath"]));

                //var attach = new Dictionary<string, string> {[fileName] = htmlBuilder.ToString() };
                var user = await _userManager.FindByIdAsync(User.Identity.GetUserId());

                //result = Email.SendZipEmail(user.Email, Server.MapPath("~/Reports/"), fileName, htmlBuilder.ToString());
                var resp = await _emailingService.SendMessage(user.Email, fileName, htmlBuilder.ToString());

                result = resp.RejectReason == null;
            }
            catch (Exception ex)
            {
                //_log.Error(ex);
                return(new JsonResult
                {
                    Data = new { ErrorMessage = ex.Message, Success = false },
                    ContentEncoding = System.Text.Encoding.UTF8,
                    JsonRequestBehavior = JsonRequestBehavior.DenyGet
                });
            }

            return(new JsonResult()
            {
                Data = new { Success = result },
            });
        }