Пример #1
0
        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 }));
            }
        }
Пример #2
0
        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"));
            }
        }
Пример #3
0
        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 }));
            }
        }
Пример #4
0
        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 }));
            }
        }