// 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 bool EditRequest(string username, string commandText, bool isMod, out string songRequestText, out bool syntaxError) { if (string.IsNullOrWhiteSpace(commandText)) { songRequestText = string.Empty; syntaxError = true; return(false); } var commandTextTerms = commandText.Trim().Split(" "); SongRequestType editRequestType; EditRequestResult result; // If the command text doesn't parse, we should attempt to edit a regular request if (!int.TryParse(commandTextTerms[0].Trim(), out var playlistIndex)) { songRequestText = commandText; // edit regular request if it exists if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.Regular) == 1) { editRequestType = SongRequestType.Regular; } // if true return, otherwise attempt to edit and refund a single vip else if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.Vip) == 1) { editRequestType = SongRequestType.Vip; } else if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.SuperVip) == 1) { editRequestType = SongRequestType.SuperVip; } else { songRequestText = string.Empty; syntaxError = true; return(false); } var formattedRequest = FormattedRequest.GetFormattedRequest(songRequestText); var songRequestId = _getSingleSongRequestIdRepository.Get(username, editRequestType); var editRequestModel = new EditWebRequestRequestModel { SongRequestId = songRequestId, Title = formattedRequest?.SongName ?? songRequestText, Artist = formattedRequest?.SongArtist ?? string.Empty, SelectedInstrument = formattedRequest?.InstrumentName ?? string.Empty, IsVip = editRequestType == SongRequestType.Vip, IsSuperVip = editRequestType == SongRequestType.SuperVip, Username = username, IsMod = isMod }; result = EditWebRequest(editRequestModel); } else { songRequestText = string.Join(' ', commandTextTerms); // Edit request at position playlistIndex var songRequest = _getUsersRequestAtPlaylistIndexQuery.Get(username, playlistIndex, _currentRequest.isSuperVip || _currentRequest.isVip); if (songRequest == null) { syntaxError = true; songRequestText = string.Empty; return(false); } var formattedRequest = FormattedRequest.GetFormattedRequest(commandText); var editRequestModel = new EditWebRequestRequestModel { SongRequestId = songRequest.SongRequestId, Title = formattedRequest?.SongName ?? songRequestText, Artist = formattedRequest?.SongArtist ?? string.Empty, SelectedInstrument = formattedRequest?.InstrumentName ?? string.Empty, IsVip = songRequest.IsVip, IsSuperVip = songRequest.IsSuperVip, Username = username, IsMod = isMod }; result = EditWebRequest(editRequestModel); } switch (result) { case EditRequestResult.NoRequestEntered: case EditRequestResult.NotYourRequest: case EditRequestResult.RequestAlreadyRemoved: syntaxError = true; break; default: syntaxError = false; break; } return(result == EditRequestResult.Success); }