76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using PetCompanion.Data;
|
|
using PetCompanion.Models;
|
|
|
|
namespace PetCompanion.Repositories
|
|
{
|
|
public class PetRepository
|
|
{
|
|
private readonly ApplicationDbContext context;
|
|
|
|
public PetRepository(ApplicationDbContext context)
|
|
{
|
|
this.context = context;
|
|
}
|
|
|
|
public IEnumerable<Pet> GetPetsByUserId(string userId)
|
|
{
|
|
return context.Pets
|
|
.Where(p => p.UserId == userId)
|
|
.Include(p => p.Stats)
|
|
.Include(p => p.Resources)
|
|
.ToList();
|
|
}
|
|
|
|
public Pet GetPetById(string petId, string userId)
|
|
{
|
|
return context.Pets
|
|
.Where(p => p.Id == petId && p.UserId == userId)
|
|
.Include(p => p.Stats)
|
|
.Include(p => p.Resources)
|
|
.FirstOrDefault();
|
|
}
|
|
|
|
public Pet CreatePet(Pet pet)
|
|
{
|
|
context.Pets.Add(pet);
|
|
context.SaveChanges();
|
|
return pet;
|
|
}
|
|
|
|
public Pet UpdatePet(Pet pet)
|
|
{
|
|
context.Pets.Update(pet);
|
|
context.SaveChanges();
|
|
return pet;
|
|
}
|
|
|
|
public Pet UpdatePetBasicAction(Pet pet)
|
|
{
|
|
context.Pets.Attach(pet);
|
|
context.Entry(pet).Property(p => p.PetBasicAction).IsModified = true;
|
|
context.Entry(pet).Property(p => p.BasicActionCooldown).IsModified = true;
|
|
context.SaveChanges();
|
|
return pet;
|
|
}
|
|
|
|
public Pet UpdatePetGatherAction(Pet pet)
|
|
{
|
|
context.Pets.Attach(pet);
|
|
context.Entry(pet).Property(p => p.PetGatherAction).IsModified = true;
|
|
context.Entry(pet).Property(p => p.GatherActionSince).IsModified = true;
|
|
context.SaveChanges();
|
|
return pet;
|
|
}
|
|
|
|
public Pet UpdatePetResources(Pet pet)
|
|
{
|
|
context.Pets.Attach(pet);
|
|
context.Entry(pet).Reference(p => p.Resources).IsModified = true;
|
|
context.Entry(pet).Property(p => p.GatherActionSince).IsModified = true;
|
|
context.SaveChanges();
|
|
return pet;
|
|
}
|
|
}
|
|
}
|