public void Add(CommentServiceDto commentDto) { if(commentDto == null) throw new ArgumentNullException("commentDto"); // Necessito de ser membro Member dbMember = GetDbMember(); // // Os membros podem inserir comentarios nos issues cujo o projecto associado // ao issue pertenca a lista de projectos do membro // Obter lista de ids de projectos do membro var myProjectsIds = _db.Query<Member>() .GetProjectsIdsWhereIamResponsableOrWork(dbMember.UserID); // Obter issue Issue dbIssue = _db.Query<Issue>().GetByIdIncludeAll(commentDto.IssueID); if(!myProjectsIds.Any(pid => pid == dbIssue.Project.ProjectID)) throw new HijackedException("You are not assigned to the project that has this issue"); // Insere no repositorio _db.Insert(commentDto.CopyToDomainObject(dbMember, dbIssue)); // Gravar persistente _db.SaveToDisk(); }
public void Add(CommentServiceDto commentDto) { if (commentDto == null) throw new ArgumentNullException("commentDto"); Client dbClient = GetDbClient(); // // Os clientes podem inserir comentarios nos issues cujo o projecto associado // ao issue pertenca a lista de projectos do cliente // Obter lista de ids de projectos associados ao cliente var myProjectsIds = _db.Query<Client>().GetMyProjectsIds(dbClient.UserID); // Obter issue Issue dbIssue = _db.Query<Issue>().GetByIdIncludeAll(commentDto.IssueID); if (!myProjectsIds.Any(pid => pid == dbIssue.Project.ProjectID)) throw new HijackedException("You are not assigned to the project that has this issue"); // Insere no repositorio _db.Insert(commentDto.CopyToDomainObject(dbClient, dbIssue)); // Gravar persistente _db.SaveToDisk(); }
public void Add(CommentServiceDto commentDto) { if(commentDto == null) throw new ArgumentNullException("commentDto"); // Verificar se sou admin Member dbAdmin = GetDbAdmin(); // // Os admins podem inserir comentários nos issues de qualquer projecto Issue dbIssue = _db.Query<Issue>().GetByIdIncludeAll(commentDto.IssueID); // Insere no repositorio _db.Insert(commentDto.CopyToDomainObject(dbAdmin, dbIssue)); // Gravar persistente _db.SaveToDisk(); }