Exemplo n.º 1
0
 /// <summary>
 /// Method that convert a MinimunRechargeEntity(Database) into MinimunRecharge
 /// </summary>
 /// <param name="minR">MinimunRechargeEntity</param>
 /// <returns>MinimunRecharge</returns>
 public MinimunRecharge convertToEntity(MinimunRechargeEntity minR)
 {
     try
     {
         MinimunRecharge minRecharge = new MinimunRecharge();
         minRecharge.id       = minR.Id;
         minRecharge.minValue = minR.MinimunValue;
         minRecharge.Period   = minRecharge.Period;
         return(minRecharge);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// Method that iterates into each promotion.
        /// </summary>
        /// <param name="promAdv">Reference value for warning the customer if he/she won an promotion</param>
        /// <param name="valueProm">Reference value for retrieving the value won.</param>
        private void customerPromotions(ref string promAdv, ref decimal valueProm)
        {
            try
            {
                bool             bonusGranted = false;
                List <Promotion> prom         = dataAccess.getPromotions();
                foreach (var p in prom)
                {
                    switch (p.Id)
                    {
                    case 1:
                        decimal sumRecharge = dataAccess.getAllCustomerRecharges(cus).Sum(c => c.Value);
                        bonusGranted = saveGrantedBonus(ref promAdv, ref valueProm, p, sumRecharge);
                        break;

                    case 2:
                        MinimunRecharge minRec = dataAccess.getMinRechargePerPeriod(Convert.ToInt32(Period.Weekly));
                        DateTime        dt1    = DateTime.Today.AddDays(-7);

                        var lRecharges = dataAccess.getAllCustomerRecharges(cus).Where(c => c.Date >= dt1 &&
                                                                                       c.Date <= DateTime.Today &&
                                                                                       c.Value == minRec.minValue).ToList();
                        decimal avgRecharge = 0;
                        if (lRecharges.Count() > 0)
                        {
                            avgRecharge = lRecharges.Average(c => c.Value);
                        }

                        bonusGranted = saveGrantedBonus(ref promAdv, ref valueProm, p, avgRecharge);
                        break;

                    default:
                        bonusGranted = false;
                        break;
                    }
                    if (bonusGranted)
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("customerPromotions Error: " + ex.Message);
            }
        }