poss-to-add-students-and-add-service-provider
This commit is contained in:
parent
77051bcf84
commit
189d95daa6
@ -1,4 +1,6 @@
|
|||||||
using domain.Service;
|
using domain.Request;
|
||||||
|
using domain.Service;
|
||||||
|
using domain.UseCase;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -9,8 +11,8 @@ namespace console_ui
|
|||||||
{
|
{
|
||||||
class GroupUI
|
class GroupUI
|
||||||
{
|
{
|
||||||
private readonly GroupService _groupService;
|
private readonly IGroupUseCase _groupService;
|
||||||
public GroupUI(GroupService groupService)
|
public GroupUI(IGroupUseCase groupService)
|
||||||
{
|
{
|
||||||
_groupService = groupService;
|
_groupService = groupService;
|
||||||
}
|
}
|
||||||
@ -20,5 +22,24 @@ namespace console_ui
|
|||||||
Console.WriteLine("Enter group name: ");
|
Console.WriteLine("Enter group name: ");
|
||||||
_groupService.AddGroup(new domain.Request.AddGroupRequest { Name = Console.ReadLine() });
|
_groupService.AddGroup(new domain.Request.AddGroupRequest { Name = Console.ReadLine() });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddGroupWithStudents()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Enter group name: ");
|
||||||
|
AddGroupRequest addGroupRequest = new AddGroupRequest { Name = Console.ReadLine() };
|
||||||
|
List<AddStudentRequest> addStudentRequests = new List<AddStudentRequest>()
|
||||||
|
{
|
||||||
|
new AddStudentRequest{ StudentName = "StudentName1"},
|
||||||
|
new AddStudentRequest{ StudentName = "StudentName2"},
|
||||||
|
new AddStudentRequest{ StudentName = "StudentName3"},
|
||||||
|
new AddStudentRequest{ StudentName = "StudentName4"},
|
||||||
|
};
|
||||||
|
AddGroupWithStudentsRequest addGroupWithStudents = new AddGroupWithStudentsRequest
|
||||||
|
{
|
||||||
|
addGroupRequest = addGroupRequest,
|
||||||
|
addStudentRequests = addStudentRequests
|
||||||
|
};
|
||||||
|
_groupService.AddGroupWithStudents(addGroupWithStudents);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,23 +3,28 @@ using data;
|
|||||||
using data.DAO;
|
using data.DAO;
|
||||||
using data.Repository;
|
using data.Repository;
|
||||||
using domain.Service;
|
using domain.Service;
|
||||||
|
using domain.UseCase;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
void printAllGroups(IGroupRepository groupRepository)
|
void printAllGroups(IGroupRepository groupRepository)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Groups:");
|
||||||
foreach (var item in groupRepository.getAllGroup())
|
foreach (var item in groupRepository.getAllGroup())
|
||||||
{
|
{
|
||||||
Console.WriteLine(item.Name);
|
Console.WriteLine(item.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoteDatabaseContext remoteDatabaseContext = new RemoteDatabaseContext();
|
IServiceCollection serviceCollection = new ServiceCollection();
|
||||||
SQLGroupRepository groupRepository = new SQLGroupRepository(remoteDatabaseContext);
|
|
||||||
LocalGroupRepository localGroupRepository = new LocalGroupRepository();
|
|
||||||
GroupService groupService = new GroupService(groupRepository);
|
|
||||||
GroupUI group = new GroupUI(groupService);
|
|
||||||
|
|
||||||
group.AddGroup();
|
serviceCollection
|
||||||
|
.AddDbContext<RemoteDatabaseContext>()
|
||||||
|
.AddSingleton<IGroupRepository, SQLGroupRepository>()
|
||||||
|
.AddSingleton<IGroupUseCase, GroupService>()
|
||||||
|
.AddSingleton<GroupUI>();
|
||||||
|
|
||||||
printAllGroups(groupRepository);
|
var serviceProvider = serviceCollection.BuildServiceProvider();
|
||||||
|
var groupUI = serviceProvider.GetService<GroupUI>();
|
||||||
|
groupUI?.AddGroup();
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
@ -7,6 +7,10 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\data\data.csproj" />
|
<ProjectReference Include="..\data\data.csproj" />
|
||||||
<ProjectReference Include="..\domain\domain.csproj" />
|
<ProjectReference Include="..\domain\domain.csproj" />
|
||||||
|
@ -11,5 +11,6 @@ namespace data.Repository
|
|||||||
{
|
{
|
||||||
public IEnumerable<GroupDAO> getAllGroup();
|
public IEnumerable<GroupDAO> getAllGroup();
|
||||||
public bool addGroup(GroupDAO group);
|
public bool addGroup(GroupDAO group);
|
||||||
|
public bool addGroupWithStudents(GroupDAO group, IEnumerable<UserDAO> userDAOs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
using data.DAO;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace data.Repository
|
|
||||||
{
|
|
||||||
public class LocalGroupRepository : IGroupRepository
|
|
||||||
{
|
|
||||||
private IEnumerable<GroupDAO> _groups = new List<GroupDAO>()
|
|
||||||
{
|
|
||||||
new GroupDAO{ Id = 1, Name = "g1" },
|
|
||||||
new GroupDAO{ Id = 2, Name = "g2" },
|
|
||||||
new GroupDAO{ Id = 3, Name = "g3" },
|
|
||||||
new GroupDAO{ Id = 4, Name = "g4" }
|
|
||||||
};
|
|
||||||
public bool addGroup(GroupDAO group)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<GroupDAO> getAllGroup()
|
|
||||||
{
|
|
||||||
return _groups;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -36,5 +36,27 @@ namespace data.Repository
|
|||||||
return new List<GroupDAO>();
|
return new List<GroupDAO>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool addGroupWithStudents(GroupDAO groupDAO, IEnumerable<UserDAO> userDAOs)
|
||||||
|
{
|
||||||
|
using var transaction = dbContext.Database.BeginTransaction();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dbContext.groups.Add(groupDAO);
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
foreach (var item in userDAOs)
|
||||||
|
{
|
||||||
|
item.Group = groupDAO;
|
||||||
|
dbContext.users.Add(item);
|
||||||
|
}
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
transaction.Commit();
|
||||||
|
return true;
|
||||||
|
} catch
|
||||||
|
{
|
||||||
|
transaction.Rollback();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
domain/Request/AddGroupWithStudentsRequest.cs
Normal file
14
domain/Request/AddGroupWithStudentsRequest.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace domain.Request
|
||||||
|
{
|
||||||
|
public class AddGroupWithStudentsRequest
|
||||||
|
{
|
||||||
|
public AddGroupRequest addGroupRequest { get; set; }
|
||||||
|
public IEnumerable<AddStudentRequest> addStudentRequests { get; set; }
|
||||||
|
}
|
||||||
|
}
|
13
domain/Request/AddStudentRequest.cs
Normal file
13
domain/Request/AddStudentRequest.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace domain.Request
|
||||||
|
{
|
||||||
|
public class AddStudentRequest
|
||||||
|
{
|
||||||
|
public string StudentName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using data.Repository;
|
using data.DAO;
|
||||||
|
using data.Repository;
|
||||||
using domain.Request;
|
using domain.Request;
|
||||||
using domain.UseCase;
|
using domain.UseCase;
|
||||||
using System;
|
using System;
|
||||||
@ -20,5 +21,14 @@ namespace domain.Service
|
|||||||
{
|
{
|
||||||
_groupRepository.addGroup(new data.DAO.GroupDAO { Name = addGroupRequest.Name });
|
_groupRepository.addGroup(new data.DAO.GroupDAO { Name = addGroupRequest.Name });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddGroupWithStudents(AddGroupWithStudentsRequest addGroupWithStudents)
|
||||||
|
{
|
||||||
|
GroupDAO groupDAO = new GroupDAO() { Name = addGroupWithStudents.addGroupRequest.Name };
|
||||||
|
List<UserDAO> users = addGroupWithStudents.addStudentRequests
|
||||||
|
.Select(it => new UserDAO { Name = it.StudentName })
|
||||||
|
.ToList();
|
||||||
|
_groupRepository.addGroupWithStudents(groupDAO, users);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,5 +10,6 @@ namespace domain.UseCase
|
|||||||
public interface IGroupUseCase
|
public interface IGroupUseCase
|
||||||
{
|
{
|
||||||
public void AddGroup(AddGroupRequest addGroupRequest);
|
public void AddGroup(AddGroupRequest addGroupRequest);
|
||||||
|
public void AddGroupWithStudents(AddGroupWithStudentsRequest addGroupWithStudents);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user