Exemple #1
0
        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
                           ));
            }
        }
Exemple #2
0
        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
                       ));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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)));
            }
        }
Exemple #5
0
        public static IEnumerable <DateTime> GetAvailableDates()
        {
            using var db = new PurchaseDBContext();

            return(db.Purchases.ToList().Select(x => x.Date));
        }
Exemple #6
0
 public static void Add(Purchase purchase)
 {
     using var db = new PurchaseDBContext();
     db.Purchases.Add(new PurchaseEntity(purchase));
     db.SaveChanges();
 }