/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public Stat Add(Stat obj) { Stat stat = null; using (Entities model = new Entities()) { stat = model.Stats.Add(obj); model.SaveChanges(); } return stat; }
/// <summary> /// /// </summary> /// <param name="shortUrl"></param> /// <returns></returns> public Url Get(string shortUrl) { Url url = null; using (Entities model = new Entities()) { model.Configuration.ProxyCreationEnabled = false; url= model.Urls.FirstOrDefault(u=>u.ShortUrl == shortUrl); } return url; }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public Url Add(Url obj) { Url addedUrl = null; using (Entities model = new Entities()) { addedUrl = model.Urls.Add(obj); model.SaveChanges(); } return addedUrl; }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public Url Delete(Url obj) { Url deletedUrl = null; using (Entities model = new Entities()) { model.Urls.Attach(obj); model.Entry(obj).State = System.Data.Entity.EntityState.Deleted; model.SaveChanges(); } return deletedUrl; }
/// <summary> /// Gets all hits by specific url id /// </summary> /// <param name="shortUrlCode">The url id</param> /// <returns>Return a list of hits</returns> public IList<Stat> GetAll(string shortUrlCode) { List<Stat> hits = null; using (Entities model = new Entities()) { model.Configuration.ProxyCreationEnabled = false; Url url = model.Urls.FirstOrDefault(u=>u.ShortUrl == shortUrlCode); if (url != null) { IQueryable<Stat> q = model.Stats.Where(s => s.UrlId == url.Id); hits = q.ToList(); // reset time component hits.ForEach(s => s.HitDate = s.HitDate.Date); } } return hits; }
/// <summary> /// /// </summary> /// <returns></returns> public IList<Url> GetAll() { IList<Url> urls = null; using (Entities model = new Entities()) { model.Configuration.ProxyCreationEnabled = false; urls = model.Urls.OrderByDescending(u=>u.CreationDate).ToList(); } return urls; }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public Url Get(int id) { Url url = null; using (Entities model = new Entities()) { model.Configuration.ProxyCreationEnabled = false; url = model.Urls.FirstOrDefault(u => u.Id == id); } return url; }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public Url Update(Url obj) { Url url = null; using (Entities model = new Entities()) { url = model.Urls.Attach(obj); model.Entry(obj).State = System.Data.Entity.EntityState.Modified; model.SaveChanges(); } return url; }