public object Get() { IList <EmailScheduler> lstEmailScheduler = new List <EmailScheduler>(); DataTable dtEmailArticle = DataBase.DBService.ExecuteCommand(GET_ALL_EMAILSCHEDULE_QUERY); ///DataTable dtEmailArticle = getDummyArticleData(); foreach (DataRow dr in dtEmailArticle.Rows) { EmailScheduler emailScheduler = new EmailScheduler(); emailScheduler.ID = dr.Field <int>("ID"); emailScheduler.ArticleGroupId = dr.Field <int>("ArticleGroupId"); emailScheduler.ArticleGroupName = dr.Field <string>("ArticleGroupName"); emailScheduler.EmailSenderGroupId = dr.Field <int>("EmailSenderGroupId"); emailScheduler.ScheduleTitle = dr.Field <string>("ScheduleTitle"); emailScheduler.ScheduleType = (ScheduleOccurranceType)dr.Field <int>("ScheduleType"); emailScheduler.MonthDayInterval = dr.Field <int?>("MonthDayInterval"); emailScheduler.WeekDays = dr.Field <string>("WeekDays"); emailScheduler.StartDateTime = dr.Field <DateTime>("StartDateTime"); emailScheduler.NextRunDateTime = dr.Field <DateTime>("NextRunDateTime"); emailScheduler.AllowRepeat = dr.Field <bool>("AllowRepeat"); emailScheduler.CreatedOn = dr.Field <DateTime>("CreatedOn"); emailScheduler.CreatedBy = dr.Field <int>("CreatedBy"); emailScheduler.UpdatedOn = dr.Field <DateTime>("UpdatedOn"); emailScheduler.UpdatedBy = dr.Field <int>("UpdatedBy"); emailScheduler.UpdatedByUserName = dr.Field <string>("UpdatedByUserName"); lstEmailScheduler.Add(emailScheduler); } return(lstEmailScheduler); }
public void Add(EmailScheduler emailScheduler) { try { //string clientName = DataBase.DBService.ExecuteCommandScalar(string.Format(GET_CLIENT_NAME_QUERY,Goals.Pid)); DataBase.DBService.BeginTransaction(); int scheduleType = getscheduleType(emailScheduler.ScheduleType); DataBase.DBService.ExecuteCommandString(string.Format(INSERT_QUERY, emailScheduler.ArticleGroupId, emailScheduler.EmailSenderGroupId, emailScheduler.ScheduleTitle, scheduleType, emailScheduler.MonthDayInterval, emailScheduler.WeekDays, emailScheduler.StartDateTime.ToString("yyyy-MM-dd hh:mm:ss"), emailScheduler.NextRunDateTime.ToString("yyyy-MM-dd hh:mm:ss"), emailScheduler.AllowRepeat, emailScheduler.CreatedOn.ToString("yyyy-MM-dd hh:mm:ss"), emailScheduler.CreatedBy, emailScheduler.UpdatedOn.ToString("yyyy-MM-dd hh:mm:ss"), emailScheduler.UpdatedBy), true); Activity.ActivitiesService.Add(ActivityType.CreateEmailSchedule, EntryStatus.Success, Source.Server, emailScheduler.UpdatedByUserName, emailScheduler.ScheduleTitle, emailScheduler.MachineName); DataBase.DBService.CommitTransaction(); } catch (Exception ex) { DataBase.DBService.RollbackTransaction(); StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); MethodBase currentMethodName = sf.GetMethod(); LogDebug(currentMethodName.Name, ex); throw ex; } }
// // GET: /EmailSchedulers/Details/5 public ViewResult Details(long id) { EmailScheduler emailscheduler = unitOfWork.EmailSchedulerRepository.Find(id); emailscheduler.ScheduleType = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerTypeAll().Where(p => p.Key == emailscheduler.ScheduleTypeID.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.SchedulerTitles = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerList().Where(p => p.Key == emailscheduler.SchedulerTitleID.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.EmailRecipientUsers = from item in unitOfWork.EmailSchedulerRepository.GetRecipientUserTypeAll().Where(p => p.Key == emailscheduler.RecipientUserType.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.Days = from item in unitOfWork.EmailSchedulerRepository.GetDaysOfWeek().Where(p => p.Key == emailscheduler.ScheduledDay.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; return(View(emailscheduler)); }
public ActionResult Create(EmailScheduler emailscheduler) { emailscheduler.CreatedBy = (int)Membership.GetUser(WebSecurity.CurrentUserName).ProviderUserKey; emailscheduler.ModifiedBy = (int)Membership.GetUser(WebSecurity.CurrentUserName).ProviderUserKey; //timeLog.UserID = (int)Membership.GetUser(WebSecurity.CurrentUserName).ProviderUserKey; emailscheduler.CreateDate = DateTime.Now; emailscheduler.ModificationDate = DateTime.Now; emailscheduler.IsActive = true; //emailscheduler.ScheduledTime = new TimeSpan(10, 30, 0); if (ModelState.IsValid) { unitOfWork.EmailSchedulerRepository.InsertOrUpdate(emailscheduler); unitOfWork.Save(); //return RedirectToAction("TaskTimeLog", new { @taskId = timeLog.TaskID, @sprintId = timeLog.SprintID }); //context.EmailSchedulers.Add(emailscheduler); //context.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.PossibleProjects = unitOfWork.ProjectRepository.All; // context.Projects; //return View(emailscheduler); return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(long id) { EmailScheduler emailscheduler = unitOfWork.EmailSchedulerRepository.Find(id); unitOfWork.EmailSchedulerRepository.Delete(id); unitOfWork.Save(); return(RedirectToAction("Index")); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); EmailScheduler.Start(); }
public void Configuration(IAppBuilder app) { app.UseWelcomePage("/"); var config = new HttpConfiguration(); Configure(config); app.UseWebApi(config); EmailScheduler.Start(); }
static void Main(System.String[] args) { EmailScheduler.Start(); TelegramMessageSheduler.Start(); //779815529:AAEQVsHABl-V1rNhxX3vDnCo_r1xQjYczNU //781639864:AAE7Y4gc6ldOYlLGgfsHeaXU2V24QBMXyo0 _ = new Bot("781639864:AAE7Y4gc6ldOYlLGgfsHeaXU2V24QBMXyo0"); System.Console.ReadLine(); }
protected void Application_Start() { Mapper.Initialize(c => c.AddProfile <MappingProfile>()); GlobalConfiguration.Configure(WebApiConfig.Register); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); EmailScheduler.Start(); }
protected void Application_Start() { Database.SetInitializer(new AppDbInitializer()); Database.SetInitializer(new VetDbInitializer()); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); EmailScheduler.Start(); }
public void InsertOrUpdate(EmailScheduler emailscheduler) { if (emailscheduler.ID == default(long)) { // New entity context.EmailSchedulers.Add(emailscheduler); } else { // Existing entity context.Entry(emailscheduler).State = System.Data.Entity.EntityState.Modified; } }
public Result Delete(EmailScheduler emailScheduler) { var result = new Result(); try { EmailScheduleService emailScheduleService = new EmailScheduleService(); emailScheduleService.Delete(emailScheduler); result.IsSuccess = true; } catch (Exception exception) { result.IsSuccess = false; result.ExceptionInfo = exception; } return(result); }
public void TimeoutPromptsMessageSending_Data() { var bus = MockRepository.GenerateMock <IBus>(); var sendOneEmailNow = new SendOneEmailNow(); bus.Expect(b => b.Send(Arg <string> .Is.Anything, Arg <SendOneEmailNow> .Is.NotNull)) .WhenCalled(i => sendOneEmailNow = (SendOneEmailNow)(i.Arguments[1])); var dataId = Guid.NewGuid(); var originalMessage = new ScheduleEmailForSendingLater { EmailData = new EmailData { BodyHtml = "html", BodyText = "text", FromAddress = "from", FromDisplayName = "display", ReplyToAddress = "replyto", Subject = "subject", ToAddress = "to" } }; var data = new ScheduledEmailData { Id = dataId, OriginalMessageData = new OriginalEmailMessageData(originalMessage) }; var scheduleEmail = new EmailScheduler { Bus = bus, Data = data }; var timeoutMessage = new ScheduleEmailTimeout(); scheduleEmail.Timeout(timeoutMessage); Assert.That(sendOneEmailNow.BodyHtml, Is.EqualTo(data.OriginalMessageData.BodyHtml)); Assert.That(sendOneEmailNow.BodyText, Is.EqualTo(data.OriginalMessageData.BodyText)); Assert.That(sendOneEmailNow.FromAddress, Is.EqualTo(data.OriginalMessageData.FromAddress)); Assert.That(sendOneEmailNow.FromDisplayName, Is.EqualTo(data.OriginalMessageData.FromDisplayName)); Assert.That(sendOneEmailNow.ReplyToAddress, Is.EqualTo(data.OriginalMessageData.ReplyToAddress)); Assert.That(sendOneEmailNow.Subject, Is.EqualTo(data.OriginalMessageData.Subject)); Assert.That(sendOneEmailNow.ToAddress, Is.EqualTo(data.OriginalMessageData.ToAddress)); Assert.That(sendOneEmailNow.Username, Is.EqualTo(data.OriginalMessageData.Username)); Assert.That(sendOneEmailNow.CorrelationId, Is.EqualTo(data.Id)); bus.VerifyAllExpectations(); }
// // GET: /EmailSchedulers/Edit/5 public ActionResult Edit(long id) { EmailScheduler emailscheduler = unitOfWork.EmailSchedulerRepository.Find(id); emailscheduler.SchedulerTitles = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerList() select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.ScheduleType = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerTypeAll() select new SelectListItem { Text = item.Value, Value = item.Key }; var recipientTypes = unitOfWork.EmailSchedulerRepository.GetRecipientUserTypeAll(); //new Dictionary<string, string> {{ "0", "--- Select recipient users ---" }, //{ "1", "Task's Users" }, //{ "2", "Task's Followers" }, //{ "3", "Task's Users & Followers" }, // { "4", "Project's Users" }}; emailscheduler.EmailRecipientUsers = from item in recipientTypes select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.Days = from item in unitOfWork.EmailSchedulerRepository.GetDaysOfWeek() select new SelectListItem { Text = item.Value, Value = item.Key }; ViewBag.PossibleProjects = unitOfWork.ProjectRepository.All; return(View(emailscheduler)); }
void serviceTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { if (!this._serviceCheckInProgress) { this._serviceCheckInProgress = true; this.LogMessage("Email sending Started"); EmailScheduler.SendEmail(); this.LogMessage("Email sent end"); this._serviceCheckInProgress = false; } } catch (Exception ex) { this._serviceCheckInProgress = false; this.LogMessage(ex.Message + Environment.NewLine + ex.StackTrace + (ex.InnerException == null ? string.Empty : ex.InnerException.Message + Environment.NewLine + ex.InnerException.StackTrace)); } }
public ActionResult Edit(EmailScheduler emailscheduler) { emailscheduler.ModifiedBy = (int)Membership.GetUser().ProviderUserKey; emailscheduler.ModificationDate = DateTime.Now; if (ModelState.IsValid) { unitOfWork.EmailSchedulerRepository.InsertOrUpdate(emailscheduler); unitOfWork.Save(); return(RedirectToAction("Index")); //context.Entry(emailscheduler).State = System.Data.Entity.EntityState.Modified; //context.SaveChanges(); //return RedirectToAction("Index"); } ViewBag.PossibleProjects = unitOfWork.ProjectRepository.All; //ViewBag.PossibleProjects = context.Projects; return(View(emailscheduler)); }
// // GET: /EmailSchedulers/Delete/5 public ActionResult Delete(long id) { EmailScheduler emailscheduler = unitOfWork.EmailSchedulerRepository.Find(id); emailscheduler.SchedulerTitles = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerList().Where(p => p.Key == emailscheduler.SchedulerTitleID.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; emailscheduler.ScheduleType = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerTypeAll().Where(p => p.Key == emailscheduler.ScheduleTypeID.ToString()) select new SelectListItem { Text = item.Value, Value = item.Key }; return(View(emailscheduler)); }
public void TimeoutSendingPausedNoAction_Data() { var bus = MockRepository.GenerateStrictMock <IBus>(); var dataId = Guid.NewGuid(); var originalMessage = new ScheduleEmailForSendingLater { EmailData = new EmailData() }; var data = new ScheduledEmailData { Id = dataId, OriginalMessageData = new OriginalEmailMessageData(originalMessage), SchedulingPaused = true }; var scheduleEmail = new EmailScheduler { Bus = bus, Data = data }; var timeoutMessage = new ScheduleEmailTimeout(); scheduleEmail.Timeout(timeoutMessage); bus.VerifyAllExpectations(); }
public void Delete(EmailScheduler emailScheduler) { try { //string clientName = DataBase.DBService.ExecuteCommandScalar(string.Format(GET_CLIENT_NAME_QUERY,Goals.Pid)); DataBase.DBService.BeginTransaction(); int scheduleType = getscheduleType(emailScheduler.ScheduleType); DataBase.DBService.ExecuteCommandString(string.Format(DELETE_QUERY, emailScheduler.ID), true); Activity.ActivitiesService.Add(ActivityType.DeleteEmailSchedule, EntryStatus.Success, Source.Server, emailScheduler.UpdatedByUserName, emailScheduler.ScheduleTitle, emailScheduler.MachineName); DataBase.DBService.CommitTransaction(); } catch (Exception ex) { DataBase.DBService.RollbackTransaction(); StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(0); MethodBase currentMethodName = sf.GetMethod(); LogDebug(currentMethodName.Name, ex); throw ex; } }
/* * Send a daily Task Status email to each user having tasks in projects, that are part of Sprints. * It should be sent on a specific time setat the project level. */ public List <Mailer> DailyTaskStatus(EmailScheduler objEmailScheduler) { List <Mailer> mailerList = new List <Mailer>(); List <Task> taskList = unitofWork.TaskRepository.AllIncludingForMail().Where(t => t.ProjectStatus.Name.ToLower() != "closed").ToList(); //List<UserProfile> userList = unitofWork.UserRepository.All(); //string emailbody = "style=\".emailTbl {border: 1px solid #000000;border-radius: 5px;margin: 0;padding: 0;width: 574px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;}.emailTbl table{border-collapse: collapse;border-spacing: 0;width:100%;margin:0px;padding:0px;}.emailTbl tr:last-child td:last-child {-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;}.emailTbl table tr:first-child td:first-child {-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;}.emailTbl table tr:first-child td:last-child {-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;}.emailTbl tr:last-child td:first-child{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;}.emailTbl tr:hover td{}.emailTbl tr:nth-child(odd){ background-color:#e8edff; }.emailTbl tr:nth-child(even){background-color:#ffffff; }.emailTbl td{vertical-align:middle;border:1px solid #000000;border-width:0px 1px 1px 0px;text-align:left;padding:9px;font-size:12px;font-family:Arial;font-weight:normal;color:#000000;}.emailTbl tr:last-child td{border-width:0px 1px 0px 0px;}.emailTbl tr td:last-child{border-width:0px 0px 1px 0px;}.emailTbl tr:last-child td:last-child{border-width:0px 0px 0px 0px;}.emailTbl tr:first-child td{background:-o-linear-gradient(bottom, #b9c9fe 5%, #b9c9fe 100%); background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b9c9fe), color-stop(1, #b9c9fe) );background:-moz-linear-gradient( center top, #b9c9fe 5%, #b9c9fe 100% );filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#b9c9fe,endColorstr=#b9c9fe); background: -o-linear-gradient(top,#b9c9fe,b9c9fe);background-color:#b9c9fe;border:0px solid #000000;text-align:center;border-width:0px 0px 1px 1px;font-size:14px;font-family:Arial;font-weight:bold;color:#000000;}.emailTbl tr:first-child:hover td{background:-o-linear-gradient(bottom, #b9c9fe 5%, #b9c9fe 100%); background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b9c9fe), color-stop(1, #b9c9fe) );background:-moz-linear-gradient( center top, #b9c9fe 5%, #b9c9fe 100% );filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#b9c9fe, endColorstr=#b9c9fe); background: -o-linear-gradient(top,#b9c9fe,b9c9fe);background-color:#b9c9fe;}.emailTbl tr:first-child td:first-child{border-width:0px 0px 1px 0px;}.emailTbl tr:first-child td:last-child{border-width:0px 0px 1px 1px;}\""; //string styleTable = "style=\"border-collapse: collapse;border-spacing: 0;width: 100%;margin: 0;padding: 0\""; //string styleTableRow = "style=\"background-color: #fff\""; //string styleTableData = "style=\"vertical-align: middle;border: 1px solid #000;border-width: 0 1px 1px 0;text-align: left;padding: 9px;font-size: 12px;font-family: Arial;font-weight: normal;color: #000\""; List <UserProfile> userList = new List <UserProfile>(); if (objEmailScheduler.RecipientUserType.Value == 1) //Task's user { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 2) // Task's Followers { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 3) //Task's Users & Followers { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 4) //Task's Creator & Followers { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 5) //Project's Users { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 6) //Task's Creator & Users { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } else if (objEmailScheduler.RecipientUserType.Value == 7) //Task's Creator & Users { List <UserProfile> userListByProject = GetAllUserByProjectId(objEmailScheduler.ProjectID); userList = userListByProject; } string styleTableHeader = "style= \"background-color:#0094ff; border:1px solid;\""; string styleGroupbyRow = "style= \"background-color:#57C0E1;\""; string styleTaskRow = "style= \"background-color:#A0D0FF;\""; foreach (UserProfile objOfuser in userList) { string messageBody = string.Empty; List <Task> userTaskList = new List <Task>(); if (objEmailScheduler.RecipientUserType.Value == 1) //Task's user { userTaskList = taskList.Where(a => a.Users.Any(b => b.UserId == objOfuser.UserId) && a.ProjectID == objEmailScheduler.ProjectID).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 2)// Task's Followers { userTaskList = taskList.Where(a => a.Followers.Any(b => b.UserId == objOfuser.UserId) && a.ProjectID == objEmailScheduler.ProjectID).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 3) //Task's Users & Followers { userTaskList = taskList.Where(a => a.Followers.Any(b => b.UserId == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID) || (a.Users.Any(c => c.UserId == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID))).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 4) //Task's Creator & Followers { userTaskList = taskList.Where((a => a.CreatedBy == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID || a.Followers.Any(b => b.UserId == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID))).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 5) //Project's Users { List <Task> tasklist = unitofWork.TaskRepository.AllTaskByIndividalProject(objEmailScheduler.ProjectID); userTaskList = tasklist.Where(a => a.Users.Any(b => b.UserId == objOfuser.UserId)).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 6) //Task's Creator & Users { userTaskList = taskList.Where((a => a.CreatedByUser == objOfuser && a.ProjectID == objEmailScheduler.ProjectID || a.Users.Any(b => b.UserId == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID))).ToList(); } else if (objEmailScheduler.RecipientUserType.Value == 7) //Task's Creator { userTaskList = taskList.Where(a => a.CreatedBy == objOfuser.UserId && a.ProjectID == objEmailScheduler.ProjectID).ToList(); } //taskList.Where(a => a.Users.Any(b => b.UserId == objOfuser.UserId) && a.ProjectID == objEmailScheduler.ProjectID).ToList(); if (userTaskList.Count > 0) { messageBody = "<b>Dear " + objOfuser.FirstName + "</b>,<br>" + "<b>Your Daily Tasks Status are given below</b><br>"; messageBody += "<table><tr " + styleTableHeader + "><th>Task ID</th> <th>Task Title</th> <th>Task Status</th> <th>Project</th></tr>"; foreach (var task in userTaskList) { messageBody += "<tr> "; messageBody += "<td " + styleTaskRow + "> " + task.TaskUID + "</td>"; messageBody += "<td " + styleGroupbyRow + "> " + task.Title + "</td>"; messageBody += "<td " + styleGroupbyRow + "> " + ((task.ProjectStatus == null) ? " " : task.ProjectStatus.Name) + "</td>"; messageBody += "<td " + styleGroupbyRow + "> " + task.Project.Name + "</td>"; messageBody += "</tr>"; } messageBody += "</table></div><br /><div style='float:left;'><p>We sent you this email because you signed up in PMTool and tasks are assigned to you. <br /> Please don't reply To this mail.</p><p>" + "Regards,<br />PMTool</p></div>"; Mailer mailer = new Mailer(); mailer.UseMailID = objOfuser.UserName; mailer.MailSubject = "Daily Task Status"; mailer.HtmlMailBody = messageBody; mailerList.Add(mailer); } } return(mailerList); }
public void TimeoutSendingPausedNoAction_Data() { var bus = MockRepository.GenerateStrictMock<IBus>(); var dataId = Guid.NewGuid(); var originalMessage = new ScheduleEmailForSendingLater { EmailData = new EmailData()}; var data = new ScheduledEmailData { Id = dataId, OriginalMessageData = new OriginalEmailMessageData(originalMessage), SchedulingPaused = true }; var scheduleEmail = new EmailScheduler { Bus = bus, Data = data }; var timeoutMessage = new ScheduleEmailTimeout(); scheduleEmail.Timeout(timeoutMessage); bus.VerifyAllExpectations(); }
public void TimeoutPromptsMessageSending_Data() { var bus = MockRepository.GenerateMock<IBus>(); var sendOneEmailNow = new SendOneEmailNow(); bus.Expect(b => b.Send(Arg<string>.Is.Anything, Arg<SendOneEmailNow>.Is.NotNull)) .WhenCalled(i => sendOneEmailNow = (SendOneEmailNow)(i.Arguments[1])); var dataId = Guid.NewGuid(); var originalMessage = new ScheduleEmailForSendingLater { EmailData = new EmailData { BodyHtml = "html", BodyText = "text", FromAddress = "from", FromDisplayName = "display", ReplyToAddress = "replyto", Subject = "subject", ToAddress = "to" }}; var data = new ScheduledEmailData { Id = dataId, OriginalMessageData = new OriginalEmailMessageData(originalMessage) }; var scheduleEmail = new EmailScheduler { Bus = bus, Data = data }; var timeoutMessage = new ScheduleEmailTimeout(); scheduleEmail.Timeout(timeoutMessage); Assert.That(sendOneEmailNow.BodyHtml, Is.EqualTo(data.OriginalMessageData.BodyHtml)); Assert.That(sendOneEmailNow.BodyText, Is.EqualTo(data.OriginalMessageData.BodyText)); Assert.That(sendOneEmailNow.FromAddress, Is.EqualTo(data.OriginalMessageData.FromAddress)); Assert.That(sendOneEmailNow.FromDisplayName, Is.EqualTo(data.OriginalMessageData.FromDisplayName)); Assert.That(sendOneEmailNow.ReplyToAddress, Is.EqualTo(data.OriginalMessageData.ReplyToAddress)); Assert.That(sendOneEmailNow.Subject, Is.EqualTo(data.OriginalMessageData.Subject)); Assert.That(sendOneEmailNow.ToAddress, Is.EqualTo(data.OriginalMessageData.ToAddress)); Assert.That(sendOneEmailNow.Username, Is.EqualTo(data.OriginalMessageData.Username)); Assert.That(sendOneEmailNow.CorrelationId, Is.EqualTo(data.Id)); bus.VerifyAllExpectations(); }
// // GET: /EmailSchedulers/Create public ActionResult Create() { ViewBag.PossibleProjects = unitOfWork.ProjectRepository.All; //context.Projects; EmailScheduler emailScheduler = new EmailScheduler(); //IEnumerable<ScheduleType> scheduleTypes = Enum.GetValues(typeof(ScheduleType)).Cast<ScheduleType>(); emailScheduler.SchedulerTitles = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerList() select new SelectListItem { Text = item.Value, Value = item.Key }; emailScheduler.ScheduleType = from item in unitOfWork.EmailSchedulerRepository.GetSchedulerTypeAll() select new SelectListItem { Text = item.Value, Value = item.Key }; var recipientTypes = unitOfWork.EmailSchedulerRepository.GetRecipientUserTypeAll(); //new Dictionary<string, string> {{ "0", "--- Select recipient users ---" }, //{ "1", "Task's Users" }, //{ "2", "Task's Followers" }, //{ "3", "Task's Users & Followers" }, // { "4", "Project's Users" }}; emailScheduler.EmailRecipientUsers = from item in recipientTypes select new SelectListItem { Text = item.Value, Value = item.Key }; emailScheduler.Days = from item in unitOfWork.EmailSchedulerRepository.GetDaysOfWeek() select new SelectListItem { Text = item.Value, Value = item.Key }; //IEnumerable<Week> days = Enum.GetValues(typeof(Week)).Cast<Week>(); //emailScheduler.Days = from action in days // select new SelectListItem // { // Text = action.ToString(), // Value = ((int)action).ToString() // }; //emailScheduler.ScheduledTime = new TimeSpan(11, 30, 0); //emailScheduler.ScheduledTime = new TimeSpan(15, 30, 0); emailScheduler.ScheduledDate = DateTime.Today; //String testDt = DateTime.Now.ToShortTimeString(); //String testDt = DateTime.Now.ToString("hh:mm tt"); //emailScheduler.ScheduledTime = Convert.ToDateTime(DateTime.Now.ToString("hh:mm tt")); emailScheduler.ScheduledTime = DateTime.Now.ToString("hh:mm tt"); return(View(emailScheduler)); }
public MailerService() { InitializeComponent(); _mailer = EmailScheduler.GetMailer(); }
[Route("api/message/update")] // webhook uri api public async Task <IHttpActionResult> Update([FromBody] Update update) { var client = await Bot.Get(); var message = update.Message; try { if (update.Message.Type == MessageType.TextMessage) { await client.SendTextMessageAsync(message.Chat.Id, "HI"); await client.SendTextMessageAsync(message.Chat.Id, message.Text); if (message.Text == "time") { //long id = message.Chat.Id; //System.Timers.Timer t = new System.Timers.Timer(5000); //t.Elapsed += async (s, e) => //{ // await client.SendTextMessageAsync(id, DateTime.Now.ToShortTimeString()); //}; //t.Start(); ////Bot.timers.Add(new System.Timers.Timer()); Bot.Id = message.Chat.Id; Bot.SchedulerStartTime = DateTime.Now; // запуск выполнения работы EmailScheduler.Start(); } } switch (update.Type) { case UpdateType.UnknownUpdate: await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; case UpdateType.MessageUpdate: if (message.Text.StartsWith("/")) { await client.SendChatActionAsync(message.Chat.Id, ChatAction.Typing); InlineKeyboardButton[][] k = new InlineKeyboardButton[][] { new InlineKeyboardButton[] { } }; var keyboard1 = new InlineKeyboardMarkup(k); //var keyboard = new InlineKeyboardMarkup(new[] // { // new[] // { // new InlineKeyboardButton{ Text="1.1", Url="https://vk.com/" }, // new InlineKeyboardButton{ Text="1.2", SwitchInlineQuery = "1.2" }, // }, // new[] // { // new InlineKeyboardButton{ Text="2.1", CallbackData="he" }, // new InlineKeyboardButton{ Text="2.2", SwitchInlineQuery ="2.2" }, // } // }); await Task.Delay(500); await client.SendTextMessageAsync(message.Chat.Id, "Choose", replyMarkup : keyboard1); } await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; case UpdateType.InlineQueryUpdate: await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; case UpdateType.ChosenInlineResultUpdate: await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; case UpdateType.CallbackQueryUpdate: await client.EditMessageTextAsync(update.CallbackQuery.Message.Chat.Id, update.CallbackQuery.Message.MessageId, "test"); await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; case UpdateType.EditedMessage: await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; default: await client.SendTextMessageAsync(message.Chat.Id, update.Type.ToString()); break; } } catch (Exception ex) { await client.SendTextMessageAsync(message.Chat.Id, ex.ToString()); } return(Ok()); }