//Hàm lấy dữ liệu cho đăng ký theo ngày public DangKyTheoNgayTable GetDangKyTheoNgay(int IdKhuNha, int IdLoaiPhong, DateTime date) { IEnumerable <Phong> phongs = _dangKyPhongHopRepository.GetPhong(); if (IdKhuNha > 0) { phongs = phongs.Where(x => x.IDKhuNha == IdKhuNha); } if (IdLoaiPhong > 0) { phongs = phongs.Where(x => x.IDLoaiPhong == IdLoaiPhong); } DangKyTheoNgayTable dangKyTable = new DangKyTheoNgayTable(); dangKyTable.Rows = new List <DangKyTheoNgayRow>(); dangKyTable.ToDay = date.Date; int rowIndex = 0; var skipEmptySlotIndexes = new List <SlotIndex>(); foreach (var phong in phongs) { DateTime currentTime = date.Date.AddHours(7); DateTime endTime = date.Date.AddHours(22); DangKyTheoNgayRow row = new DangKyTheoNgayRow(); row.Slots = new List <DangKyTheoNgaySlot>(); row.Times = new List <TimeHeader>(); row.Slots.Add(new DangKyTheoNgaySlot { TenPhong = phong.TenPhong, isRoom = true }); int colIndex = 0; while (currentTime < endTime) { IEnumerable <LichDangKy> dangKyTheoNgay = _dangKyPhongHopRepository.GetLichDangKyByDate(date); LichDangKy dangKyHienTai = dangKyTheoNgay.FirstOrDefault(d => d.IDPhong.Equals(phong.ID) && d.ThoiGianBatDau.Equals(currentTime)); row.Times.Add(new TimeHeader { Gio = currentTime }); AddDangKySlot(dangKyHienTai, row, skipEmptySlotIndexes, rowIndex, colIndex, currentTime, date.Date, phong, currentTime); currentTime = currentTime.AddMinutes(30); colIndex++; } dangKyTable.Rows.Add(row); rowIndex++; } return(dangKyTable); }
public void AddDangKySlot(LichDangKy dangKyHientai, DangKyTheoNgayRow row, List <SlotIndex> skipEmptySlotIndexes, int rowIndex, int colIndex, DateTime thoiGianHienTai, DateTime NgayHienTai, Phong phong, DateTime gio) { if (dangKyHientai != null && dangKyHientai.TinhTrang == "Đã chấp nhận") { var khoangThoiGianTimeSpan = dangKyHientai.ThoiGianKetThuc - dangKyHientai.ThoiGianBatDau; var khoangThoiGianDangKy = (int)khoangThoiGianTimeSpan.TotalMinutes / 30; row.Slots.Add(new DangKyTheoNgaySlot { IDDangKy = dangKyHientai.ID, TenPhong = phong.TenPhong, NgayHienTai = NgayHienTai, IsDangky = true, isRoom = false, ThoiGianDangKy = khoangThoiGianDangKy, ThoiGianBatDau = dangKyHientai.ThoiGianBatDau, ThoiGianKetThuc = dangKyHientai.ThoiGianKetThuc, TieuDe = dangKyHientai.TieuDe, TinhTrang = dangKyHientai.TinhTrang, NoiDungCuocHop = dangKyHientai.NoiDungCuocHop }); if (khoangThoiGianDangKy > 1) { AddSkipLocation(skipEmptySlotIndexes, khoangThoiGianDangKy, rowIndex, colIndex); } } else if (skipEmptySlotIndexes.IsEmptySlotRequired(colIndex, rowIndex)) { row.Slots.Add(new DangKyTheoNgaySlot { NgayHienTai = NgayHienTai, IsDangky = false, TenPhong = phong.TenPhong, isRoom = false, ThoiGianDangKy = 1, ThoiGianBatDau = thoiGianHienTai, ThoiGianKetThuc = thoiGianHienTai.AddMinutes(30), }); } }
public ActionResult DangKy(LichDangKyModels model) { if (model.NgayDangKy.Date < DateTime.Now.Date.AddDays(1)) { return(RedirectToAction("DangKyThatBai")); } if (Request.IsAuthenticated) { var Ten = ((User.Identity as System.Security.Claims.ClaimsIdentity)?.FindFirst("name")?.Value); var Email = ((User.Identity as System.Security.Claims.ClaimsIdentity)?.FindFirst("preferred_username")?.Value); if (ModelState.IsValid) { MailHelper mailHelper = new MailHelper(); var lichDangKy = new LichDangKy(); lichDangKy.TieuDe = model.TieuDe; lichDangKy.IDPhong = int.Parse(model.Phong); lichDangKy.ThoiGianBatDau = model.NgayDangKy.AddHours(double.Parse(model.ThoiGianBatDau)); lichDangKy.ThoiGianKetThuc = model.NgayDangKy.AddHours(double.Parse(model.ThoiGianKetThuc)); lichDangKy.NgayDangKy = model.NgayDangKy; lichDangKy.SoDienThoai = model.SoDienThoai; lichDangKy.TinhTrang = "Đang chờ xử lý"; lichDangKy.TenNguoiDangKy = Ten; lichDangKy.Email = Email; lichDangKy.ThanhPhan = model.ThanhPhan; lichDangKy.NoiDungCuocHop = model.NoiDungCuocHop; var quanLyDangKy = new QuanLyDangKy(_dangKyPhongHopRepository); lichDangKy.IdLanhDao = int.Parse(model.IdLanhDao); try { _dangKyPhongHopRepository.InsertLichDangKy(lichDangKy); _dangKyPhongHopRepository.Save(); var mail = _mailRepository.GetAll(); var fromAdmin = mail.Where(x => x.ValueOfMail == 0); //Gửi mail tới người đăng ký var Phong = _phongRepository.GetAll().Where(x => x.ID == lichDangKy.IDPhong); string contentToUser = System.IO.File.ReadAllText(Server.MapPath("/Assets/Home/MailStructure/" + fromAdmin.First().TenMail)); contentToUser = contentToUser.Replace("{{Name}}", lichDangKy.TenNguoiDangKy); contentToUser = contentToUser.Replace("{{Email}}", lichDangKy.Email); contentToUser = contentToUser.Replace("{{Room}}", Phong.First().TenPhong); contentToUser = contentToUser.Replace("{{ThoiGian}}", lichDangKy.ThoiGianBatDau.ToShortTimeString() + "-" + lichDangKy.ThoiGianKetThuc.ToShortTimeString()); contentToUser = contentToUser.Replace("{{NgayDangKy}}", lichDangKy.NgayDangKy.ToShortDateString()); contentToUser = contentToUser.Replace("{{TinhTrang}}", lichDangKy.TinhTrang); //Extra contentToUser = contentToUser.Replace("{{NoiDungCuocHop}}", lichDangKy.NoiDungCuocHop); contentToUser = contentToUser.Replace("{{GhiChu}}", lichDangKy.TieuDe); contentToUser = contentToUser.Replace("{{ThanhPhan}}", lichDangKy.ThanhPhan); contentToUser = contentToUser.Replace("{{TinhTrang}}", lichDangKy.TinhTrang); contentToUser = contentToUser.Replace("{{DonViCongTac}}", model.DonViCongTac); mailHelper.SendMail(lichDangKy.Email, "NEU", contentToUser); //Gửi mail tới quản trị var toAdmin = mail.Where(x => x.ValueOfMail == 4); string contentToAdmin = System.IO.File.ReadAllText(Server.MapPath("/Assets/Home/MailStructure/" + toAdmin.First().TenMail)); string CurrentLink = GetConfig.GetByKey("CurrentLink"); string AdminEmail = GetConfig.GetByKey("AdminEmail"); contentToAdmin = contentToAdmin.Replace("{{CurrentLink}}", CurrentLink.ToString()); mailHelper.SendMail(AdminEmail, "NEU", contentToAdmin); } catch (Exception ex) { throw; } TempData["LichDangKy"] = lichDangKy; } else { ModelState.AddModelError("", "Bạn cần nhập đầy đủ thông tin"); return(View(model)); } } return(RedirectToAction("DangKyThemThietBi", "DangKy")); }
public LichDangKy InsertLichDangKy(LichDangKy lich) { context.LichDangKies.Add(lich); return(lich); }
public ActionResult ThemMoi(ThemMoiLichDangKy dangKy) { if (dangKy.NgayDangKy.Day <= DateTime.Now.Day) { return(RedirectToAction("ThemMoiKhongThanhCong")); } else { if (ModelState.IsValid) { MailHelper mailHelper = new MailHelper(); var lichDangKy = new LichDangKy(); lichDangKy.TieuDe = dangKy.TieuDe; lichDangKy.IDPhong = int.Parse(dangKy.Phong); lichDangKy.ThoiGianBatDau = dangKy.NgayDangKy.AddHours(double.Parse(dangKy.ThoiGianBatDau)); lichDangKy.ThoiGianKetThuc = dangKy.NgayDangKy.AddHours(double.Parse(dangKy.ThoiGianKetThuc)); lichDangKy.NgayDangKy = dangKy.NgayDangKy; lichDangKy.SoDienThoai = dangKy.SoDienThoai; lichDangKy.TinhTrang = "Đã chấp nhận"; lichDangKy.TenNguoiDangKy = dangKy.TenNguoiDangKy; lichDangKy.Email = dangKy.Email; lichDangKy.ThanhPhan = dangKy.ThanhPhan; lichDangKy.NoiDungCuocHop = dangKy.NoiDungCuocHop; var quanLyDangKy = new QuanLyDangKy(_dangKyPhongHopRepository); lichDangKy.IdLanhDao = dangKy.IdLanhDao; try { _dangKyPhongHopRepository.InsertLichDangKy(lichDangKy); _dangKyPhongHopRepository.Save(); var mail = _mailRepository.GetAll(); var fromAdmin = mail.Where(x => x.ValueOfMail == 0); string contentToUser = System.IO.File.ReadAllText(Server.MapPath("/Assets/Home/MailStructure/" + fromAdmin.First().TenMail)); var Phong = _phongRepository.GetAll().Where(x => x.ID == lichDangKy.IDPhong); //Gửi mail tới người đăng ký if (IsValidEmail(lichDangKy.Email)) { contentToUser = contentToUser.Replace("{{Name}}", lichDangKy.TenNguoiDangKy); contentToUser = contentToUser.Replace("{{Email}}", lichDangKy.Email); contentToUser = contentToUser.Replace("{{Room}}", Phong.First().TenPhong); contentToUser = contentToUser.Replace("{{ThoiGian}}", lichDangKy.ThoiGianBatDau.ToShortTimeString() + "-" + lichDangKy.ThoiGianKetThuc.ToShortTimeString()); contentToUser = contentToUser.Replace("{{NgayDangKy}}", lichDangKy.NgayDangKy.ToShortDateString()); contentToUser = contentToUser.Replace("{{TinhTrang}}", lichDangKy.TinhTrang); //Extra contentToUser = contentToUser.Replace("{{NoiDungCuocHop}}", lichDangKy.NoiDungCuocHop); contentToUser = contentToUser.Replace("{{SoDienThoai}}", lichDangKy.SoDienThoai); contentToUser = contentToUser.Replace("{{TieuDe}}", lichDangKy.TieuDe); contentToUser = contentToUser.Replace("{{ThanhPhan}}", lichDangKy.ThanhPhan); contentToUser = contentToUser.Replace("{{TinhTrang}}", lichDangKy.TinhTrang); contentToUser = contentToUser.Replace("{{DonViCongTac}}", dangKy.DonViCongTac); mailHelper.SendMail(lichDangKy.Email, "NEU", contentToUser); } else { return(RedirectToAction("Index")); } if (!string.IsNullOrEmpty(dangKy.ThanhPhan)) { var toMember = mail.Where(x => x.ValueOfMail == 5); string[] thanhPhan = dangKy.ThanhPhan.Split(','); List <string> listMail = new List <string>(); for (int j = 0; j < thanhPhan.Length; j++) { var item = thanhPhan[j].Split('('); if (item != null && item.Count() > 1) { if (item[1].Contains(")")) { item[1] = item[1].Replace(")", ""); } listMail.Add(item[1]); } } foreach (var mailItem in listMail) { if (IsValidEmail(mailItem)) { string contentToMember = System.IO.File.ReadAllText(Server.MapPath("/Assets/Home/MailStructure/" + toMember.First().TenMail)); contentToMember = contentToMember.Replace("{{Name}}", dangKy.TenNguoiDangKy); contentToMember = contentToMember.Replace("{{EmailMember}}", mailItem); contentToMember = contentToMember.Replace("{{Email}}", dangKy.Email); contentToMember = contentToMember.Replace("{{Room}}", Phong.First().TenPhong); contentToMember = contentToMember.Replace("{{ThoiGian}}", lichDangKy.ThoiGianBatDau.ToShortTimeString() + "-" + lichDangKy.ThoiGianKetThuc.ToShortTimeString()); contentToMember = contentToMember.Replace("{{NgayDangKy}}", lichDangKy.NgayDangKy.ToShortDateString()); //Extra contentToMember = contentToMember.Replace("{{NoiDungCuocHop}}", lichDangKy.NoiDungCuocHop); contentToMember = contentToMember.Replace("{{SoDienThoai}}", lichDangKy.SoDienThoai); contentToMember = contentToMember.Replace("{{TieuDe}}", lichDangKy.TieuDe); contentToMember = contentToMember.Replace("{{ThanhPhan}}", lichDangKy.ThanhPhan); contentToMember = contentToMember.Replace("{{TinhTrang}}", lichDangKy.TinhTrang); mailHelper.SendMail(mailItem, "NEU", contentToMember); } else { return(RedirectToAction("Index")); } } } return(RedirectToAction("Index")); } catch (Exception ex) { throw; } } else { ModelState.AddModelError("", "Dữ liệu không hợp lệ"); } return(RedirectToAction("Index")); } }