Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Body,SupportUserId,TicketId,ReplyDate")] TicketReply ticketReply)
        {
            if (id != ticketReply.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(ticketReply);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TicketReplyExists(ticketReply.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["SupportUserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", ticketReply.SupportUserId);
            return(View(ticketReply));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create(int tid, [Bind("Id,Body,SupportUserId,TicketId,ReplyDate")] TicketReply ticketReply)
        {
            if (ModelState.IsValid)
            {
                var ticket = await _context.Tickets.Include(a => a.ApplicationUser)
                             .SingleOrDefaultAsync(m => m.Id == ticketReply.TicketId);

                if (User.IsInRole("Admins"))
                {
                    ticket.Status          = false;
                    ticket.TicketCloseDate = DateTime.Now;
                    var applicationuser = _context.ApplicationUsers.SingleOrDefault(a => a.Id == ticket.ApplicationUserId);
                    _context.Update(ticket);

                    //-----------------------------------email content-----------------------------------------

                    StringBuilder Welcome = new StringBuilder("<h3 align ='right'>عزيزي ");
                    Welcome.AppendFormat(string.Format(applicationuser.ArName));
                    Welcome.Append("</h3>");
                    Welcome.Append("</br>");

                    StringBuilder Footer = new StringBuilder("<h3 align ='right'>أطيب التحيات ");
                    Welcome.Append("</h3>");
                    Footer.AppendFormat(string.Format("<h3 align ='right'>فريق منصة اريد "));

                    Welcome.Append("</h3>");

                    EmailContent  usercontent     = _context.EmailContents.Where(m => m.UniqueName.ToString() == "8725ae1e-bff6-4a96-8be7-0a020f99b780").SingleOrDefault();
                    StringBuilder MyStringBuilder = new StringBuilder("");
                    MyStringBuilder.AppendFormat(string.Format("<h2 align ='center'><a href='https://portal.arid.my/ar-LY/Tickets/Details/{0}' >", ticket.Id));
                    MyStringBuilder.Append("اضغط هنا للاطلاع على تفاصيل التذكرة");
                    MyStringBuilder.Append("</a></h2>");


                    BackgroundJob.Schedule(() => _emailSender.SendEmailAsync(applicationuser.Email, "الرد على استفساركم في منصة اريد - رقم التذكرة " + "#[" + ticket.Id + "]", Welcome.ToString() + usercontent.ArContent + MyStringBuilder.ToString() + Footer.ToString()), TimeSpan.FromSeconds(1));

                    //-----------------------------------email content-----------------------------------------
                }

                else
                {
                    ticket.Status = true;

                    _context.Update(ticket);
                }
                if (ticketReply.Body != null)
                {
                    ticketReply.Body = (System.Text.RegularExpressions.Regex.Replace(ticketReply.Body, @"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)>", String.Empty)).Replace("\n", "<br/>");
                }
                ticketReply.ReplyDate     = DateTime.Now;
                ticketReply.SupportUserId = _userManager.GetUserId(User);

                _context.Add(ticketReply);
                await _context.SaveChangesAsync();

                //return RedirectToAction(nameof(Index));
                return(RedirectToAction("Details", "Tickets", new { id = ticketReply.TicketId }));
            }
            ViewData["TicketId"] = new SelectList(_context.Set <Ticket>().Where(a => a.Id == tid).OrderByDescending(a => a.Id), "Id", "Subject");
            return(View(ticketReply));
        }