public async Task <IActionResult> FilterMails(MailboxViewModel viewModel, [FromQuery] int pageNumber = 1) => View("Index", viewModel.FilterMails(await mailboxService.FilterMails(MailFiltersParams.Build ( viewModel.Subject, viewModel.OnlyFavorites, viewModel.SortType ).CurrentPage(pageNumber) as MailFiltersParams)));
public async Task <IActionResult> Mail(int?retrieveThreadID) { var currid = GetUserID(); var viewModel = new MailboxViewModel(); viewModel.Threads = await _context.Threads .Include(c => c.Conversations) .ThenInclude(m => m.Message) .ThenInclude(mp => mp.Profile) .Include(p => p.InitiatorProfile) .Include(r => r.ReceiverProfile) .Where(t => t.InitiatorID == currid || t.ReceiverID == currid) .ToListAsync(); if (retrieveThreadID != null) { Thread thread = viewModel.Threads .Where(t => t.ThreadID == retrieveThreadID) .Single(); viewModel.Messages = thread.Conversations .Select(c => c.Message); foreach (Message m in viewModel.Messages) { m.Profile = _context.Profiles .Where(i => i.ProfileID == m.MsgSenderID) .Single(); } } return(View(viewModel)); //return View(await _context.Threads.ToListAsync()); }
// Mailbox user public IActionResult Mailbox() { if (!_auth.Authorise(RolesEnum.Admin, _context)) // Authorise the user is an admin { return(Redirect("~/Project/Dashboard")); } // Get a new View model var vm = new MailboxViewModel(); // Instanciate the mail list vm.MailList = new List <FormattedRequest>(); // Go through every request in admin requests foreach (var i in _context.AdminRequests.Where(r => r.RequestId > 0)) { // Create a new formatted request and add all the fields var temp = new FormattedRequest(); temp.Name = _context.Users.First(u => u.UserId == i.SentByUserId).UserName; temp.Description = i.RequestDescription; temp.Responded = i.Responded; temp.Response = i.Response; temp.DateRequested = i.DateRequested; temp.DateResponded = i.DateResponded; temp.RequestType = _context.RequestTypes.First(u => u.RequestTypeId == i.RequestTypeId).RequestName; temp.RequestId = i.RequestId; // Add the new formatted request to the view model vm.MailList.Add(temp); } // Return the view model return(View(vm)); }
public async Task <IActionResult> Send([Bind("ReceiverID", "Header", "Body")] MailboxViewModel mailBox) { if (ModelState.IsValid) { var currid = GetUserID(); var addThread = new Thread(); addThread.InitiatorID = currid; addThread.ReceiverID = mailBox.ReceiverID; _context.Add(addThread); await _context.SaveChangesAsync(); var addMessage = new Message(); addMessage.MsgHeader = mailBox.Header; addMessage.MsgBody = mailBox.Body; addMessage.MsgSenderID = currid; _context.Add(addMessage); await _context.SaveChangesAsync(); var addConversation = new Conversation(); addConversation.MessageID = addMessage.MessageID; addConversation.ThreadID = addThread.ThreadID; _context.Add(addConversation); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Mail))); } var testList = _context.RunGreenLakeUsers .Select(p => new { p.LinkID, p.FirstName, p.LastName }) .ToList(); mailBox.ReceiverList = new SelectList(testList, "LinkID", "FirstName"); return(View(mailBox)); }
public ActionResult Mailbox(string code) { var model = new MailboxViewModel() { Code = code }; return(View(model)); }
// GET: MailboxController/Create public ActionResult Create() { ViewData["Title"] = $"Create mailbox"; MailboxViewModel mailbox = new MailboxViewModel { MailRetention = 30 }; return(View(mailbox)); }
// GET: Threads/Create public IActionResult Send() { var viewModel = new MailboxViewModel(); var testList = _context.RunGreenLakeUsers .Select(p => new { p.LinkID, p.FirstName, p.LastName }) .ToList(); viewModel.ReceiverList = new SelectList(testList, "LinkID", "FirstName"); return(View(viewModel)); }
private MailboxViewModel CreateTestEmails() { MailboxViewModel mailboxViewModel = new MailboxViewModel(); mailboxViewModel.Inbox = new List <EMail>() { new EMail() { From = "Bill Gates", Subject = "Loan question", DateReceived = DateTime.Now.Date.AddDays(-2).AddHours(10).AddMinutes(28).AddSeconds(46) }, new EMail() { From = "Mark Zuckerberg", Subject = "When?", DateReceived = DateTime.Now.Date.AddDays(-1).AddHours(12).AddMinutes(36).AddSeconds(18) }, new EMail() { From = "Steven Spielberg", Subject = "I would like to sign it.", DateReceived = DateTime.Now } }; mailboxViewModel.Sent = new List <EMail>() { new EMail() { From = "Mark Zuckerberg", Subject = "On monday at 11am", DateReceived = DateTime.Now.Date.AddDays(-2).AddHours(8).AddMinutes(35).AddSeconds(18) }, new EMail() { From = "Steven Spielberg", Subject = "Contract", DateReceived = DateTime.Now.Date.AddDays(-1).AddHours(6).AddMinutes(54).AddSeconds(22) }, new EMail() { From = "Bill Gates", Subject = "Loan answer.", DateReceived = DateTime.Now.Date.AddHours(-1).AddMinutes(2).AddSeconds(37) } }; mailboxViewModel.Draft = new List <EMail>() { new EMail() { From = "John Smith", Subject = "Draft", DateReceived = DateTime.Now.Date.AddDays(-2).AddHours(10).AddMinutes(32).AddSeconds(23) }, new EMail() { From = "Tom Johanson", Subject = "Draft", DateReceived = DateTime.Now.Date.AddDays(-1).AddHours(13).AddMinutes(13).AddSeconds(41) }, new EMail() { From = "Justin McGreg", Subject = "Draft", DateReceived = DateTime.Now.Date.AddDays(-1).AddHours(16).AddMinutes(19).AddSeconds(50) } }; return(mailboxViewModel); }
public ActionResult Create([Bind("Name, SmtpPort, SmtpHost, ImapEnabled, ImapSSLEnabled, ImapHost, ImapPort, ImapUsername, ImapPassword, Passthrough, MailRetention")] MailboxViewModel mailbox) { if (ModelState.IsValid) { mailbox.MailboxId = Guid.NewGuid(); mailbox.Username = Guid.NewGuid().ToString().Replace("-", string.Empty); mailbox.Password = Guid.NewGuid().ToString().Replace("-", string.Empty); this.mailboxRepository.Create(this.MapMailboxViewModelToMailbox(mailbox)); return(RedirectToAction(nameof(Index))); } return(View(mailbox)); }
public async Task <IActionResult> Reply([Bind("MsgID", "Header", "Body")] MailboxViewModel sendReply) { if (ModelState.IsValid) { //get thread ID var currid = GetUserID(); var thread = _context.Conversations .Where(m => m.MessageID == sendReply.MsgID) .Select(p => p.ThreadID) .FirstOrDefault(); var addMessage = new Message(); addMessage.MsgHeader = sendReply.Header; addMessage.MsgBody = sendReply.Body; addMessage.MsgSenderID = currid; _context.Add(addMessage); await _context.SaveChangesAsync(); var addConversation = new Conversation(); addConversation.MessageID = addMessage.MessageID; addConversation.ThreadID = thread; _context.Add(addConversation); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Mail))); } else { sendReply.MessageReplyingTo = _context.Messages .Where(m => m.MessageID == sendReply.MsgID) .Single(); sendReply.ReceiverProfile = _context.Profiles .Where(p => p.ProfileID == sendReply.MessageReplyingTo.MsgSenderID) .Single(); sendReply.ReceiverUser = _context.RunGreenLakeUsers .Where(u => u.LinkID == sendReply.ReceiverProfile.LinkID) .Single(); return(View(sendReply)); } }
public ActionResult Index() { var vm = new MailboxViewModel(); vm.Notes = this.Context.Notes .Where(x => x.UserId == this.UserContext.Id) .Where(x => x.IsActive.Equals(true)) .OrderByDescending(x => x.Sent) .Select(x => new NoteSkinny { IsRead = x.IsRead, NoteId = x.NoteId, Sent = x.Sent, Body = x.Body, Title = x.Title, }) .ToList(); return(View(vm)); }
public ActionResult Edit(Guid id, [Bind("MailboxId, Name, SmtpPort, SmtpHost, ImapEnabled, ImapSSLEnabled, ImapHost, ImapPort, ImapUsername, ImapPassword, Origin, Passthrough, MailRetention")] MailboxViewModel mailbox) { if (Guid.Empty == id) { return(this.BadRequest()); } if (id != mailbox.MailboxId) { return(this.NotFound()); } if (ModelState.IsValid) { this.mailboxRepository.Update(this.MapMailboxViewModelToMailbox(mailbox)); return(RedirectToAction(mailbox.Origin, new { Id = mailbox.MailboxId })); } return(View(mailbox)); }
// GET: Threads public async Task <IActionResult> Index(int?retrieveThreadID) { var viewModel = new MailboxViewModel(); viewModel.Threads = await _context.Threads .Include(c => c.Conversations) .ThenInclude(m => m.Message) .ToListAsync(); if (retrieveThreadID != null) { Thread thread = viewModel.Threads .Where(t => t.ThreadID == retrieveThreadID) .Single(); viewModel.Messages = thread.Conversations.Select(c => c.Message); } return(View(viewModel)); //return View(await _context.Threads.ToListAsync()); }
private Mailbox MapMailboxViewModelToMailbox(MailboxViewModel mailboxViewModel) { if (mailboxViewModel == null) { return(new Mailbox()); } return(new Mailbox { MailboxId = mailboxViewModel.MailboxId, Name = mailboxViewModel.Name, Username = mailboxViewModel.Username, Password = mailboxViewModel.Password, ImapEnabled = mailboxViewModel.ImapEnabled, ImapHost = mailboxViewModel.ImapHost, ImapPort = mailboxViewModel.ImapPort.HasValue ? mailboxViewModel.ImapPort.Value : 0, ImapSSLEnabled = mailboxViewModel.ImapSSLEnabled, ImapUsername = mailboxViewModel.ImapUsername, ImapPassword = mailboxViewModel.ImapPassword, Passthrough = mailboxViewModel.Passthrough, MailRetention = mailboxViewModel.MailRetention }); }
public IActionResult Reply(int?msgid) { if (msgid == null) { return(RedirectToAction(nameof(Mail))); } else { var replyView = new MailboxViewModel(); replyView.MessageReplyingTo = _context.Messages .Where(m => m.MessageID == msgid) .Single(); replyView.ReceiverProfile = _context.Profiles .Where(p => p.ProfileID == replyView.MessageReplyingTo.MsgSenderID) .Single(); replyView.ReceiverUser = _context.RunGreenLakeUsers .Where(u => u.LinkID == replyView.ReceiverProfile.LinkID) .Single(); return(View(replyView)); } }