123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using ProRestaurant.DBContexts;
- using ProRestaurant.Models.Accounts;
- using System;
- using System.Collections.Generic;
- using System.Linq;
-
- namespace ProRestaurant.Repository.Accounts
- {
- public interface IUserRepository
- {
- ICollection<User> Get(Func<User, bool> where);
- User GetUser(int UserId);
- UserAddress GetUserAddress(int UserId);
- void Update(User user);
- void Save();
- }
-
- public class UserRepository : IUserRepository
- {
- private readonly DBContext dbContext;
-
- public UserRepository(DBContext _db)
- {
- dbContext = _db;
- }
-
- public ICollection<User> Get(Func<User, bool> where)
- {
- return dbContext.Users.Where(where).ToList();
- }
-
- public User GetUser(int UserId)
- {
- return dbContext.Users.Where(u => u.Id == UserId).FirstOrDefault();
- }
-
- public UserAddress GetUserAddress(int UserId)
- {
- var address = dbContext.UserAddresses.Where(a => a.UserId == UserId).FirstOrDefault();
- return address;
- }
-
- public void Save()
- {
- dbContext.SaveChanges();
- }
-
- public void Update(User user)
- {
- if (user.Addresses != null && user.Addresses.Count > 0)
- {
- foreach(var address in user.Addresses)
- {
- if (address.Id == 0)
- {
- dbContext.Add(address);
- Save();
- }
- }
- }
-
- dbContext.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
- Save();
- }
- }
- }
|