示例#1
0
        // Issue Related Functions //
        public List <IssueGetResponse> GetIssues(IssueGetFilters Filters)
        {
            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();

                var issueDictionary = new Dictionary <int, IssueGetResponse>();

                return(connection
                       .Query <IssueGetResponse, NoteGetResponse, IssueGetResponse>(
                           "EXEC [dbo].[SP_Get_Issues_Filtered] @Id = @Id, @Subject = @Subject, @Priority = @Priority, @Category = @Category, @Department = @Department, @Status = @Status, @Author = @Author, @Assignee = @Assignee",
                           map: (I, N) =>
                {
                    IssueGetResponse issue;

                    if (!issueDictionary.TryGetValue(I.Id, out issue))
                    {
                        issue = I;
                        issue.Notes =
                            new List <NoteGetResponse>();
                        issueDictionary.Add(issue.Id, issue);
                    }

                    issue.Notes.Add(N);
                    return issue;
                },
                           param: new { Id = Filters.Id, Subject = Filters.Subject, Priority = Filters.Priority, Category = Filters.Category, Department = Filters.Department, Status = Filters.Status, Author = Filters.Author, Assignee = Filters.Assignee },
                           splitOn: "Id")
                       .Distinct()
                       .ToList());
            }
        }
        public IActionResult GetIssues([FromQuery] IssueGetFilters Filters)
        {
            if (_userManager.CurrentUser == null)
            {
                return(Unauthorized());
            }

            Filters.Author = _userManager.CurrentUser.UUID;
            List <IssueGetResponse> Data = _dataRepository.GetIssues(Filters);

            return(Ok(Data));
        }