Exemple #1
0
        // 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);
        }