Skip to content

Instantly share code, notes, and snippets.

@cezarypiatek
Created February 23, 2018 21:46
Show Gist options
  • Save cezarypiatek/466375d3f100c44086ec567751d5f58d to your computer and use it in GitHub Desktop.
Save cezarypiatek/466375d3f100c44086ec567751d5f58d to your computer and use it in GitHub Desktop.
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