public TransactionsDetail CalculTransactionsDetail(List <Transaction> transactionsList)
        {
            decimal totalAmount = GetTotalAmount(transactionsList);

            TransactionsDetail detail = new TransactionsDetail()
            {
                TotalAmount    = totalAmount,
                NbTransactions = transactionsList.Count,
                AverageAmount  = (transactionsList.Count != 0) ? totalAmount / transactionsList.Count : 0
            };

            return(detail);
        }
        public bool IsCorrectVariationPlace(Place place, TransactionsDetail detail, int variationPourcentage)
        {
            if (place.AverageAmount == null && detail.AverageAmount > 0)
            {
                return(true);
            }

            if (place.AverageAmount == null && detail.AverageAmount == 0)
            {
                return(false);
            }

            return(IsCorrectVariation((decimal)place.AverageAmount, detail.AverageAmount, variationPourcentage));
        }
        public bool IsCorrectVariationCategory(Category category, TransactionsDetail detail, int variationPourcentage)
        {
            if (category.AverageAmount == null && detail.AverageAmount > 0)
            {
                return(true);
            }

            if (category.AverageAmount == null && detail.AverageAmount == 0)
            {
                return(false);
            }

            return(IsCorrectVariation(category.AverageAmount, detail.AverageAmount, variationPourcentage));
        }
Exemple #4
0
        public List <Place> GetPlacesByAverageVariationPourcentage(int variationPourcentage)
        {
            List <Place>       correctPlaces = new List <Place>();
            List <Transaction> transactions  = null;
            TransactionsDetail detail        = null;

            List <Place> places = _placeDBAccess.FindAll();

            foreach (Place place in places)
            {
                transactions = _transactionDBAccess.FindByPlace(place.PlaceId);
                detail       = _businessService.CalculTransactionsDetail(transactions);

                bool isCorrectVariation = _businessService.IsCorrectVariationPlace(place, detail, variationPourcentage);
                if (isCorrectVariation)
                {
                    correctPlaces.Add(place);
                }
            }
            return(correctPlaces);
        }