コード例 #1
0
        public IActionResult ApproveEditRequest(int editRequestId, bool isRedirectToMaterial)
        {
            var loggedModerator = _userService.FindByIdentityUserId(User.FindFirstValue(ClaimTypes.NameIdentifier));

            var editRequest = _materialsService.GetEditRequest(editRequestId);

            if (editRequest == null)
            {
                return(RedirectToAction("ResourceNotFound", "Error", new { error = "sugestia edycji o podanym Id nie istnieje." }));
            }

            try
            {
                int materialToUpdateId = editRequest.MaterialToUpdateId;
                _materialsService.ApproveEditRequest(editRequest);
                _filesManagement.ReplaceMaterialFilesWithEditRequestFiles(materialToUpdateId, editRequest.EditRequestId, editRequest.Files);
            }
            catch (ArgumentException)
            {
                return(RedirectToAction("ResourceNotFound", "Error", new { error = "sugestia edycji o podanym Id nie istnieje." }));
            }
            catch (Exception)
            {
                _filesManagement.RemoveFilesFromFileSystem(editRequest.Files);
                return(BadRequest("Coś poszło nie tak podczas zapisywania plików. Spróbuj ponownie."));
            }

            if (isRedirectToMaterial)
            {
                return(RedirectToAction("Material", "Materials", new { area = "Main", materialId = editRequest.MaterialToUpdateId }));
            }

            return(RedirectToAction("EditSuggestions"));
        }