Как справляться с пользователями с разными ролямиC#

Место общения программистов C#
Ответить
Anonymous
 Как справляться с пользователями с разными ролями

Сообщение Anonymous »

Мой проект имеет 3 класса: пользователь , admin , сотрудник . User - базовый класс с входом в систему, паролем и именем. Admin и сотрудник наследуйте этот класс, но имеют определенные поля. Я делаю DB как файл JSON, но я не понимаю, как обрабатывать пользователей. У меня есть идея хранить 3 списка в users.json: пользователи, администраторы, сотрудники. Я не уверен насчет этой идеи, но сейчас это так. И внутри каждого списка соответствующие пользователи. Но как обработать все это позже? Теперь есть класс пользователя , который содержит методы adduser () и другие. Но в настоящее время он предназначен для работы с пользовательским базовым классом. Пожалуйста, скажите мне, как организовать все это? Может быть, я должен просто написать 3 метода Adduser, Addadmin, Addemployee. Я не знаю, что это хорошее или плохое решение.using System.Text.Json;

namespace LibraryBooksAccounting;

public class UserService
{
private string _DBpath;
private List _usersList = new();
public UserService(string DBpath)
{
_DBpath = DBpath;
GetAllUsers();
}

public List GetAllUsers()
{
if (!File.Exists(_DBpath))
{
Save();
return _usersList;
}

string json = File.ReadAllText(_DBpath);
_usersList = JsonSerializer.Deserialize(json) ?? new List();

return _usersList;
}

public bool AddUser(User user)
{
if (_usersList.Any(u => u.Login == user.Login))
{
return false;
}
user.UUID = Guid.NewGuid().ToString();
_usersList.Add(user);
Save();
return true;
}

public User GetUserByLogin(string login)
{
return _usersList.FirstOrDefault(u => u.Login == login.ToLower());
}

public bool UserExists(string login)
{
return _usersList.Any(u => u.Login == login.ToLower());
}

private void Save()
{
string json = JsonSerializer.Serialize(_usersList);
File.WriteAllText(_DBpath, json);
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... rent-roles
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»