public bool SendDailyMail(DateTime date, string office) { UserApplication userApp = new UserApplication(); // sunneters List <UsersEntity> allUsers = userApp.GetActiveUserList().FindAll(u => u.Role != RolesEnum.CLIENT && u.IsNotice); List <UsersEntity> currentUsers = allUsers.FindAll(u => u.Office.ToUpper() == office.ToUpper()); List <UsersEntity> noSubmittedUsers = new List <UsersEntity>(); TimeSheetApplication tsApp = new TimeSheetApplication(); SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.EmailNotice, false, "ModifiedOn", "ASC"); request.Office = office; request.SearchDate = date; SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request); if (response.IsError) { WebLogAgent.Write("SunNet.PMNew.Web.Codes.EmailExecuter.SendDailyMail:136,GetDataError"); return(false); } StringBuilder ticketHtml = new StringBuilder(); StringBuilder usersTickets = new StringBuilder(); if (response.TimeSheetsList.Count == 0) { // no timesheet,clear htmlTemplate nodes string emptyTmeplate = UserFirstRowSection; emptyTmeplate = UserContentSection; } foreach (UsersEntity user in currentUsers) { List <TimeSheetTicket> userTickets = response.TimeSheetsList.FindAll(tts => tts.UserID == user.ID); if (userTickets == null || userTickets.Count == 0) { noSubmittedUsers.Add(user); continue; } else { usersTickets.Append(GetUserTicketsHtml(user, userTickets)); } } ticketHtml.Append(GetDateSectionHtml(date, response.TimeSheetsList.Count + noSubmittedUsers.Count + 1)); ticketHtml.Append(usersTickets); ticketHtml.Append(GetUserNoTicketsHtml(noSubmittedUsers)); // 不需要没有写的汇总了,因为另一封已经包含了。 //SendNoSubmitEmail(noSubmittedUsers, date); foreach (UsersEntity user in noSubmittedUsers) { SendNoticeToUser(user, date); } SendSubmittedEmail(ticketHtml.ToString(), date); return(true); }
public bool SendWeekPlanMail(string office) { WeekPlanApplication weekPlanApplication = new WeekPlanApplication(); UserApplication userApp = new UserApplication(); List <UsersEntity> usersHavenotSubmitWeekPlan = new List <UsersEntity>(); List <UsersEntity> allUsers = userApp.GetActiveUserList().FindAll(u => u.Role != RolesEnum.CLIENT && u.IsNotice); List <UsersEntity> currentUsers = allUsers.FindAll(u => u.Office.ToUpper() == office.ToUpper()); DateTime weekDay = DateTime.Now; if (weekDay.DayOfWeek != DayOfWeek.Sunday) { weekDay = weekDay.AddDays(-(int)DateTime.Now.DayOfWeek).AddDays(7); } foreach (UsersEntity user in currentUsers) { WeekPlanEntity weekPlanEntity = weekPlanApplication.GetInfo(user.UserID, weekDay); if (weekPlanEntity == null) { usersHavenotSubmitWeekPlan.Add(user); } } SendWeekPlanMail(usersHavenotSubmitWeekPlan, weekDay.Date); return(true); }
public void SetEstimation(TicketUsersEntity ticketUsersEntity) { if ((int)ticketsEntity.Status > (int)TicketsState.PM_Reviewed && ticketsEntity.EsUserID > 0) { ltrlEstimationUser.Text = userApp.GetUser(ticketsEntity.EsUserID).FirstAndLastName; } else { ltrlEstimationUser.Text = UserInfo.FirstAndLastName; } List <UsersEntity> listUsers = userApp.GetActiveUserList().FindAll(u => u.UserType == "CLIENT" && u.CompanyID == ticketsEntity.CompanyID) .OrderBy(r => r.FirstName).ToList(); foreach (UsersEntity u in listUsers) { ddlConfirmEstmateUserId.Items.Add(new ListItem() { Value = u.UserID.ToString(), Text = string.Format("{0}({1})", u.FirstAndLastName, u.Role) }); } if (ticketsEntity.ConfirmEstmateUserId > 0) { ListItem li = ddlConfirmEstmateUserId.Items.FindByValue(ticketsEntity.ConfirmEstmateUserId.ToString()); if (li != null) { li.Selected = true; } } txtInitialTime.Text = ticketsEntity.InitialTime.ToString("N"); txtBoxExtimationHours.Text = ticketsEntity.FinalTime.ToString("N"); }
private void InitUsers(int companyId) { List <UsersEntity> listCurrentProject = GetAllProjectUsers(); var projectId = QS("ID", 0); List <UsersEntity> listUsers = userApp.GetActiveUserList().FindAll(u => u.UserType == "SUNNET" || (u.UserType == "CLIENT" && u.CompanyID == companyId)); var tmpList = listUsers.Select(x => new { x.ID, ProjectID = projectId, x.FirstName, x.LastName, x.FirstAndLastName, x.LastNameAndFirst, Selected = listCurrentProject.Any(r => r.UserID == x.ID), x.Role }).ToList(); rptDev.DataSource = tmpList.FindAll(r => r.Role == RolesEnum.DEV || r.Role == RolesEnum.Leader || r.Role == RolesEnum.Contactor).OrderBy(r => r.FirstName); rptDev.DataBind(); rptQA.DataSource = tmpList.FindAll(r => r.Role == RolesEnum.QA).OrderBy(r => r.FirstName); rptQA.DataBind(); rptUS.DataSource = tmpList.FindAll(r => r.Role == RolesEnum.ADMIN || r.Role == RolesEnum.PM || r.Role == RolesEnum.Sales || r.Role == RolesEnum.Supervisor).OrderBy(r => r.FirstName); rptUS.DataBind(); rptClient.DataSource = tmpList.FindAll(r => r.Role == RolesEnum.CLIENT).OrderBy(r => r.FirstName); rptClient.DataBind(); }
public bool ReminderAll() { if (IsCanRun()) { //插入一条新同步记录 ReminderHistoryModel historyModel = IniReminderHistory(); //所有用户提醒 var users = _usersApp.GetActiveUserList(); foreach (var user in users) { //每用户提醒 ReminderByUser(user); } //更新同步记录 historyModel.RunEndTime = DateTime.Now; historyModel.State = ReminderStateEnum.Succeed; _historyManager.UpdateModel(historyModel); } return(true); }