Exemplo n.º 1
0
        public string TermsAndConditions(Discount discount)
        {
            var terms     = new List <string>();
            var dateframe = $"El descuento es válido a partir del {_calendarRepository.FriendlyDate(discount.ValidFrom)} de {discount.ValidFrom.Year}.";

            terms.Add(dateframe);

            var enddate = string.Empty;

            if (discount.Weekly)
            {
                if (discount.DurationDays < 7)
                {
                    var daysofWeek = new List <string>();
                    for (int i = 0; i < discount.DurationDays; i++)
                    {
                        daysofWeek.Add(
                            _calendarRepository.dayToSpanish(
                                discount.ValidFrom.AddDays(i).DayOfWeek.ToString()));
                    }
                    var dayspromo = daysofWeek.Count == 1 ? daysofWeek.First() :
                                    string.Join(", ", daysofWeek.Take(daysofWeek.Count() - 1)) + $" y {daysofWeek.Last()}";
                    terms.Add($"Válido solamente los días {dayspromo}.");
                }
                terms.Add("El descuento puede desactivarse sin previo aviso.");
            }
            else
            {
                terms.Add($"El descuento expira el {_calendarRepository.FriendlyDate(discount.ValidTo)} de {discount.ValidTo.Year}.");
            }

            if (discount.InstancesLeft.HasValue)
            {
                var discountLimit = $"El descuento se puede usar {(discount.InstancesLeft.Value == 1 ? "una sola vez" : "hasta " + discount.InstancesLeft.Value + " veces")}.";
                terms.Add(discountLimit);
            }

            if (discount.Percentage == 100)
            {
                var voucher = $"El voucher de ${discount.Roof} de descuento aplica para compras mayores a ${discount.Base}.";
                terms.Add(voucher);
            }
            else
            {
                terms.Add($"El descuento del {discount.Percentage}% aplica para compras mayores a ${discount.Base}.");
                terms.Add($"El monto máximo de descuento es ${discount.Roof}.");
            }

            terms.Add($"La promoción puede desactivarse o modificarse sin previo aviso.");
            terms.Add($"Sólo válido para compras online en www.delasartes.com.ar.");
            terms.Add($"La compra debe realizarse el día que la promoción sea válida.");
            terms.Add($"La entrega y/o envío debe estar dentro de las opciones que ofrece el sitio web al finalizar la compra.");


            return(string.Join(" ", terms));
        }