// GET: EmailMarketing public async Task <ActionResult> Index() { try { var model = new EmailMarketingViewModel(); var strUrl = ControllerName + APIProvider.APIGenerator(this, this.RouteData.Values["action"].ToString()); var templates = await APIProvider.Authorize_Get <List <EmailMarketingViewModel> >(_userSession.BearerToken, strUrl, APIConstant.API_Resource_CORE, ARS.Get); ViewBag.Templates = templates; return(View(model)); } catch (HttpException ex) { Logger.LogError(ex); int statusCode = ex.GetHttpCode(); if (statusCode == 401) { TempData["Alert"] = ApplicationGenerator.RenderResult(FuntionType.Department, APIConstant.ACTION_ACCESS); return(new HttpUnauthorizedResult()); } throw ex; } }
public async Task <ActionResult> Process(EmailMarketingViewModel model) { model.CreatedDate = DateTime.Now.ToString("yyyy-MM-dd"); model.CreatedUser = _userSession.UserName; model.ModifiedDate = DateTime.Now.ToString("yyyy-MM-dd"); model.ModifiedUser = _userSession.UserName; if (ModelState.IsValid) { try { //Send email var strUrl = APIProvider.APIGenerator(ControllerName, APIConstant.ACTION_SEND); //Save template if (model.Type == "2") { strUrl = APIProvider.APIGenerator(ControllerName, APIConstant.ACTION_INSERT); } var result = await APIProvider.Authorize_DynamicTransaction <EmailMarketingViewModel, int>(model, _userSession.BearerToken, strUrl, APIConstant.API_Resource_CORE, ARS.Edit); if (result > 0) { TempData["Alert"] = ApplicationGenerator.RenderResult(ApplicationGenerator.TypeResult.SUCCESS, ApplicationGenerator.GeneralActionMessage(ValueConstant.ACTION_SEND, ApplicationGenerator.TypeResult.SUCCESS)); if (model.Type == "2") { TempData["Alert"] = ApplicationGenerator.RenderResult(ApplicationGenerator.TypeResult.SUCCESS, ApplicationGenerator.GeneralActionMessage(ValueConstant.ACTION_INSERT, ApplicationGenerator.TypeResult.SUCCESS)); } } else { TempData["Alert"] = ApplicationGenerator.RenderResult(ApplicationGenerator.TypeResult.FAIL, ApplicationGenerator.GeneralActionMessage(ValueConstant.ACTION_SEND, ApplicationGenerator.TypeResult.FAIL)); if (model.Type == "2") { TempData["Alert"] = ApplicationGenerator.RenderResult(ApplicationGenerator.TypeResult.FAIL, ApplicationGenerator.GeneralActionMessage(ValueConstant.ACTION_INSERT, ApplicationGenerator.TypeResult.FAIL)); } } } catch (Exception ex) { Logger.LogError(ex); TempData["Alert"] = ApplicationGenerator.RenderResult(ApplicationGenerator.TypeResult.ERROR, ApplicationGenerator.GeneralActionMessage(ValueConstant.ACTION_READ, ApplicationGenerator.TypeResult.ERROR)); } return(RedirectToAction("Index")); } var apiUrl = ControllerName + APIProvider.APIGenerator(this, this.RouteData.Values["action"].ToString()); var templates = await APIProvider.Authorize_Get <List <EmailMarketingViewModel> >(apiUrl, APIConstant.API_Resource_CORE); ViewBag.Templates = templates; return(View("Index", model)); }
public async Task <int> Transaction(EmailMarketingViewModel model, char action) { if (action == 'S') { await SendMail(model); return(1); } else { var data = Mapper.Map <EmailMarketing>(model); return(await _emailMarketingRepo.Transaction(data, action)); } }
public async Task <IHttpActionResult> SendMail(EmailMarketingViewModel model) { try { var message = new MailMessage(); //Get list email by EmailGroupType var listEmail = await GetEmailByGroupType(model.EmailGroupType); //Mail from var config = new MailSetting { Port = 587, Host = "smtp.gmail.com", Email = "*****@*****.**", Pwd = "P@sswordFPT", IsSSL = true }; foreach (var email in listEmail) { //Mail to var mail = new Mail { Email = email, Subject = model.Name, Body = model.Detail }; Mailer.ServerSendMail(config, mail); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }