//後來糾團(用原本的orderID) //GET: AnyDMorBuy/SendMyMessage public ActionResult SendMyMessage(int BuyCheck) { ViewBag.DetailID = BuyCheck; //先去LeaderSendMessage找看看有沒有寄過 var result = db.SendMessageViews.Where(m => m.OrderID == BuyCheck); if (result.FirstOrDefault() != null) { var Nresult = new EmailModelView(); foreach (var item in result) { Nresult = new EmailModelView() { Subject = item.SentSubject, Body = item.SentBody, CheckEnd = true }; break; } return(View(Nresult)); } return(View()); }
public async Task <IActionResult> ChangeEmail(EmailModelView modelView) { if (ModelState.IsValid && await _usersService.Update(modelView) != null) { return(Ok()); } return(BadRequest()); }
public ActionResult UpdateMail(EmailModelView model) { var mail = Session[$"Mail{model.CandidateId}"] as EmailModelView; mail.To = model.To; mail.Bcc = model.Bcc; mail.Subject = model.Subject; mail.Body = model.Body; return(RedirectToAction("Index")); }
public ActionResult CreateMail(int[] CandidateId) { try { var emplst = new List <Candidate>(); for (int i = 0; i < CandidateId.Length; i++) { emplst.Add(db.Candidate.Find(CandidateId[i])); } var n = Environment.NewLine; foreach (var item in emplst) { EmailModelView mail = new EmailModelView(); mail.CandidateId = item.CandidateId; mail.To = item.Email; mail.Bcc = item.Employee.Email; mail.Subject = item.LevelId == 1 ? "Saishunkan System Vietnam_Thư mời test" : "Vòng 1 - Saishunkan System Vietnam_Thư mời phỏng vấn"; mail.Body = ($"Chào bạn {item.FullName},{n}" + $"{n}" + $"Chúng tôi là phụ trách nhân sự công ty Saishunkan System Vietnam.{n}" + $"Cảm ơn bạn đã nộp hồ sơ ứng tuyển vị trí {item.Level.LevelName} {item.Position.PositionName} cho chúng tôi.{n}" + $"{n}" + $"Bên chúng tôi có kế hoạch phỏng vấn vào thời gian và địa điểm như sau:{n}" + $"Thời gian: {item.InterviewTime}{n}" + $"Địa điểm: {item.InterviewLocation}{n}" + $"{n}" + $"Thanks & Regards"); Session[$"Mail{item.CandidateId}"] = mail; } return(RedirectToAction("Index")); } catch (Exception) { throw; } }
public ActionResult SendMyMessage(EmailModelView MailC, string YearDate2) { NewDrinkDB dbR = new NewDrinkDB(); //接收Model //接收使用者OrderID if (!ModelState.IsValid || String.IsNullOrEmpty(YearDate2)) { ViewBag.DetailID = MailC.OrderID; if (String.IsNullOrEmpty(YearDate2)) { ViewBag.Message = "時間欄位未填."; } return(View(MailC)); } //勾選系統關團的狀況 ////有勾未填時間 //if (String.IsNullOrEmpty(MailC.EndOverTime) && MailC.CheckEnd == true) //{ // ViewBag.Message = "您尚未填寫關團時間."; // ViewBag.DetailID = MailC.OrderID; // return View(MailC); //} ////填時間未勾 //if (!String.IsNullOrEmpty(MailC.EndOverTime) && MailC.CheckEnd == false) //{ // ViewBag.Message = "請勾選系統自動關團."; // ViewBag.DetailID = MailC.OrderID; // return View(MailC); //} string EtimeEnd = null; string MyTime = null; var time2 = DateTime.Now; var InputTime = Convert.ToDateTime(YearDate2); //判斷時間是否非法 if (time2 > InputTime) { ViewBag.DetailID = MailC.OrderID; ViewBag.Message = "時間不可以是過去式."; return(View(MailC)); } EtimeEnd = "截止日期: " + YearDate2; MyTime = YearDate2; //判斷時間格式 //須判斷: 月份,日期 //"", "NaN-NaN-NaN" //int Hour = Int32.Parse(hours); //if (String.IsNullOrEmpty(YearDate) || YearDate == "NaN-NaN-NaN") //{ // var time2 = DateTime.Now; // time2 = time2.AddHours(Hour); // EtimeEnd = "截止日期: " + time2; // MyTime = time2.ToString(); //} //if (!String.IsNullOrEmpty(YearDate)) //{ // DateTime ETimeM = Convert.ToDateTime(YearDate); // var time2 = DateTime.Now; // int EMon = Int32.Parse(ETimeM.ToString("MM")); // int NMon = Int32.Parse(time2.ToString("MM")); // //月份小 // if (EMon < NMon) // { // //回傳錯誤 // ViewBag.Message = "時間不可以是過去式."; // ViewBag.DetailID = MailC.OrderID; // ViewBag.Member = MailC.Member; // return View(MailC); // } // //月份同 // if (EMon == NMon) // { // int EDate = Int32.Parse(ETimeM.ToString("dd")); // int NDate = Int32.Parse(time2.ToString("dd")); // //日期小 // if (EDate < NDate) // { // //回傳錯誤 // ViewBag.Message = "時間不可以是過去式."; // ViewBag.DetailID = MailC.OrderID; // ViewBag.Member = MailC.Member; // return View(MailC); // } // } // //[月份大],[月份同,日期大](直接加輸入的小時) // if (EMon > NMon) // { // DateTime ETime = Convert.ToDateTime(YearDate); // ETime = ETime.AddHours(Hour); // MyTime = ETime.ToString(); // EtimeEnd = "截止日期: " + ETime; // } //} ////取出所有有勾選的成員(不寄給自己) var PickM = new ChangeMem() { Member = MailC.Member }; var AllMember = Models.AnyDMorBuy.CheckMem(PickM); if (AllMember == null || AllMember.Count() == 0) { ViewBag.DetailID = MailC.OrderID; ViewBag.EmptyM = "請至少選擇一位成員."; return(View(MailC)); } var time = DateTime.Now; ////取出使用者ID string UserMail = Helper.GetUserMail(); int UserID = Models.AnyDMorBuy.GetUserID_UseEmail(UserMail); //這裡要先判斷使用者寄信的狀態,及時間(0為無寄信, 1為寄信中或上次寄信錯誤) //若為1則返回錯誤訊息(限制5分鐘後才可再寄信) var CheckYesSend = dbR.Users.Find(UserID); //判斷時間 bool CheckThisTime = Models.AnyDMorBuy.CheckCanSend_Message(time, CheckYesSend.SendTime); if (CheckYesSend.SendOrNot == 1 && CheckThisTime == true) { ViewBag.DetailID = MailC.OrderID; TempData["message"] = "Error"; ViewBag.Error = "Error"; return(View(MailC)); } else { //若為0寄信,並更改寄信狀態,紀錄時間 CheckYesSend.SendOrNot = 1; CheckYesSend.SendTime = time; dbR.SaveChanges(); } //截止日期 DateTime ETime2 = Convert.ToDateTime(MyTime); AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); //到時要循環寄出//////////////////////////////////////////////////////////////////////////////////////////// //還要判斷是否重複寄出了 //若重覆了則決定要updata時間還是讓使用者重建菜單 //var AllMember = db.Users.Where(m => m.ID != UserID); //循環寄出 foreach (var item in AllMember) { NewDrinkDB dbM = new NewDrinkDB(); //取出成員資料 var MemList = dbM.Users.Find(item); //http://172.16.8.4:42118 //http://172.16.8.59:52118 //作Guid加解密(作唯一鍵值) string plainText = MemList.ID.ToString() + MailC.OrderID.ToString(); Guid userGuid = System.Guid.NewGuid(); var dataAndGuid = Models.AnyDMorBuy.GuidwithOrderLogin(userGuid, plainText); string SendLink = "http://172.16.8.4:42118/Account/Get_MyOrder?ID=" + dataAndGuid; string NewBody = MailC.Body + "菜單連結: http://172.16.8.4:42118/Account/Get_MyOrder?ID=" + dataAndGuid; if (!String.IsNullOrEmpty(EtimeEnd) && MailC.CheckEnd == true) { NewBody = NewBody + EtimeEnd; } //團員mail string to = MemList.Email.ToString(); //團長mail string from = UserMail; string subject = MailC.Subject; MailMessage mailMessage = new MailMessage(from, to); mailMessage.Subject = subject; mailMessage.Body = NewBody; //string smtpServer = "mail.bingotimes.com.tw"; string smtpServer = "smtp.gmail.com"; //string smtpServer = "127.0.0.1"; SmtpClient client = new SmtpClient(smtpServer, 25); //client.EnableSsl = true; //寄之前暫停1秒 int millsecondsTimeout = 1000; System.Threading.Thread.Sleep(millsecondsTimeout); try { client.Send(mailMessage); } catch (Exception e) { ViewBag.DetailID = MailC.OrderID; TempData["message"] = "Error"; ViewBag.Error = "Error"; return(View(MailC)); } //還要判斷是否重複寄出了 //若重覆了則決定要updata時間還是讓使用者重建菜單 var CheckRepeat = db.SendMessageViews.Where(m => m.UserID == item && m.OrderID == MailC.OrderID && m.SentUser == UserID); if (CheckRepeat.FirstOrDefault() != null) { //已經寄過了,更新時間及link foreach (var update in CheckRepeat) { update.SendTime = time; update.SentAlink = SendLink; update.SentBody = MailC.Body; update.SentSubject = MailC.Subject; update.ReadOrNot = false; db.SaveChanges(); } } else { //第一次寄 //寫入資料庫(到時ID要改成其他人對應的ID) dbM.SendMessageViews.Add(new SendMessageView() { ID = dataAndGuid, OrderID = MailC.OrderID, UserID = MemList.ID, SendTime = time, SentUser = UserID, SentBody = MailC.Body, SentAlink = SendLink, SentSubject = MailC.Subject, ReadOrNot = false, EndOverTime = ETime2 }); dbM.SaveChanges(); } }//End foreach. //循環結束 /////////////////////////////////////////////////////////////////////////////////////////// //這邊團長自己的也要判斷(link寫團長自己的ID) var CheckLeader = dbR.LeaderSendMessages.Where(m => m.SentUser == UserID && m.OrderID == MailC.OrderID); //取出MenuID var MenuID = dbR.CreateBuyOrder_LeaderOrders.Find(MailC.OrderID); //作Token加解密 string plainTextU = UserID.ToString() + MailC.OrderID.ToString(); Guid leaderGuid = System.Guid.NewGuid(); var dataAndGuidU = Models.AnyDMorBuy.GuidwithOrderLogin(leaderGuid, plainTextU); //string LeaderID = PasswordUtility.AESEncryptor(UserID.ToString(), aes.Key, aes.IV); string LeaderLink = "http://172.16.8.59:52118/Account/Get_LeaderMyOrder?ID=" + dataAndGuidU; //寫入資料庫 if (CheckLeader.FirstOrDefault() != null) { //已經寄過了,更新時間及link foreach (var item in CheckLeader) { //item.ID = dataAndGuidU; item.Subject = MailC.Subject; item.Body = MailC.Body; //item.Alink = LeaderLink; item.SendTime = time; item.EndOverTime = ETime2; } //寫入成員表(這裡要判斷不要重覆寫入) var AddmyAllMember = dbR.CreateBuyOrder_MemberOrders.Where(m => m.OrderID == MailC.OrderID); var AddmyAllMember2 = new List <CreateBuyOrder_MemberOrder>(); foreach (var item in AllMember) { var HaveV = true; foreach (var memC in AddmyAllMember) { if (item == memC.UserID) { //依狀況更新 memC.Together = true; dbR.SaveChanges(); break; } HaveV = false; } if (HaveV == false) { //新增 AddmyAllMember2.Add(new CreateBuyOrder_MemberOrder() { UserID = item, OrderID = MailC.OrderID, Together = true }); } } dbR.CreateBuyOrder_MemberOrders.AddRange(AddmyAllMember2); } else { dbR.LeaderSendMessages.Add(new LeaderSendMessage() { ID = dataAndGuidU, SentUser = UserID, OrderID = MailC.OrderID, Subject = MailC.Subject, Body = MailC.Body, Alink = LeaderLink, SendTime = time, EndOverTime = ETime2 }); //寫入成員表(第一次寫入) var AddmyAllMember = new List <CreateBuyOrder_MemberOrder>() { }; foreach (var item in AllMember) { AddmyAllMember.Add(new CreateBuyOrder_MemberOrder() { UserID = item, OrderID = MailC.OrderID, Together = true }); } dbR.CreateBuyOrder_MemberOrders.AddRange(AddmyAllMember); } //將團長的訂單填入截止日期 if (!String.IsNullOrEmpty(MyTime)) { NewDrinkDB dbO = new NewDrinkDB(); var OrderEnd = dbO.CreateBuyOrder_LeaderOrders.Find(MailC.OrderID); OrderEnd.EndThisTime = ETime2; OrderEnd.CheckEnd = MailC.CheckEnd; dbO.SaveChanges(); } //寄完所有信件後,將狀態改成0 CheckYesSend.SendOrNot = 0; dbR.SaveChanges(); //轉向已送出訊息檢視 return(RedirectToAction("MessageView_Sent", "Home")); }