Refactoring, database structure changed
This commit is contained in:
108
WatchIt.DTO/Models/Controllers/People/PeopleMappers.cs
Normal file
108
WatchIt.DTO/Models/Controllers/People/PeopleMappers.cs
Normal file
@@ -0,0 +1,108 @@
|
||||
using WatchIt.Database.Model.People;
|
||||
using WatchIt.DTO.Models.Controllers.Genders;
|
||||
using WatchIt.DTO.Models.Controllers.People.Person;
|
||||
using WatchIt.DTO.Models.Generics.Image;
|
||||
using WatchIt.DTO.Models.Generics.Rating;
|
||||
using WatchIt.DTO.Models.Generics.ViewCount;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.People;
|
||||
|
||||
public static class PeopleMappers
|
||||
{
|
||||
#region PUBLIC METHODS
|
||||
|
||||
#region Person
|
||||
|
||||
public static Database.Model.People.Person ToEntity(this PersonRequest request) => new Database.Model.People.Person
|
||||
{
|
||||
Name = request.Name,
|
||||
FullName = request.FullName,
|
||||
Description = request.Description,
|
||||
BirthDate = request.BirthDate,
|
||||
DeathDate = request.DeathDate,
|
||||
GenderId = request.GenderId,
|
||||
};
|
||||
|
||||
public static void UpdateWithRequest(this Database.Model.People.Person entity, PersonRequest request)
|
||||
{
|
||||
entity.Name = request.Name;
|
||||
entity.FullName = request.FullName;
|
||||
entity.Description = request.Description;
|
||||
entity.BirthDate = request.BirthDate;
|
||||
entity.DeathDate = request.DeathDate;
|
||||
entity.GenderId = request.GenderId;
|
||||
}
|
||||
|
||||
public static PersonResponse ToResponse(this Database.Model.People.Person entity)
|
||||
{
|
||||
PersonResponse response = new PersonResponse();
|
||||
response.SetPersonResponseProperties(entity);
|
||||
return response;
|
||||
}
|
||||
|
||||
public static PersonUserRatedResponse ToResponse(this Database.Model.People.Person entity, long accountId)
|
||||
{
|
||||
PersonUserRatedResponse response = new PersonUserRatedResponse();
|
||||
response.SetPersonResponseProperties(entity);
|
||||
response.RatingUser = entity.Roles
|
||||
.SelectMany(x => x.Ratings
|
||||
.Where(y => y.AccountId == accountId))
|
||||
.ToUserOverallResponse();
|
||||
return response;
|
||||
}
|
||||
|
||||
public static PersonRequest ToRequest(this PersonResponse response) => new PersonRequest
|
||||
{
|
||||
Name = response.Name,
|
||||
FullName = response.FullName,
|
||||
Description = response.Description,
|
||||
BirthDate = response.BirthDate,
|
||||
DeathDate = response.DeathDate,
|
||||
GenderId = response.Gender?.Id,
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
#region PersonPicture
|
||||
|
||||
public static Database.Model.People.PersonPicture ToEntity(this ImageRequest request, long personId) => new Database.Model.People.PersonPicture
|
||||
{
|
||||
PersonId = personId,
|
||||
Image = request.Image,
|
||||
MimeType = request.MimeType,
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
#region MediumViewCount
|
||||
|
||||
public static PersonViewCount CreatePersonViewCountEntity(long personId) => new PersonViewCount
|
||||
{
|
||||
PersonId = personId,
|
||||
ViewCount = 1,
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PRIVATE METHODS
|
||||
|
||||
private static void SetPersonResponseProperties(this PersonResponse response, Database.Model.People.Person entity)
|
||||
{
|
||||
response.Id = entity.Id;
|
||||
response.Name = entity.Name;
|
||||
response.FullName = entity.FullName;
|
||||
response.Description = entity.Description;
|
||||
response.BirthDate = entity.BirthDate;
|
||||
response.DeathDate = entity.DeathDate;
|
||||
response.Gender = entity.Gender?.ToResponse();
|
||||
response.Rating = entity.Roles.SelectMany(x => x.Ratings).ToOverallResponse();
|
||||
response.ViewCount = entity.ViewCounts.ToResponse();
|
||||
response.Picture = entity.Picture?.ToResponse();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user