ProjectGrid/Data/DataAccessContext.cs

62 lines
1.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using ProjectGrid.Models;
namespace ProjectGrid.Data
{
public class DataAccessContext : DbContext, IUserRepository
{
private static DataAccessContext _instance;
public static DataAccessContext GetInstance() => _instance;
public DataAccessContext(DbContextOptions<DataAccessContext> options) : base(options)
{
_instance = this;
}
public DbSet<UserData> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserData>().ToTable("USER");
}
public IEnumerable<UserModel> GetAll()
{
return Users.Select<UserData, UserModel>( data => data.ToModel() );
}
public UserModel Add(UserModel user)
{
// TODO: check if exist
Users.Add(new UserData(user));
SaveChanges();
return user;
}
}
public class UserData
{
public int? Id { get; set; }
public string Name1 { get; set; }
public string Name2 { get; set; }
public string Email { get; set; }
public UserData() { }
public UserData(UserModel model)
{
Name1 = model.firstName;
Name2 = model.lastName;
Email = model.email;
}
public UserModel ToModel()
{
return new UserModel {firstName = Name1, lastName = Name2, email = Email};
}
}
}