public async Task <ServiceState> RemoveFileAsync(Guid fileUniqId, string callerEmail) { try { var owner = await _unitOfWork.UserRepository.GetUserAsync(callerEmail); var fileNode = await _unitOfWork.NodeRepository.GetNodeByIdAsync(fileUniqId); // Validate if user have access to file and can edit it if (!ValidateAccessToFile(State, fileNode, owner)) { return(null); } fileNode.IsDeleted = true; var deletedNode = new RemovedNode() { Node = fileNode, RemovedOn = DateTime.Now, // Set full remove via one month DateOfRemoval = DateTime.Now.AddMonths(1), ExecutorUser = owner }; _unitOfWork.RemovedNodeRepository.AddRemovedNode(deletedNode); await _unitOfWork.CommitAsync(); return(State); } catch (Exception ex) { State.ErrorMessage = ex.Message; State.TypeOfError = TypeOfServiceError.ServiceError; return(null); } }
public void AddRemovedNode(RemovedNode node) { _dataDbContext.RemovedNodes.Add(node); }