This commit is contained in:
Dmitrii Kollerov
2026-09-25 08:05:46 +03:00
parent 2b05c26eb3
commit 68da43a673
29 changed files with 867 additions and 2 deletions
+32
View File
@@ -0,0 +1,32 @@
using System;
using example_csharp_app.Dto;
using example_csharp_app.Models.Model;
namespace example_csharp_app.Models.Mapper;
public static class BookMapper
{
public static BookModel MapToModel(this BookDto dto)
{
return new BookModel()
{
Author = dto.Author,
BookIndex = dto.BookIndex,
Id = dto.Id,
Title = dto.Title,
YearPublished = dto.YearPublished
};
}
public static BookDto MapToDto(this BookCreateModel model)
{
return new BookDto()
{
Id = Guid.NewGuid(),
Author = model.Author,
BookIndex = model.BookIndex,
Title = model.Title,
YearPublished = model.YearPublished
};
}
}
+30
View File
@@ -0,0 +1,30 @@
using System;
using example_csharp_app.Models.Model;
using example_csharp_app.Models.Request;
namespace example_csharp_app.Models.Mapper;
public static class RequestMapper
{
public static BookCreateModel MapToModel(this BookCreateRequest request)
{
return new BookCreateModel()
{
Author = request.Author,
BookIndex = request.BookIndex.Trim(),
Title = request.Title,
YearPublished = request.YearPublished
};
}
public static BookUpdateModel MapToModel(this BookUpdateRequest request)
{
return new BookUpdateModel()
{
Author = request.Author,
BookIndex = request.BookIndex.Trim(),
Title = request.Title,
YearPublished = request.YearPublished
};
}
}
+11
View File
@@ -0,0 +1,11 @@
using System;
namespace example_csharp_app.Models.Model;
public class BookCreateModel
{
public string Title { set; get; } = string.Empty;
public string Author { set; get; } = string.Empty;
public DateTime YearPublished { set; get; }
public string BookIndex { set; get; } = string.Empty;
}
+12
View File
@@ -0,0 +1,12 @@
using System;
namespace example_csharp_app.Models.Model;
public class BookModel
{
public Guid Id { set; get; }
public string Title { set; get; } = string.Empty;
public string Author { set; get; } = string.Empty;
public DateTime YearPublished { set; get; }
public string BookIndex { set; get; } = string.Empty;
}
+11
View File
@@ -0,0 +1,11 @@
using System;
namespace example_csharp_app.Models.Model;
public class BookUpdateModel
{
public string Title { set; get; } = string.Empty;
public string Author { set; get; } = string.Empty;
public DateTime YearPublished { set; get; }
public string BookIndex { set; get; } = string.Empty;
}
+17
View File
@@ -0,0 +1,17 @@
using System;
using System.ComponentModel.DataAnnotations;
using example_csharp_app.Filters;
namespace example_csharp_app.Models.Request;
public class BookCreateRequest
{
[Required]
public string Title { set; get; } = string.Empty;
[Required]
public string Author { set; get; } = string.Empty;
[Required]
public DateTime YearPublished { set; get; }
[Required, Xml]
public string BookIndex { set; get; } = string.Empty;
}
+10
View File
@@ -0,0 +1,10 @@
using System;
namespace example_csharp_app.Models.Request;
public class BookFilterRequest
{
public string? Author { set; get; }
public string? Index { set; get; }
public string? Title { set; get; }
}
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.ComponentModel.DataAnnotations;
using example_csharp_app.Filters;
namespace example_csharp_app.Models.Request;
public class BookUpdateRequest
{
[Required]
public Guid Id { set; get; } = Guid.Empty;
[Required]
public string Title { set; get; } = string.Empty;
[Required]
public string Author { set; get; } = string.Empty;
[Required]
public DateTime YearPublished { set; get; }
[Required, Xml]
public string BookIndex { set; get; } = string.Empty;
}
+9
View File
@@ -0,0 +1,9 @@
using System;
using example_csharp_app.Models.Model;
namespace example_csharp_app.Models.Response;
public class BookListResponse
{
public IReadOnlyCollection<BookModel> Books { set; get; } = [];
}
+8
View File
@@ -0,0 +1,8 @@
using System;
namespace example_csharp_app.Models.Response;
public class BookOperationResponse
{
public bool IsSuccess { set; get; }
}
+9
View File
@@ -0,0 +1,9 @@
using System;
using example_csharp_app.Models.Model;
namespace example_csharp_app.Models.Response;
public class BookSingleResponse
{
public BookModel? Book { set; get; }
}