public static IEnumerable <PurchaseItem> GetItemsByTypeAtDateRange(GoodType type, DateTime initialDate, DateTime?finalDate) { using var db = new PurchaseDBContext(); if (finalDate.HasValue) { ApproximateDateToLower(ref initialDate); ApproximateDateToUpper(ref finalDate); return(DistinctCollections( db.Purchases.ToList().Where(x => x.Date >= initialDate && x.Date <= finalDate.Value) .Select(x => new Purchase(x)) .Select(x => x.GetPurchaseItems().Where(x => x.Type.Equals(type))), (item1, item2) => item1.Amount += item2.Amount //Sum amount of equal items )); } else { return(DistinctCollections( db.Purchases.ToList().Where(x => x.Date.Year == initialDate.Year && x.Date.Month == initialDate.Month && x.Date.Day == initialDate.Day) .Select(x => new Purchase(x)) .Select(x => x.GetPurchaseItems().Where(x => x.Type.Equals(type))), (item1, item2) => item1.Amount += item2.Amount //Sum amount of equal items )); } }
public static IEnumerable <GoodType> GetAllGoodTypes() { using var db = new PurchaseDBContext(); //ATTENTION: It's significant to call ToList() of the db collection var items = db.Purchases.ToList().Select(x => new Purchase(x)).Select(x => x.GetPurchaseItems().Select(x => x.Type).Distinct()); return(DistinctCollections( items, null //There's no rull just skip item )); }
public static DateTime?GetLastPurchaseDate() { using var db = new PurchaseDBContext(); var items = db.Purchases.ToList(); if (items.Count > 0) { return(items.OrderBy(x => x.Date).Last().Date); } return(null); }
public static IEnumerable <Purchase> GetPurchase(DateTime initialDate, DateTime?finalDate) { using var db = new PurchaseDBContext(); if (finalDate.HasValue) { ApproximateDateToLower(ref initialDate); ApproximateDateToUpper(ref finalDate); return(db.Purchases.ToList() .Where(x => x.Date >= initialDate && x.Date <= finalDate.Value) .Select(x => new Purchase(x))); } else { return(db.Purchases.ToList() .Where(x => x.Date.Day == initialDate.Day && x.Date.Month == initialDate.Month && x.Date.Year == initialDate.Year) .Select(x => new Purchase(x))); } }
public static IEnumerable <DateTime> GetAvailableDates() { using var db = new PurchaseDBContext(); return(db.Purchases.ToList().Select(x => x.Date)); }
public static void Add(Purchase purchase) { using var db = new PurchaseDBContext(); db.Purchases.Add(new PurchaseEntity(purchase)); db.SaveChanges(); }