Exemple #1
0
        /// <summary>
        /// Gets the issues.
        /// </summary>
        /// <param name="projectId">The project id.</param>
        /// <param name="status">The status.</param>
        /// <returns>A list of issues.</returns>
        public IList<IssueDetails> GetIssues(int? projectId
            , Model.Status status)
        {
            var databaseIssues = DB.Issues.Select(i => i);

            // Filters on status:
            if (status != Model.Status.Any)
            {
                databaseIssues = databaseIssues
                    .Where(i => i.RefStatusId == (int)status);
            }

            // Filters on project:
            if (projectId.HasValue)
            {
                databaseIssues = databaseIssues
                    .Where(i => i.RefProjectId == projectId.Value);
            }

            // Ordering:
            databaseIssues = databaseIssues.OrderByDescending(i => i.CreatedDate)
                .OrderBy(i => i.Priority);

            return databaseIssues
                .Select(i => GetIssueDetailsFromDbIssue(i))
                .ToList();
        }
Exemple #2
0
 /// <summary>
 /// Gets the issue view.
 /// </summary>
 /// <param name="issueId">The issue id.</param>
 /// <param name="taskStatus">The task status.</param>
 /// <returns>An issue view.</returns>
 public IssueView GetIssueView(int issueId
     , Model.Status taskStatus)
 {
     TaskRepository taskRepo = new TaskRepository();
     return new IssueView
         (GetIssueDetails(issueId)
         , taskRepo.GetTasks(issueId, taskStatus).ToList());
 }
Exemple #3
0
        /// <summary>
        /// Updates the issue.
        /// </summary>
        /// <param name="issue">The issue.</param>
        public void UpdateIssue(Model.Issue issue)
        {
            if (!issue.IssueId.HasValue)
            {
                throw new RepositoryException("Invalid issue");
            }

            var databaseIssue = DB.Issues
                .Where(i => i.IssueId == issue.IssueId.Value)
                .SingleOrDefault();
            databaseIssue.Priority = issue.Priority;
            databaseIssue.RefStatusId = (int)issue.Status;
            databaseIssue.Title = issue.Title;
            this.SubmitChanges();
        }
Exemple #4
0
        private static Issue GetDbIssueFromModelIssue(Model.Issue issue)
        {
            var databaseIssue = new Issue
            {
                CreatedDate = issue.CreatedDate,
                Priority = issue.Priority,
                RefProjectId = issue.RefProjectId,
                RefStatusId = (int)issue.Status,
                Title = issue.Title,
            };
            if (issue.IssueId.HasValue)
            {
                databaseIssue.IssueId = issue.IssueId.Value;
            }

            return databaseIssue;
        }
Exemple #5
0
        /// <summary>
        /// Inserts the issue.
        /// </summary>
        /// <param name="issue">The issue.</param>
        /// <exception cref="RepositoryException">The repository exception.</exception>
        public void InsertIssue(Model.Issue issue)
        {
            if (string.IsNullOrEmpty(issue.Title))
            {
                throw new RepositoryException("Issue must have a title.");
            }

            if (issue.RefProjectId <= 0)
            {
                throw new RepositoryException("Project Id must be larger than zero.");
            }

            IProjectRepository projRepo = new ProjectRepository();
            if (!projRepo.GetProjects(new Paging())
                .Any(p => p.ProjectId == issue.RefProjectId))
            {
                throw new RepositoryException
                    ("Project does not exist.");
            }

            // Saves the changes:
            try
            {
                Issue databaseIssue = GetDbIssueFromModelIssue(issue);
                DB.Issues.InsertOnSubmit(databaseIssue);
                this.SubmitChanges();

                // Reads auto-generated id from the database:
                issue.IssueId = databaseIssue.IssueId;
            }
            catch (Exception ex)
            {
                throw new RepositoryException(ex);
            }
        }