示例#1
0
        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);
            }
        }
示例#2
0
 public void AddRemovedNode(RemovedNode node)
 {
     _dataDbContext.RemovedNodes.Add(node);
 }