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)); }