Skip to content

Commit 5431406

Browse files
authored
Merge pull request #65 from gitcomteam/feature/60-submit-project-anonymously
submit new project anonymously
2 parents eb846d9 + f6342ac commit 5431406

File tree

4 files changed

+52
-1
lines changed

4 files changed

+52
-1
lines changed

App/DL/Model/Card/Card.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Linq;
33
using App.DL.Model.Work;
4+
using App.DL.Repository.Project;
45
using Dapper;
56
using UserModel = App.DL.Model.User.User;
67
using BoardColumnModel = App.DL.Model.BoardColumn.BoardColumn;
@@ -79,7 +80,16 @@ public Card Save() {
7980

8081
public Board.Board Board() => Column().Board();
8182

82-
public Project.Project Project() => Board().Project();
83+
public Project.Project Project() {
84+
var projectId = ExecuteScalarInt(@"SELECT projects.id
85+
FROM cards
86+
LEFT JOIN board_columns ON cards.column_id = board_columns.id
87+
LEFT JOIN boards ON board_columns.board_id = boards.id
88+
LEFT JOIN projects ON boards.project_id = projects.id
89+
WHERE cards.id = @id LIMIT 1;
90+
", new {id});
91+
return ProjectRepository.Find(projectId);
92+
}
8393

8494
public UserModel Creator() => UserModel.Find(creator_id);
8595

App/DL/Model/Project/Project.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,17 @@ public Board.Board[] Boards(int limit = 10)
120120
new {project_id = id, limit}
121121
).ToArray();
122122

123+
public Card.Card[] Cards()
124+
=> Connection().Query<Card.Card>(
125+
@"SELECT cards.*
126+
FROM projects
127+
LEFT JOIN boards ON projects.id = boards.project_id
128+
LEFT JOIN board_columns ON boards.id = board_columns.board_id
129+
LEFT JOIN cards on board_columns.id = cards.column_id
130+
WHERE projects.id = @project_id AND cards.id IS NOT NULL
131+
GROUP BY cards.id;", new {project_id = id}
132+
).ToArray();
133+
123134
public ProjectWorkType[] WorkTypes(int limit = 10)
124135
=> Connection().Query<ProjectWorkType>(
125136
@"SELECT * FROM project_work_types WHERE project_id = @project_id LIMIT @limit",
@@ -135,6 +146,12 @@ public bool InLibrary(UserModel user)
135146
, new {project_id = id, user_id = user.id}
136147
) > 0;
137148

149+
public static Project[] Paginate(int page, int size = 20)
150+
=> Connection().Query<Project>(
151+
"SELECT * FROM projects OFFSET @offset LIMIT @size",
152+
new {offset = ((page - 1) * size), size}
153+
).ToArray();
154+
138155
public int StarsCount() => ExecuteScalarInt(
139156
"SELECT COUNT(*) FROM user_projects_library WHERE project_id = @id", new {id}
140157
);

Tests/App/DL/Model/Card/CardTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,12 @@ public void Create_Card()
2323
Assert.AreEqual(card.name, name);
2424
Assert.AreEqual(card.column_id, column.id);
2525
}
26+
27+
[Test]
28+
public void Project_Ok() {
29+
var card = CardFaker.Create();
30+
31+
Assert.NotNull(card.Project());
32+
}
2633
}
2734
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Linq;
2+
using NUnit.Framework;
3+
using Tests.Testing;
4+
using Tests.Utils.Fake.Card;
5+
6+
namespace Tests.App.DL.Model.Project {
7+
public class ProjectTests : BaseTestFixture {
8+
[Test]
9+
public void Cards_Ok() {
10+
var card = CardFaker.Create();
11+
var project = card.Project();
12+
13+
var foundCard = project.Cards().Where(c => c.id == card.id).ToArray()[0];
14+
Assert.AreEqual(card.id, foundCard.id);
15+
}
16+
}
17+
}

0 commit comments

Comments
 (0)