public async Task <IActionResult> PutKitchen(long id, Kitchen kitchen) { PantryPlannerUser user = null; try { user = await _userManager.GetUserFromCookieOrJwtAsync(this.User); } catch (PermissionsException e) { // this will be thrown if the user is null return(Unauthorized(e.Message)); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } try { if (id != kitchen.KitchenId) { return(BadRequest()); } await _service.UpdateKitchenAsync(kitchen, user); } catch (ArgumentNullException e) { return(BadRequest(e.Message)); } catch (PermissionsException e) { return(Unauthorized(e.Message)); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } return(NoContent()); }