using System.Collections.Generic; using AutoMapper; using OnlineAssessment.Domain.Models; using OnlineAssessment.Domain.ViewModels; namespace OnlineAssessment.Data { public class AutoMapping : Profile { public AutoMapping() { CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); //var config = new MapperConfiguration(cfg => //{ // cfg.CreateMap().IncludeMembers(s => s.Plan); // cfg.CreateMap(MemberList.None); // cfg.CreateMap(MemberList.None); //}); //config.AssertConfigurationIsValid(); //CreateMap(); // to map from User to UserViewModel //https://docs.automapper.org/en/stable/Flattening.html //var config = new MapperConfiguration(cfg => //{ // cfg.CreateMap().IncludeMembers(s => s.InnerSource, s => s.OtherInnerSource); // cfg.CreateMap(MemberList.None); // cfg.CreateMap(MemberList.None); // cfg.CreateMap().IncludeMembers(s => s.Role, s => s.Institute); // cfg.CreateMap(MemberList.None); // cfg.CreateMap(MemberList.None); //}); //config.AssertConfigurationIsValid(); //var source = new Source //{ // Name = "name", // InnerSource = new InnerSource { Description = "description" }, // OtherInnerSource = new OtherInnerSource { Title = "title" } //}; //var destination = mapper.Map(source); //destination.Name.ShouldBe("name"); //destination.Description.ShouldBe("description"); //destination.Title.ShouldBe("title"); } } public static class AutoMapperExtensions { public static List MapList(this IMapper mapper, List source) { return mapper.Map>(source); } } //class Source //{ // public string Name { get; set; } // public InnerSource InnerSource { get; set; } // public OtherInnerSource OtherInnerSource { get; set; } //} //class InnerSource //{ // public string Name { get; set; } // public string Description { get; set; } //} //class OtherInnerSource //{ // public string Name { get; set; } // public string Description { get; set; } // public string Title { get; set; } //} //class Destination //{ // public string Name { get; set; } // public string Description { get; set; } // public string Title { get; set; } //} }