Пример #1
0
        public async Task <IActionResult> DeleteUserAsync([FromRoute] int id)
        {
            try
            {
                var user = await _userService.GetUserAsync(id);

                if (!CorrectUserOrAdmin(user.Id, GetIdOfLoggedInUser(HttpContext), GetUsertypeOfLoggedInUser(HttpContext)))
                {
                    return(BadRequest("Administrator or account owner only!"));
                }

                await _deletionService.DeleteUserAsync(id);

                if (!AdminChecker(GetUsertypeOfLoggedInUser(HttpContext)))
                {
                    await HttpContext.SignOutAsync();
                }

                return(NoContent());
            }
            catch (Exception ex)
            {
                if (ex.GetType().IsAssignableFrom(typeof(NotFoundException)))
                {
                    return(NotFound(ex.Message));
                }
                else
                {
                    return(BadRequest(ex.Message));
                }
            }
        }