finish get-character implementation

This commit is contained in:
2024-06-11 14:13:04 +02:00
parent 60b38e5434
commit ca8cee9189
5 changed files with 42 additions and 2 deletions

View File

@@ -16,4 +16,8 @@ public interface IDataManager
// Group management
abstract UserProfile? GetOwner(Group group);
abstract IEnumerable<UserProfile>? GetMembers(Group group);
// Character management
abstract IEnumerable<Character>? GetCharacters(Group group);
abstract IEnumerable<Character>? GetCharacters(UserProfile profile);
}

View File

@@ -26,4 +26,6 @@ public interface IDataProvider
abstract IEnumerable<UserProfile>? GetGroupMembers(Group group);
abstract UserProfile? GetOwner(Group group);
abstract UserProfile? GetOwner(Character character);
abstract IEnumerable<Character>? GetCharacters(Group group);
abstract IEnumerable<Character>? GetCharacters(UserProfile jprofile);
}

View File

@@ -87,4 +87,14 @@ public class DefaultDataManager : IDataManager
DataProvider.Delete(account);
return true;
}
public IEnumerable<Character>? GetCharacters(Group group)
{
return DataProvider.GetCharacters(group);
}
public IEnumerable<Character>? GetCharacters(UserProfile profile)
{
return DataProvider.GetCharacters(profile);
}
}

View File

@@ -221,4 +221,18 @@ public class JsonFileDataProvider : IDataProvider
return jcharacter.Owner;
return null;
}
public IEnumerable<Character>? GetCharacters(Group group)
{
if (group is JsonGroup jgroup)
return jgroup.Characters;
return null;
}
public IEnumerable<Character>? GetCharacters(UserProfile profile)
{
if (profile is UserProfile jprofile)
return JsonFile.Characters.Where(n => n.Owner == profile);
return null;
}
}

View File

@@ -8,11 +8,21 @@ public class CharacterManager(OwnCharManager manager)
public IEnumerable<Character>? GetCharacters(Group? group)
{
throw new NotImplementedException();
Manager.CheckLogin();
if (group != null)
return Manager.DataManager?.GetCharacters(group);
return null;
}
public IEnumerable<Character>? GetCharacters(UserProfile? profile)
{
throw new NotImplementedException();
Manager.CheckLogin();
if (profile != null)
return Manager.DataManager?.GetCharacters(profile);
return null;
}
}