mirror of
https://github.com/rjNemo/ticket_manager
synced 2026-06-12 03:36:39 +00:00
-
This commit is contained in:
parent
1856c60bca
commit
d30bd3295a
8 changed files with 14 additions and 210 deletions
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -1,14 +1,14 @@
|
||||||
bin/
|
|
||||||
obj/
|
|
||||||
.vs/
|
.vs/
|
||||||
.vscode/
|
.vscode/
|
||||||
Migrations/
|
|
||||||
app.db*
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
app.db
|
bin/
|
||||||
|
obj/
|
||||||
|
app.db*
|
||||||
Data/Interfaces
|
Data/Interfaces
|
||||||
Data/UnitOfWork.cs
|
Data/UnitOfWork.cs
|
||||||
Data/*Repository.cs
|
Data/*Repository.cs
|
||||||
|
Migrations/
|
||||||
|
Properties/
|
||||||
|
|
||||||
# client
|
# client
|
||||||
client/src/pages/TestPage.tsx
|
client/src/pages/TestPage.tsx
|
||||||
|
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
using System.Threading.Tasks;
|
|
||||||
using TicketManager.Models;
|
|
||||||
using System.Linq;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace TicketManager.Data
|
|
||||||
{
|
|
||||||
public class ProjectRepository : GenericRepository<Project>, IProjectRepository
|
|
||||||
{
|
|
||||||
private readonly IQueryable<Project> _query;
|
|
||||||
public ProjectRepository(AppDbContext context) : base(context)
|
|
||||||
{
|
|
||||||
_query = _dbSet
|
|
||||||
.Include(p => p.Assignments).ThenInclude(a => a.User)
|
|
||||||
.Include(p => p.Tickets)
|
|
||||||
.Include(p => p.Manager)
|
|
||||||
.Include(p => p.Files)
|
|
||||||
// .AsNoTracking()
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override async Task<Project> Get(int id)
|
|
||||||
{
|
|
||||||
return await _query.FirstOrDefaultAsync(p => p.Id == id);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override async Task<IEnumerable<Project>> List()
|
|
||||||
{
|
|
||||||
return await _query.ToListAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Exists(int id)
|
|
||||||
{
|
|
||||||
return _dbSet.Any(e => e.Id == id);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IEnumerable<AppUser>> GetMembers(int id)
|
|
||||||
{
|
|
||||||
Project project = await Get(id);
|
|
||||||
return project.GetMembers();
|
|
||||||
}
|
|
||||||
public async Task SetMembers(int id, List<AppUser> usersToAdd)
|
|
||||||
{
|
|
||||||
Project project = await Get(id);
|
|
||||||
project.SetMembers(usersToAdd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using TicketManager.Models;
|
|
||||||
|
|
||||||
namespace TicketManager.DTO
|
|
||||||
{
|
|
||||||
public class AppUserDTO
|
|
||||||
{
|
|
||||||
public AppUserDTO(AppUser user)
|
|
||||||
{
|
|
||||||
Id = user.Id;
|
|
||||||
FirstName = user.FirstName;
|
|
||||||
LastName = user.LastName;
|
|
||||||
Presentation = user.Presentation;
|
|
||||||
Email = user.Email;
|
|
||||||
Phone = user.Phone;
|
|
||||||
Created_at = user.Created_at;
|
|
||||||
Picture = user.Picture;
|
|
||||||
Activities = user.Activities;
|
|
||||||
Projects = user.GetProjects();
|
|
||||||
Tickets = user.GetTickets();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
|
|
||||||
public string FirstName { get; set; }
|
|
||||||
|
|
||||||
public string LastName { get; set; }
|
|
||||||
|
|
||||||
public string FullName => $"{FirstName} {LastName}";
|
|
||||||
|
|
||||||
public string Presentation { get; set; }
|
|
||||||
|
|
||||||
[DataType(DataType.EmailAddress)]
|
|
||||||
public string Email { get; set; }
|
|
||||||
|
|
||||||
[DataType(DataType.PhoneNumber)]
|
|
||||||
public string Phone { get; set; }
|
|
||||||
|
|
||||||
[DataType(DataType.Date)]
|
|
||||||
public DateTime Created_at { get; private set; } = DateTime.Now;
|
|
||||||
|
|
||||||
public string Picture { get; set; }
|
|
||||||
|
|
||||||
public List<Activity> Activities { get; set; } = new List<Activity>();
|
|
||||||
|
|
||||||
public List<Project> Projects { get; set; } = new List<Project>();
|
|
||||||
|
|
||||||
public List<Ticket> Tickets { get; set; } = new List<Ticket>();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using TicketManager.Models;
|
|
||||||
|
|
||||||
namespace TicketManager.DTO
|
|
||||||
{
|
|
||||||
public class ProjectDTO
|
|
||||||
{
|
|
||||||
public ProjectDTO(Project project)
|
|
||||||
{
|
|
||||||
Id = project.Id;
|
|
||||||
Title = project.Title;
|
|
||||||
Description = project.Description;
|
|
||||||
CreatedAt = project.CreatedAt;
|
|
||||||
Progression = project.Progression;
|
|
||||||
Status = project.Status.ToString();
|
|
||||||
Manager = project.Manager;
|
|
||||||
Users = project.GetMembers();
|
|
||||||
Tickets = project.Tickets;
|
|
||||||
Activities = project.Activities;
|
|
||||||
Files = project.Files;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Title { get; set; }
|
|
||||||
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
public DateTime CreatedAt { get; private set; } = DateTime.Now;
|
|
||||||
|
|
||||||
public DateTime PlannedEnding { get; set; }
|
|
||||||
|
|
||||||
public decimal Progression { get; set; }
|
|
||||||
|
|
||||||
public string Status { get; set; }
|
|
||||||
|
|
||||||
public AppUser Manager { get; set; }
|
|
||||||
public List<AppUser> Users { get; set; } = new List<AppUser>();
|
|
||||||
|
|
||||||
public List<Ticket> Tickets { get; set; } = new List<Ticket>();
|
|
||||||
|
|
||||||
public List<Activity> Activities { get; set; } = new List<Activity>();
|
|
||||||
|
|
||||||
public List<File> Files { get; set; } = new List<File>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using TicketManager.Models;
|
|
||||||
|
|
||||||
namespace TicketManager.DTO
|
|
||||||
{
|
|
||||||
public class TicketDTO
|
|
||||||
{
|
|
||||||
public TicketDTO(Ticket ticket)
|
|
||||||
{
|
|
||||||
Id = ticket.Id;
|
|
||||||
Title = ticket.Title;
|
|
||||||
Description = ticket.Description;
|
|
||||||
CreatedAt = ticket.CreatedAt;
|
|
||||||
PlannedEnding = ticket.PlannedEnding;
|
|
||||||
Status = ticket.Status.ToString();
|
|
||||||
Impact = ticket.Impact.ToString();
|
|
||||||
Difficulty = ticket.Difficulty.ToString();
|
|
||||||
Category = ticket.Category.ToString();
|
|
||||||
CreatorId = ticket.CreatorId;
|
|
||||||
Project = ticket.Project;
|
|
||||||
Notes = ticket.Notes;
|
|
||||||
Activities = ticket.Activities;
|
|
||||||
Files = ticket.Files;
|
|
||||||
Users = ticket.GetAssignees();
|
|
||||||
}
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public string Title { get; set; }
|
|
||||||
|
|
||||||
public string Description { get; set; }
|
|
||||||
|
|
||||||
[DataType(DataType.Date)]
|
|
||||||
public DateTime CreatedAt { get; private set; }
|
|
||||||
|
|
||||||
[DataType(DataType.Date)]
|
|
||||||
public DateTime PlannedEnding { get; set; }
|
|
||||||
|
|
||||||
public string Status { get; set; }
|
|
||||||
public string Impact { get; set; }
|
|
||||||
public string Difficulty { get; set; }
|
|
||||||
public string Category { get; set; }
|
|
||||||
public Guid CreatorId { get; set; }
|
|
||||||
public Project Project { get; set; }
|
|
||||||
public List<Note> Notes { get; set; } = new List<Note>();
|
|
||||||
public List<Activity> Activities { get; set; } = new List<Activity>();
|
|
||||||
public List<File> Files { get; set; } = new List<File>();
|
|
||||||
public List<AppUser> Users { get; set; } = new List<AppUser>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
"TicketManager": {
|
"TicketManager": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"launchUrl": "weatherforecast",
|
"launchUrl": "/",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ namespace TicketManager
|
||||||
options.EnableSensitiveDataLogging(true); //Remove in production.
|
options.EnableSensitiveDataLogging(true); //Remove in production.
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
services.AddScoped<IProjectRepository, ProjectRepository>();
|
// services.AddScoped<IProjectRepository, ProjectRepository>();
|
||||||
services.AddScoped<IAppUserRepository, AppUserRepository>();
|
// services.AddScoped<IAppUserRepository, AppUserRepository>();
|
||||||
services.AddScoped<ITicketRepository, TicketRepository>();
|
// services.AddScoped<ITicketRepository, TicketRepository>();
|
||||||
|
|
||||||
services.AddAuthentication(options =>
|
services.AddAuthentication(options =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup >
|
<PropertyGroup>
|
||||||
<LangVersion>8.0</LangVersion>
|
<LangVersion>8.0</LangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
@ -30,6 +30,10 @@
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="5.0.0" />
|
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="5.0.0" />
|
||||||
<PackageReference Include="Xunit" Version="2.4.1" />
|
<PackageReference Include="Xunit" Version="2.4.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="client\" />
|
<Folder Include="client\" />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue