Exemplo n.º 1
0
        public async Task <ActionResult> Unban([FromBody] UnbanViewModel model)
        {
            var ajaxReturn = new AjaxFeedbackViewModel();

            try
            {
                var dto = Mapper <UnbanViewModel, UnbanDTO>(model);
                dto.AccountWhoRequested = User.Identity.Name;

                await _banService.UnbanAccount(dto);
            }
            catch (InvalidIdException)
            {
                // Id of an account that does not exist.
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["InvalidAttempt"];

                return(Json(ajaxReturn));
            }
            catch (NoAuthorizationException)
            {
                // Game Master trying to cheat
                LogUnauthorizedAccess(User.Identity.Name, "Admin/Account/Unban:Post");
                return(RedirectToAction("List"));
            }
            catch (AccountIsNotBannedException)
            {
                // Trying to unban a unbanned account
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["AccountIsAlreadyUnbanned"];

                return(Json(ajaxReturn));
            }
            catch (Exception ex)
            {
                // Unknow error
                LogError(ex, "Error on Admin/Account/Unban");

                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["UnknowError"];
                return(Json(ajaxReturn));
            }

            // Success
            ajaxReturn.Title   = _localizer["Success"];
            ajaxReturn.Message = _localizer["UnbannedSuccefully"];
            return(Json(ajaxReturn));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Delete([FromBody] int id)
        {
            var ajaxReturn = new AjaxFeedbackViewModel();

            try
            {
                await _accountService.DeleteAccount(id, User.Identity.Name);
            }
            catch (InvalidIdException)
            {
                // Id of an account that does not exist.
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["InvalidAttempt"];

                return(Json(ajaxReturn));
            }
            catch (NoAuthorizationException)
            {
                // Game Master trying to cheat
                LogUnauthorizedAccess(User.Identity.Name, "Admin/Account/Delete:Post");
                return(RedirectToAction("List"));
            }
            catch (Exception ex)
            {
                // Unknow error
                LogError(ex, "Error on Admin/Account/Delete");

                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["UnknowError"];
                return(Json(ajaxReturn));
            }

            // Success
            ajaxReturn.Title   = _localizer["Success"];
            ajaxReturn.Message = _localizer["AccountDeletedSuccefully"];
            return(Json(ajaxReturn));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Ban([FromBody] BanViewModel model)
        {
            var ajaxReturn = new AjaxFeedbackViewModel();

            try
            {
                var dto = Mapper <BanViewModel, BanDTO>(model);
                dto.AdminAccount = User.Identity.Name;
                dto.ExpiresAt    = Convert.ToDateTime(model.Date, CultureInfo.CurrentCulture.DateTimeFormat);

                await _banService.BanAccount(dto);
            }
            catch (InvalidIdException)
            {
                // Id of an account that does not exist.
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["InvalidAttempt"];

                return(Json(ajaxReturn));
            }
            catch (NoAuthorizationException)
            {
                // Game Master trying to cheat
                LogUnauthorizedAccess(User.Identity.Name, "Admin/Account/Ban:Post");
                return(RedirectToAction("List"));
            }
            catch (InvalidAdminAccountException)
            {
                // Invalid logged-in admin account.
                // I don't think is possible throw this error by this controller
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["InvalidAttempt2"];

                return(Json(ajaxReturn));
            }
            catch (RequiredAdminCharacterException)
            {
                // Need a god character or game master character to do it.
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["YouNeedAGodCharacter"];

                return(Json(ajaxReturn));
            }
            catch (AccountAlreadyBannedException)
            {
                // Can not ban, because the target account is already banned.
                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["AlreadyBanned"];

                return(Json(ajaxReturn));
            }
            catch (Exception ex)
            {
                // Unknow error
                LogError(ex, "Error on Admin/Account/Ban");

                ajaxReturn.Title   = _localizer["Error"];
                ajaxReturn.Message = _localizer["UnknowError"];
                return(Json(ajaxReturn));
            }

            // Success
            ajaxReturn.Title   = _localizer["Success"];
            ajaxReturn.Message = _localizer["BannedSuccefully"];
            return(Json(ajaxReturn));
        }