Skip to content

Authentic199/Example-Population

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This is example source code using Population.NET libraries

  • Models

    public class User : BaseEntity
    {
        public string Name { get; set; } = default!;
    
        public string Email { get; set; } = default!;
    
        public string UserName { get; set; } = default!;
    
        public string Password { get; set; } = default!;
    
        public UserOperationStatus Status { get; set; } = UserOperationStatus.Active;
    
        public Guid RoleId { get; set; }
    
        public Role? Role { get; set; }
    }
    
    public enum UserOperationStatus
    {
        /// <summary>
        /// Active
        /// </summary>
        Active = 1,
    
        /// <summary>
        /// Locked
        /// </summary>
        Locked = 2,
    }
    public class Role : BaseEntity
    {
        public string Name { get; set; } = default!;
    
        public string? Description { get; set; }
    
        public ICollection<User> Users { get; set; } = default!;
    
        public ICollection<Permission> Permissions { get; set; } = default!;
    }
    public class Permission : BaseEntity
    {
        public string Code { get; set; } = default!;
    
        public string Name { get; set; } = default!;
    
        public Guid RoleId { get; set; }
    
        public Role? Role { get; set; }
    }
  • Response DTOs

    public class UserResponse : BaseEntity
    {
        public string Name { get; set; } = default!;
    
        public string Email { get; set; } = default!;
    
        public string UserName { get; set; } = default!;
    
        public string Password { get; set; } = default!;
    
        public UserOperationStatus Status { get; set; } = UserOperationStatus.Active;
    
        public RoleResponse? Role { get; set; }
    }
    public class RoleResponse : BaseEntity
    {
        public string Name { get; set; } = default!;
    
        public string? Description { get; set; }
    
        public ICollection<PermissionResponse> Permissions { get; set; } = default!;
    }
    public class PermissionResponse : BaseEntity
    {
        public string Code { get; set; } = default!;
    
        public string Name { get; set; } = default!;
    }
  • Config mapping

    public class MappingProfile : Profile
    {
        public MappingProfile()
        {
            CreateMap<User, UserResponse>();
            CreateMap<Role, RoleResponse>();
            CreateMap<Permission, PermissionResponse>();
        }
    }
  • Prepare Test Data

    Let’s create a simple API for creating users and use the provided test data.

    [HttpPost]
    public async Task<IActionResult> CreateAsync([FromBody] CreateUserRequest request)
    {
        User user = mapper.Map<User>(request);
        await context.Users.AddAsync(user);
        await context.SaveChangesAsync();
        return Ok();
    }

    Example JSON Payload

    {
      "name": "John Doe",
      "email": "[email protected]",
      "userName": "johndoe123",
      "password": "Password@123",
      "status": 1,
      "role": {
        "name": "Admin",
        "description": "Administrator role with full access",
        "permissions": [
               {
                  "code": "READ",
                  "name": "Read Access"
               },
               {
                  "code": "WRITE",
                  "name": "Write Access"
               }
            ]
        }
    }
    {
       "name": "Jane Smith",
       "email": "[email protected]",
       "userName": "janesmith456",
       "password": "SecurePass@2024",
       "status": 1,
       "role": {
        "name": "Editor",
        "description": "Editor role with limited access",
        "permissions": [
                {
                    "code": "UPDATE",
                    "name": "Update Access"
                }
            ]
        }
    }

About

Example using Population.NET libraries.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages