using System.Collections.Generic;
using System.Collections.ObjectModel;
UserRoles = new Collection<UserRole>();
public int Id { get; set; }
public string Name { get; set; }
public ICollection<UserRole> UserRoles { get; set; }
UserRoles = new Collection<UserRole>();
public int Id { get; set; }
public ICollection<UserRole> UserRoles { get; set; }
public int Id { get; set; }
public DateTime DateAttached { get; set; }
public int RoleId { get; set; }
public Role Role { get; set; }
public int UserId { get; set; }
public User User { get; set; }
public class RolesOfUserViewModel
public RolesOfUserViewModel()
UserRoles = new Collection<UserRole>();
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateAttached { get; set; }
public ICollection<UserRole> UserRoles { get; set; }
public static void Main()
var mapper = new MapperConfiguration(cfg =>
cfg.CreateMap<Role, RolesOfUserViewModel>()
.AfterMap((source, destination) =>
foreach (var userRole in source.UserRoles)
destination.DateAttached = userRole.DateAttached;
var authorRole = new Role
var userRoles = new List<UserRole>
DateAttached = DateTime.Now.AddDays(-1),
DateAttached = DateTime.Now.AddDays(-2),
user.UserRoles = userRoles;
adminRole.UserRoles = userRoles;
authorRole.UserRoles = userRoles;
var rolesOfUserViewModel = mapper.Map<RolesOfUserViewModel>(adminRole);
var json = JsonConvert.SerializeObject(rolesOfUserViewModel);