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