Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9c7cf93

Browse files
Added New Services and Repositories
1 parent 57f9466 commit 9c7cf93

File tree

13 files changed

+1010
-23
lines changed

13 files changed

+1010
-23
lines changed

‎Project.API/Extensions/ServiceExtension.cs‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,45 @@ public static class ServiceExtension
1616
public static IServiceCollection RegisterService(this IServiceCollection services)
1717
{
1818
#region Services
19+
services.AddScoped<ICustomerService, CustomerService>();
1920
services.AddScoped<IProductService, ProductService>();
21+
services.AddScoped<IOrderService, OrderService>();
2022

2123
#endregion
2224

2325
#region Repositories
26+
services.AddTransient<ICustomerRepository, CustomerRepository>();
2427
services.AddTransient<IProductRepository, ProductRepository>();
28+
services.AddTransient<IOrderRepository, OrderRepository>();
29+
services.AddTransient<IOrderDetailsRepository, OrderDetailsRepository>();
2530

2631
#endregion
2732

2833
#region Mapper
2934
var configuration = new MapperConfiguration(cfg =>
3035
{
36+
cfg.CreateMap<Customer, CustomerViewModel>();
37+
cfg.CreateMap<CustomerViewModel, Customer>();
38+
3139
cfg.CreateMap<Product, ProductViewModel>();
3240
cfg.CreateMap<ProductViewModel, Product>();
41+
42+
cfg.CreateMap<Order, OrderViewModel>();
43+
cfg.CreateMap<OrderViewModel, Order>();
3344
});
3445

3546
IMapper mapper = configuration.CreateMapper();
3647

3748
// Register the IMapperService implementation with your dependency injection container
49+
services.AddSingleton<IBaseMapper<Customer, CustomerViewModel>>(new BaseMapper<Customer, CustomerViewModel>(mapper));
50+
services.AddSingleton<IBaseMapper<CustomerViewModel, Customer>>(new BaseMapper<CustomerViewModel, Customer>(mapper));
51+
3852
services.AddSingleton<IBaseMapper<Product, ProductViewModel>>(new BaseMapper<Product, ProductViewModel>(mapper));
3953
services.AddSingleton<IBaseMapper<ProductViewModel, Product>>(new BaseMapper<ProductViewModel, Product>(mapper));
4054

55+
services.AddSingleton<IBaseMapper<Order, OrderViewModel>>(new BaseMapper<Order, OrderViewModel>(mapper));
56+
services.AddSingleton<IBaseMapper<OrderViewModel, Order>>(new BaseMapper<OrderViewModel, Order>(mapper));
57+
4158
#endregion
4259

4360
return services;

‎Project.Core/Entities/Business/CustomerViewModel.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ namespace Project.Core.Entities.Business
1111
public class CustomerViewModel
1212
{
1313
public int Id { get; set; }
14-
[Required, StringLength(maximumLength: 100, MinimumLength = 10)]
14+
[Required, StringLength(maximumLength: 100, MinimumLength = 2)]
1515
public string FullName { get; set; } = string.Empty;
16-
[Required, DataType(DataType.EmailAddress), StringLength(maximumLength: 100, MinimumLength = 10)]
16+
[Required, DataType(DataType.EmailAddress), StringLength(maximumLength: 100, MinimumLength = 5)]
1717
public string Email { get; set; } = string.Empty;
1818
}
1919
}

‎Project.Core/Entities/General/Customer.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace Project.Core.Entities.General
1212
[Table("Customers")]
1313
public class Customer : Base<int>
1414
{
15-
[Required, StringLength(maximumLength: 100, MinimumLength = 10)]
15+
[Required, StringLength(maximumLength: 100, MinimumLength = 2)]
1616
public string FullName { get; set; } = string.Empty;
17-
[Required, DataType(DataType.EmailAddress), StringLength(maximumLength: 100, MinimumLength = 10)]
17+
[Required, DataType(DataType.EmailAddress), StringLength(maximumLength: 100, MinimumLength = 5)]
1818
public string Email { get; set; } = string.Empty;
1919
}
2020
}

‎Project.Core/Interfaces/IRepositories/IBaseRepository.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public interface IBaseRepository<T> where T : class
1818
Task<bool> IsExists<Tvalue>(string key, Tvalue value);
1919
Task<bool> IsExistsForUpdate<Tid>(Tid id, string key, string value);
2020
Task<T> Create(T model);
21+
Task CreateRange(List<T> model);
2122
Task Update(T model);
2223
Task Delete(T model);
2324
Task SaveChangeAsync();
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Project.Core.Entities.General;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace Project.Core.Interfaces.IRepositories
9+
{
10+
public interface IOrderDetailsRepository : IBaseRepository<OrderDetails>
11+
{
12+
}
13+
}

‎Project.Core/Services/OrderService.cs‎

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ public class OrderService : IOrderService
1717
private readonly IBaseMapper<Order, OrderViewModel> _orderViewModelMapper;
1818
private readonly IBaseMapper<OrderViewModel, Order> _orderMapper;
1919
private readonly IOrderRepository _orderRepository;
20+
private readonly IOrderDetailsRepository _orderDetailsRepository;
2021

2122
public OrderService(
2223
IBaseMapper<Order, OrderViewModel> orderViewModelMapper,
2324
IBaseMapper<OrderViewModel, Order> orderMapper,
24-
IOrderRepository orderRepository)
25+
IOrderRepository orderRepository,
26+
IOrderDetailsRepository orderDetailsRepository)
2527
{
2628
_orderMapper = orderMapper;
2729
_orderViewModelMapper = orderViewModelMapper;
2830
_orderRepository = orderRepository;
31+
_orderDetailsRepository = orderDetailsRepository;
2932
}
3033

3134
public async Task<IEnumerable<OrderViewModel>> GetOrders()
@@ -63,11 +66,34 @@ public async Task<bool> IsExistsForUpdate(int id, string key, string value)
6366

6467
public async Task<OrderViewModel> Create(OrderViewModel model)
6568
{
66-
//Mapping through AutoMapper
67-
var entity = _orderMapper.MapModel(model);
68-
entity.EntryDate = DateTime.Now;
69-
70-
return _orderViewModelMapper.MapModel(await _orderRepository.Create(entity));
69+
//Manual mapping
70+
var order = new Order
71+
{
72+
CustomerId = model.CustomerId,
73+
TotalBill = model.TotalBill,
74+
TotalQuantity = model.TotalQuantity,
75+
ProcessingData = model.ProcessingData,
76+
Description = model.Description,
77+
EntryDate = DateTime.Now
78+
};
79+
var orderData = await _orderRepository.Create(order);
80+
var orderDetails = new List<OrderDetails>();
81+
82+
foreach (var item in model.OrderDetails)
83+
{
84+
orderDetails.Add(new OrderDetails
85+
{
86+
OrderId = orderData.Id,
87+
ProductId = item.ProductId,
88+
Price = item.Price,
89+
Quantity = item.Quantity,
90+
Description = item.Description,
91+
EntryDate = DateTime.Now
92+
});
93+
}
94+
await _orderDetailsRepository.CreateRange(orderDetails);
95+
96+
return _orderViewModelMapper.MapModel(orderData);
7197
}
7298

7399
public async Task Update(OrderViewModel model)

‎Project.Core/Services/ProductService.cs‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ public async Task<ProductViewModel> Create(ProductViewModel model)
6666
//Mapping through AutoMapper
6767
var entity = _productMapper.MapModel(model);
6868
entity.EntryDate = DateTime.Now;
69-
7069
return _productViewModelMapper.MapModel(await _productRepository.Create(entity));
7170
}
7271

‎Project.Infrastructure/Data/ApplicationDbContext.cs‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : ba
1818

1919
#region DbSet Section
2020
public DbSet<Product> Products { get; set; }
21+
public DbSet<Customer> Customers { get; set; }
22+
public DbSet<Order> Orders { get; set; }
23+
public DbSet<OrderDetails> OrderDetails { get; set; }
2124

2225
#endregion
2326

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /