https://www.youtube.com/watch?v=wrG-iOiB12o&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=80
using System;
using System.Collections.Generic;
using System.Text;
namespace CShopTodoApp.Models
{
// 모델 클래스
public class Todo
{
// prop
public int Id { get; set; }
public string Title { get; set; }
public bool IsDone { get; set; }
}
}
using System.Collections.Generic;
namespace CShopTodoApp.Models
{
public interface ITodoRepositoryInMemory
{
void Add(Todo model); // 입력
List<Todo> GetAll(); // 출력
}
}
using System;
using System.Collections.Generic;
namespace CShopTodoApp.Models
{
public class TodoRepositoryInMemory : ITodoRepositoryInMemory
{
// 인-메모리 데이터베이스 사용 영역
public void Add(Todo model)
{
throw new NotImplementedException();
}
public List<Todo> GetAll()
{
throw new NotImplementedException();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace CShopTodoApp.Models
{
public class TodoRepositoryInMemory : ITodoRepositoryInMemory
{
// 인-메모리 역할을 해줄 컬렉션 생성
private static List<Todo> _todos = new List<Todo>();
public TodoRepositoryInMemory()
{
_todos = new List<Todo>
{
new Todo {Id = 1, Title = "ASP.NET Core 학습", IsDone = false},
new Todo {Id = 1, Title = "Blazor 학습", IsDone = false},
new Todo {Id = 1, Title = "C# 학습", IsDone = true}
};
}
// 인-메모리 데이터베이스 사용 영역
public void Add(Todo model)
{
model.Id = _todos.Max(t => t.Id) + 1;
_todos.Add(model);
}
public List<Todo> GetAll()
{
return _todos.ToList();
}
}
}
using CShopTodoApp.Models;
using System;
using System.Collections.Generic;
namespace CShopTodoApp.ConsoleApp
{
class Program
{
static void Main(string[] args)
{
ITodoRepositoryInMemory _repository = new TodoRepositoryInMemory();
List<Todo> todos = new List<Todo>();
todos = _repository.GetAll();
// [1] 기본 데이터 출력
foreach (var t in todos)
{
Console.WriteLine($"{t.Id} - {t.Title} ({t.IsDone})");
}
}
}
}
using CShopTodoApp.Models;
using System;
using System.Collections.Generic;
namespace CShopTodoApp.ConsoleApp
{
class Program
{
static void Main(string[] args)
{
ITodoRepositoryInMemory _repository = new TodoRepositoryInMemory();
List<Todo> todos = new List<Todo>();
todos = _repository.GetAll();
// [1] 기본 데이터 출력
foreach (var t in todos)
{
Console.WriteLine($"{t.Id} - {t.Title} ({t.IsDone})");
}
// [2] 데이터 입력
Todo todo = new Todo { Title = "Database", IsDone = true };
_repository.Add(todo);
todos = _repository.GetAll();
// [3] 변경 데이터 출력
foreach (var t in todos)
{
Console.WriteLine($"{t.Id} - {t.Title} ({t.IsDone})");
}
}
}
}