public async Task <ActionResult> CreateNewEmail(long?MemberId) { try { EmailSupportViewModel model = new EmailSupportViewModel(); if (MemberId.HasValue) { if (User.IsInRole("Member")) { string AlertString = "Không thể tạo thư hỗ trợ"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } User Member = new User(); Member = await cms_db.GetObjUserById(MemberId.Value); if (Member != null) { model.DestinationId = MemberId.Value; model.DestinationName = Member.EMail; } else { string AlertString = "Không thể tạo thư hỗ trợ cho thành viên này"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } } else { if (!User.IsInRole("Member")) { string AlertString = "Không thể tạo thư hỗ trợ do bạn không phải là thành viên"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } } return(View(model)); } catch (Exception e) { cms_db.AddToExceptionLog("CreateNewEmail", "EmailManager", e.ToString()); string AlertString = "Nội dung xem không khả dụng"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } }
public async Task <ActionResult> CreateNewEmail(EmailSupportViewModel model) { try { long UID = long.Parse(User.Identity.GetUserId()); EmailSupport newObject = model._MainObj; newObject.EmailName = model.Subject; newObject.CrtdDT = DateTime.Now; newObject.CrtdUserId = long.Parse(User.Identity.GetUserId()); newObject.CrtdUserName = User.Identity.Name; newObject.StateId = (int)EnumCore.EmailStatus.cho_ho_tro; newObject.StateName = "Chờ hỗ trợ"; if (model.DestinationId.HasValue) { newObject.DestinationId = model.DestinationId; newObject.DestinationName = model.DestinationName; } else { newObject.DestinationId = -1; } int rs = cms_db.CreateEmailSupport(newObject); //member tạo ra chắc chắn là member đã xems //tạo d8ã xem cho email mới tạo int rsv = this.CreateEmailView(newObject, UID); int ach = await cms_db.CreateUserHistory(UID, Request.ServerVariables["REMOTE_ADDR"], (int)EnumCore.ActionType.Update, "CreateNewEmail", newObject.EmailId, newObject.Subject, "EmailSupport", (int)EnumCore.ObjTypeId.emailsupport); var context = GlobalHost.ConnectionManager.GetHubContext <NotifiHub>(); context.Clients.All.notificationNewEmail(); return(RedirectToAction("Index")); } catch (Exception e) { cms_db.AddToExceptionLog("CreateNewEmail", "EmailManager", e.ToString(), long.Parse(User.Identity.GetUserId())); return(RedirectToAction("Index")); } }
public async Task <ActionResult> DetailEmail(long?emailId) { try { long UID = long.Parse(User.Identity.GetUserId()); EmailSupportViewModel model = new EmailSupportViewModel(); model._MainObj = cms_db.GetObjEmailSupport(emailId.Value); if (User.IsInRole("Member")) { if (model._MainObj.CrtdUserId != UID && model._MainObj.DestinationId == UID) { string AlertString = "Nội dung xem không khả dụng"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } } model.lstChild = cms_db.GetlstEmailSupport().Where(s => s.ParentId == emailId && s.StateId != (int)EnumCore.EmailStatus.da_xoa).OrderByDescending(s => s.CrtdDT).ToList(); //tạo đã xem cho email chính int rs = this.CreateEmailView(model._MainObj, UID); //tạo đã xem cho tấ cả email con foreach (EmailSupport _item in model.lstChild) { int rsc = this.CreateEmailView(_item, UID); } return(View(model)); } catch (Exception e) { cms_db.AddToExceptionLog("CreateNewEmail", "EmailManager", e.ToString()); string AlertString = "Nội dung xem không khả dụng"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } }
public async Task <ActionResult> ReplyEmail(EmailSupportViewModel model) { try { string AlertString = ""; ///phải là mod hay admin mới có thể tạo thư trả lời if (!User.IsInRole("AdminUser") && !User.IsInRole("devuser") && !User.IsInRole("supperadmin") && !User.IsInRole("Mod")) { AlertString = "Tạo mới thư trả lời thư không thành công do bạn không phải là mod"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } long ModUserId = long.Parse(User.Identity.GetUserId()); User ModUser = await cms_db.GetObjUserById(ModUserId); EmailSupport SubjectEmail = cms_db.GetObjEmailSupport(model.EmailId); if (SubjectEmail.DestinationId != -1) { AlertString = "Tạo mới thư trả lời thư không thành công đã có mod hỗ trợ"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } SubjectEmail.DestinationId = ModUser.Id; SubjectEmail.DestinationName = ModUser.FullName; ///cập nhật lại người nhận là mod cho email hỏi await cms_db.UpdateEmailSupport(SubjectEmail); User MemberUser = await cms_db.GetObjUserById(SubjectEmail.CrtdUserId.Value); EmailSupport ReplyEmailSuport = new EmailSupport(); //vì day là email trả lời mod trả lời nên DestinationId là id của member tạo ra thư ReplyEmailSuport.DestinationName = MemberUser.FullName; ReplyEmailSuport.DestinationId = MemberUser.Id; //vì day là email trả lời mod trả lời nên ParentId là id của thư chủ ReplyEmailSuport.ParentId = SubjectEmail.EmailId; ReplyEmailSuport.ParentName = SubjectEmail.Subject; ReplyEmailSuport.Content = model.Content; ReplyEmailSuport.EmailName = SubjectEmail.Subject; ReplyEmailSuport.CrtdDT = DateTime.Now; ReplyEmailSuport.CrtdUserId = ModUserId; ReplyEmailSuport.CrtdUserName = ModUser.FullName; ReplyEmailSuport.StateId = (int)EnumCore.EmailStatus.da_ho_tro; ReplyEmailSuport.StateName = "Đã hỗ trợ"; int rs = cms_db.CreateEmailSupport(ReplyEmailSuport); //mod tạo ra mail này chắc nchan moad dã xem mình trả lời int rsv = this.CreateEmailView(ReplyEmailSuport, ModUserId); int ach = await cms_db.CreateUserHistory(ModUserId, Request.ServerVariables["REMOTE_ADDR"], (int)EnumCore.ActionType.Update, "ReplyEmail", ReplyEmailSuport.EmailId, ReplyEmailSuport.Subject, "EmailSupport", (int)EnumCore.ObjTypeId.emailsupport); AlertString = "Tạo mới thư trả lời thư thành công"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } catch (Exception e) { cms_db.AddToExceptionLog("CreateNewEmail", "EmailManager", e.ToString(), long.Parse(User.Identity.GetUserId())); string AlertString = "Tạo mới thư trả lời thư không thành công do có lỗi khi tạo"; return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn })); } }