parent
e176e97bb2
commit
8352e4fe28
@ -0,0 +1,17 @@
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service
|
||||
{
|
||||
public interface IUserServiceJson
|
||||
{
|
||||
public Task<List<User>> GetUsersJson();
|
||||
|
||||
public Task SaveUsersJson(List<User> users);
|
||||
|
||||
public Task AddUserJson(User user);
|
||||
|
||||
public Task DeleteUserJson(int id);
|
||||
|
||||
public Task UpdateUserJson(User user);
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
using System.Text.Json;
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service;
|
||||
|
||||
public class UserServiceStub : IUserServiceJson
|
||||
{
|
||||
private readonly string _jsonFilePath;
|
||||
|
||||
public UserServiceStub(string filePath)
|
||||
{
|
||||
_jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", filePath);
|
||||
}
|
||||
|
||||
public async Task<List<User>> GetUsersJson()
|
||||
{
|
||||
if (!File.Exists(_jsonFilePath))
|
||||
{
|
||||
Console.Out.WriteLine($"{_jsonFilePath} not found");
|
||||
return new List<User>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_jsonFilePath);
|
||||
return JsonSerializer.Deserialize<List<User>>(json) ?? new List<User>();
|
||||
}
|
||||
|
||||
public async Task SaveUsersJson(List<User> users)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(users, new JsonSerializerOptions { WriteIndented = true });
|
||||
await File.WriteAllTextAsync(_jsonFilePath, json);
|
||||
}
|
||||
|
||||
public async Task AddUserJson(User user)
|
||||
{
|
||||
var data = await GetUsersJson();
|
||||
user.Id = data.Count > 0 ? data.Max(p => p.Id) + 1 : 1;
|
||||
data.Add(user);
|
||||
await SaveUsersJson(data);
|
||||
}
|
||||
|
||||
public async Task DeleteUserJson(int id)
|
||||
{
|
||||
var data = await GetUsersJson();
|
||||
var person = data.FirstOrDefault(p => p.Id == id);
|
||||
if (person != null)
|
||||
{
|
||||
data.Remove(person);
|
||||
await SaveUsersJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task UpdateUserJson(User user)
|
||||
{
|
||||
var data = await GetUsersJson();
|
||||
var person = data.FirstOrDefault(p => p.Id == user.Id);
|
||||
if (person != null)
|
||||
{
|
||||
person.Name = user.Name;
|
||||
person.Email = user.Email;
|
||||
person.Image = user.Image;
|
||||
await SaveUsersJson(data);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue