dolibarr-bff/DoliMiddlewareApi/Mappers/ClientMapper.cs

63 lines
2.0 KiB
C#
Raw Normal View History

using DoliMiddlewareApi.Dtos.Dolibarr;
using DoliMiddlewareApi.Dtos.query;
namespace DoliMiddlewareApi.Mappers;
public static class ClientMapper
{
public static ClientDto MapToClientDto(ClientResponse clientResponse, List<ContactDto> contacts)
{
var clientId = int.TryParse(clientResponse.id, out int id) ? id : 0;
return new ClientDto
{
Id = clientId,
Name = clientResponse.name,
CodeClient = clientResponse.code_client,
TypentCode = clientResponse.typent_code,
Status = clientResponse.status,
Email = clientResponse.email,
Phone = clientResponse.phone,
Contacts = contacts.Where(c => c.ClientId == clientId).ToList()
};
}
public static ClientDto MapToClientDtoWithoutContacts(ClientResponse clientResponse)
{
return new ClientDto
{
Id = int.TryParse(clientResponse.id, out int id) ? id : 0,
Name = clientResponse.name,
CodeClient = clientResponse.code_client,
TypentCode = clientResponse.typent_code,
Status = clientResponse.status,
Email = clientResponse.email,
Phone = clientResponse.phone
};
}
public static ClientDetailDto MapToClientDetailDto(ClientResponse r, List<ContactDto> contacts)
{
var clientId = int.TryParse(r.id, out int id) ? id : 0;
return new ClientDetailDto
{
Id = clientId,
Name = r.name ?? "",
CodeClient = r.code_client,
TypentCode = r.typent_code,
Status = r.status,
Email = r.email,
Phone = r.phone,
Address = r.address,
Town = r.town,
Zip = r.zip,
CountryCode = r.country_code,
VatNumber = r.tva_intra,
Url = r.url,
NotePublic = r.note_public,
NotePrivate = r.note_private,
Contacts = contacts.Where(c => c.ClientId == clientId).ToList()
};
}
}