public static UserGroupMetadata Create(UserGroup userGroupType, UserGroupModel userGroup)
        {
            switch (userGroupType)
            {
            case UserGroup.Administrator: return(new AdministratorGroupModel(userGroup));

            case UserGroup.RealEstateAdministrator: return(new RealEstateAdministratorGroupModel(userGroup));

            case UserGroup.Agent: return(new AgentGroupModel(userGroup));

            case UserGroup.MarketAssistance: return(new MarketAssistanceGroupModel(userGroup));

            case UserGroup.MarketAssistancePlus: return(new MarketAssistancePlusGroupModel(userGroup));

            case UserGroup.PropertyOwner: return(new PropertyOwnerGroupModel(userGroup));

            case UserGroup.AppClient: return(new AppClientGroupModel(userGroup));

            default: throw new ArgumentOutOfRangeException(nameof(userGroupType), userGroupType, null);
            }
        }
 public AdministratorGroupModel(UserGroupModel userGroup)
 {
     Id         = userGroup.Id;
     Name       = userGroup.Name;
     StaticCode = userGroup.StaticCode;
 }
 public PropertyOwnerGroupModel(UserGroupModel userGroup)
 {
     Id         = userGroup.Id;
     Name       = userGroup.Name;
     StaticCode = userGroup.StaticCode;
 }
 public AppClientGroupModel(UserGroupModel userGroup)
 {
     Id         = userGroup.Id;
     Name       = userGroup.Name;
     StaticCode = userGroup.StaticCode;
 }
 public MarketAssistancePlusGroupModel(UserGroupModel userGroup)
 {
     Id         = userGroup.Id;
     Name       = userGroup.Name;
     StaticCode = userGroup.StaticCode;
 }