Skip to content

Adexandria/AutoMapify_Lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automapify

This dotnet library facilitates object mappings without the need for service setup or configuration.

Basic Usage

There are two methods for utilizing this tool: Attributes and Configuration

Attributes

  • Specify the property name from the source in the destination object using the MapProperty attribute

         public int Id { get; set; }
    
         public string Name { get; set; }
    
         public int Age { get; set; }
    
         [MapProperty("DateOfBirth")]
         public DateTime DOB { get; set; }
    
         public bool IsDeleted { get; set; }
    
         public Classroom Room {get; set; }
Map to a new object
    var studentDto = student1.Map<Student,StudentDto>();
Map to an existing object
  studentDto.Map<Student,StudentDto>(student1);

Configuration

  • Establish a configuration to illustrate the mapping of values.
     public static class MappingService
   {
       public static MapifyConfiguration<Student,StudentDtos> StudentConfig()
       {
           return new MapifyConfigurationBuilder<Student, StudentDto>()
               .Map(d => d.Name, s => $"{s.FirstName} {s.LastName}")
               .Map(d => d.Age, s => s.DateOfBirth.ToAge())
               .Map(d=>d.DOB, s => s.DateOfBirth)
               .Map(d=>d.IsDeleted, s => false)
               .Map(d=>d.Classroom, s=> s.Room)
               .CreateConfig();
       }
   }
Map to a new object
  var studentDto = student.Map<Student,StudentDto>(MappingService.StudentConfig());
Map to an existing object
   studentDto.Map<Student,StudentDto>(student1,MappingService.StudentConfig());

Many to one/many mapping

Automapify now supports many to many and many to one object mapping. You can utilize that by either using the conifguration or attributes.

Using MapProperty attribute
  • Specify the property name from the source in the destination object using the MapProperty attribute

         public int Id { get; set; }
    
         public string Name { get; set; }
    
         public int Age { get; set; }
    
         [MapProperty("DateOfBirth")]
         public DateTime DOB { get; set; }
    
         public bool IsDeleted { get; set; }
    
         public Classroom Room {get; set; }
Map from objects to objects (Many-to-many mapping)
  • Map to a new object
    var studentDtos = student.Map<List<Student>, List<StudentDto>>();
  • Map to an existing object
    studentDtos.Map(students); 
Map from object to objects (One-to-many mapping)
  • Map to a new object
    var studentDtos = student.Map<Student, List<StudentDto>>();
  • Map to an existing object
    studentDtos.Map(student); 
Using Configuration
  • Establish a configuration to illustrate the mapping of values.
     public static class MappingService
   {
       public static MapifyConfiguration<Student,StudentDtos> StudentConfig()
       {
           return new MapifyConfigurationBuilder<Student, StudentDto>()
               .Map(d => d.Name, s => $"{s.FirstName} {s.LastName}")
               .Map(d => d.Age, s => s.DateOfBirth.ToAge())
               .Map(d=>d.DOB, s => s.DateOfBirth)
               .Map(d=>d.IsDeleted, s => false)
               .Map(d=>d.Classroom, s=> s.Room)
               .CreateConfig();
       }
   }
Map from objects to objects (Many-to-many mapping)
  • Map to a new object
    var studentDtos = student.Map<List<Student>, List<StudentDto>>(MappingService.StudentConfig());
  • Map to an existing object
    studentDtos.Map(students,MappingService.StudentConfig()); 
Map from object to objects (One-to-many mapping)
  • Map to a new object
    var studentDtos = student.Map<Student, List<StudentDto>>(MappingService.StudentConfig());
  • Map to an existing object
    studentDtos.Map(student,MappingService.StudentConfig()); 

About

A mapping library

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages