public async Task <IActionResult> Create() { var user = (TokenUser)HttpContext.Items["User"]; var ticketCreateView = new TicketCreateViewParameters { ProductViewResult = await _productProxy.Get(user.Token), }; return(View(ticketCreateView)); }
public async Task <IActionResult> Create(TicketCreateViewParameters parameters) { var user = (TokenUser)HttpContext.Items["User"]; if (parameters.Attachments != null) { parameters.TicketCreateParameters.Files = new List <StorageCreateParameters>(); foreach (var attachment in parameters.Attachments) { var fileBytes = new byte[] { }; if (attachment != null) { await using (var ms = new MemoryStream()) { await attachment.CopyToAsync(ms); fileBytes = ms.ToArray(); } var fileName = Path.GetFileName(attachment.FileName); parameters.TicketCreateParameters.Files.Add(new StorageCreateParameters { Name = Path.GetFileNameWithoutExtension(fileName), Bytes = fileBytes, Extension = Path.GetExtension(fileName) }); } } } var result = await _ticketProxy.Create(user.Token, new TicketCreateParameters { ClientId = user.Id, ProductId = parameters.TicketCreateParameters.ProductId, Subject = parameters.TicketCreateParameters.Subject, Summary = parameters.TicketCreateParameters.Summary, Files = parameters.TicketCreateParameters.Files, }); var client = await _clientProxy.Get(user.Token, user.Id); if (result != null) { _emailSender.Send(new EmailSendParameter { ToAddress = client.Email, Subject = $"Your ticket number {result.Id} is received", Body = $"Hello {client.Name}" + "," + $"{Environment.NewLine}" + $"Your Ticket {result.Id} has been successfully submitted" + $"{Environment.NewLine}" + "Find the details of your ticket below:" + $"{Environment.NewLine}" + $"Ticket Number: {result.Id}" + $"{Environment.NewLine}" + $"Date: {result.CreateDateTime}" + $"{Environment.NewLine}" + $"Subject: {result.Subject}" + $"{Environment.NewLine}" + $"Summary: {result.Summary}" + $"{Environment.NewLine}" + "To track your tickets and chat with our support staff, all you need is to LOGIN TO YOUR ACCOUNT and navigate to (My Tickets)." + $"{Environment.NewLine}" }); TempData["message"] = $"Ticket created successfully!." + $"{Environment.NewLine}" + $"Your ticket number is: {result.Id}"; return(RedirectToAction("index")); } return(View()); // ALERT }