Created
February 23, 2018 21:46
-
-
Save cezarypiatek/466375d3f100c44086ec567751d5f58d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections.Generic; | |
using System.Linq; | |
using System.Collections.ObjectModel; | |
namespace TestAutoMapper | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
} | |
public void Update(UserEntity a, SuperUserDTO b) | |
{ | |
b.Age = a.Age; | |
b.CorrespondenceAddresses = a.CorrespondenceAddresses.ConvertAll(addressEntity => | |
{ | |
var addressDTO = new AddressDTO(); | |
addressDTO.BuildingNo = addressEntity.BuildingNo; | |
addressDTO.City = addressEntity.City; | |
addressDTO.FlatNo = addressEntity.FlatNo; | |
addressDTO.Street = addressEntity.Street; | |
addressDTO.ZipCode = addressEntity.ZipCode; | |
return addressDTO; | |
}).AsReadOnly(); | |
b.FirstName = a.FirstName; | |
b.LastName = a.LastName; | |
b.LuckyNumbers = a.LuckyNumbers.ToList(); | |
var bMainAddress = new AddressDTO(); | |
bMainAddress.BuildingNo = a.MainAddress.BuildingNo; | |
bMainAddress.City = a.MainAddress.City; | |
bMainAddress.FlatNo = a.MainAddress.FlatNo; | |
bMainAddress.Street = a.MainAddress.Street; | |
bMainAddress.ZipCode = a.MainAddress.ZipCode; | |
b.MainAddress = bMainAddress; | |
b.UnitId = a.Unit.Id; | |
b.UnitName = a.Unit.Name; | |
b.Total = a.GetTotal(); | |
} | |
public void Update(UserEntity a, UserDTO b) | |
{ | |
b.Age = a.Age; | |
b.CorrespondenceAddresses = a.CorrespondenceAddresses; | |
b.FirstName = a.FirstName; | |
b.ImageData = a.ImageData.ToArray(); | |
b.LastName = a.LastName; | |
b.LuckyNumbers = a.LuckyNumbers.ToList(); | |
var bMainAddress = new AddressDTO(); | |
bMainAddress.BuildingNo = a.MainAddress.BuildingNo; | |
bMainAddress.City = a.MainAddress.City; | |
bMainAddress.FlatNo = a.MainAddress.FlatNo; | |
bMainAddress.Street = a.MainAddress.Street; | |
bMainAddress.ZipCode = a.MainAddress.ZipCode; | |
b.MainAddress = bMainAddress; | |
b.UnitId = a.Unit.Id; | |
b.UnitName = a.Unit.Name; | |
b.Total = a.GetTotal(); | |
} | |
public List<UserDTO> From(List<UserEntity> src) | |
{ | |
return src; | |
} | |
public ReadOnlyCollection<int> From(List<int> src) | |
{ | |
return src.ToList().AsReadOnly(); | |
} | |
public UserEntity Map(UserDTO dto) | |
{ | |
var userEntity = new UserEntity(); | |
userEntity.Age = dto.Age; | |
userEntity.CorrespondenceAddresses = dto.CorrespondenceAddresses.Select(addressDTO => | |
{ | |
var addressEntity = new AddressEntity(); | |
addressEntity.BuildingNo = addressDTO.BuildingNo; | |
addressEntity.City = addressDTO.City; | |
addressEntity.FlatNo = addressDTO.FlatNo; | |
addressEntity.Street = addressDTO.Street; | |
addressEntity.ZipCode = addressDTO.ZipCode; | |
return addressEntity; | |
}).ToList(); | |
userEntity.FirstName = dto.FirstName; | |
userEntity.ImageData = dto.ImageData.ToArray(); | |
userEntity.LastName = dto.LastName; | |
userEntity.LuckyNumbers = dto.LuckyNumbers.ToList(); | |
var userEntityMainAddress = new AddressEntity(); | |
userEntityMainAddress.BuildingNo = dto.MainAddress.BuildingNo; | |
userEntityMainAddress.City = dto.MainAddress.City; | |
userEntityMainAddress.FlatNo = dto.MainAddress.FlatNo; | |
userEntityMainAddress.Street = dto.MainAddress.Street; | |
userEntityMainAddress.ZipCode = dto.MainAddress.ZipCode; | |
userEntity.MainAddress = userEntityMainAddress; | |
return userEntity; | |
} | |
} | |
public class UserEntity | |
{ | |
public byte[] ImageData { get; set; } | |
public List<int> LuckyNumbers { get; set; } | |
public string FirstName { get; set; } | |
public string LastName { get; set; } | |
public int Age { get; set; } | |
public AddressEntity MainAddress { get; set; } | |
public string AddressCity { get; set; } | |
public List<AddressEntity> CorrespondenceAddresses { get; set; } | |
public UnitEntity Unit { get; set; } | |
public int GetTotal() | |
{ | |
} | |
public void Update(UserDTO user) | |
{ | |
Age = user.Age; | |
CorrespondenceAddresses = user.CorrespondenceAddresses.Select(addressDTO => | |
{ | |
var addressEntity = new AddressEntity(); | |
addressEntity.BuildingNo = addressDTO.BuildingNo; | |
addressEntity.City = addressDTO.City; | |
addressEntity.FlatNo = addressDTO.FlatNo; | |
addressEntity.Street = addressDTO.Street; | |
addressEntity.ZipCode = addressDTO.ZipCode; | |
return addressEntity; | |
}).ToList(); | |
FirstName = user.FirstName; | |
ImageData = user.ImageData.ToArray(); | |
LastName = user.LastName; | |
LuckyNumbers = user.LuckyNumbers.ToList(); | |
var thisMainAddress = new AddressEntity(); | |
thisMainAddress.BuildingNo = user.MainAddress.BuildingNo; | |
thisMainAddress.City = user.MainAddress.City; | |
thisMainAddress.FlatNo = user.MainAddress.FlatNo; | |
thisMainAddress.Street = user.MainAddress.Street; | |
thisMainAddress.ZipCode = user.MainAddress.ZipCode; | |
MainAddress = thisMainAddress; | |
} | |
} | |
public class AddressEntity | |
{ | |
public string City { get; set; } | |
public string ZipCode { get; set; } | |
public string Street { get; set; } | |
public string FlatNo { get; set; } | |
public string BuildingNo { get; set; } | |
} | |
public class UnitEntity | |
{ | |
public int Id { get; set; } | |
public string Name { get; set; } | |
} | |
public class UserDTO | |
{ | |
public byte[] ImageData { get; set; } | |
public List<int> LuckyNumbers { get; set; } | |
public int Total { get; set; } | |
public string FullName { get; set; } | |
public string FirstName { get; set; } | |
public string LastName { get; set; } | |
public int Age { get; set; } | |
public AddressDTO MainAddress { get; set; } | |
public ReadOnlyCollection<AddressDTO> CorrespondenceAddresses { get; set; } | |
public int UnitId { get; set; } | |
public string UnitName { get; set; } | |
public UserDTO(UserEntity en) | |
{ | |
Age = en.Age; | |
CorrespondenceAddresses = en.CorrespondenceAddresses.Select(correspondenceAddresse => | |
{ | |
var addressDTO = new AddressDTO(); | |
addressDTO.BuildingNo = correspondenceAddresse.BuildingNo; | |
addressDTO.City = correspondenceAddresse.City; | |
addressDTO.FlatNo = correspondenceAddresse.FlatNo; | |
addressDTO.Street = correspondenceAddresse.Street; | |
addressDTO.ZipCode = correspondenceAddresse.ZipCode; | |
return addressDTO; | |
}).To.AsReadOnly(); | |
FirstName = en.FirstName; | |
LastName = en.LastName; | |
var thisMainAddress = new AddressDTO(); | |
thisMainAddress.BuildingNo = en.MainAddress.BuildingNo; | |
thisMainAddress.City = en.MainAddress.City; | |
thisMainAddress.FlatNo = en.MainAddress.FlatNo; | |
thisMainAddress.Street = en.MainAddress.Street; | |
thisMainAddress.ZipCode = en.MainAddress.ZipCode; | |
MainAddress = thisMainAddress; | |
UnitId = en.Unit.Id; | |
UnitName = en.Unit.Name; | |
} | |
public void Update(UserEntity en) | |
{ | |
Age = en.Age; | |
CorrespondenceAddresses = en.CorrespondenceAddresses.ConvertAll(correspondenceAddresse => | |
{ | |
var addressDTO = new AddressDTO(); | |
addressDTO.BuildingNo = correspondenceAddresse.BuildingNo; | |
addressDTO.City = correspondenceAddresse.City; | |
addressDTO.FlatNo = correspondenceAddresse.FlatNo; | |
addressDTO.Street = correspondenceAddresse.Street; | |
addressDTO.ZipCode = correspondenceAddresse.ZipCode; | |
return addressDTO; | |
}); | |
FirstName = en.FirstName; | |
LastName = en.LastName; | |
var thisMainAddress = new AddressDTO(); | |
thisMainAddress.BuildingNo = en.MainAddress.BuildingNo; | |
thisMainAddress.City = en.MainAddress.City; | |
thisMainAddress.FlatNo = en.MainAddress.FlatNo; | |
thisMainAddress.Street = en.MainAddress.Street; | |
thisMainAddress.ZipCode = en.MainAddress.ZipCode; | |
MainAddress = thisMainAddress; | |
UnitId = en.Unit.Id; | |
UnitName = en.Unit.Name; | |
} | |
} | |
class SuperUserDTO : UserDTO | |
{ | |
public SuperUserDTO(UserEntity en) : base(en) | |
{ | |
} | |
} | |
public class AddressDTO | |
{ | |
public string City { get; set; } | |
public string ZipCode { get; set; } | |
public string Street { get; set; } | |
public string FlatNo { get; set; } | |
public string BuildingNo { get; set; } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment