Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }