using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Sevomin.Models.Repositories
|
|
{
|
|
public class AdRepository : IAdRepository
|
|
{
|
|
#region Singleton
|
|
private static AdRepository member;
|
|
private static object locker = new object();
|
|
|
|
private AdRepository()
|
|
{
|
|
}
|
|
|
|
static AdRepository()
|
|
{
|
|
lock (locker)
|
|
{
|
|
member = new AdRepository();
|
|
}
|
|
}
|
|
public static AdRepository Current
|
|
{
|
|
get
|
|
{
|
|
return member;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region AdRepository
|
|
|
|
public IQueryable<Ad> ListAll()
|
|
{
|
|
return SevominDbContext.Current.Ads;
|
|
}
|
|
|
|
public void Add(Ad entity)
|
|
{
|
|
SevominDbContext.Current.Ads.Add(entity);
|
|
Save();
|
|
}
|
|
|
|
public void Delete(Ad entity)
|
|
{
|
|
SevominDbContext.Current.Ads.Remove(entity);
|
|
Save();
|
|
}
|
|
|
|
public Ad Find(long key)
|
|
{
|
|
return ListAll().SingleOrDefault(m => m.Id == key);
|
|
}
|
|
|
|
public void Save()
|
|
{
|
|
SevominDbContext.Current.SaveChanges();
|
|
}
|
|
|
|
public void ChangeDays(long id, int duration)
|
|
{
|
|
Find(id).Duration = duration;
|
|
Save();
|
|
}
|
|
|
|
public void ToggleActive(long id)
|
|
{
|
|
Find(id).Active = !Find(id).Active;
|
|
Save();
|
|
}
|
|
|
|
public IEnumerable<Ad> GetAds()
|
|
{
|
|
return ListAll().AsEnumerable().Where(m => m.Active && m.Expired == false);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|