private static bool CheckDiscountsForConstraints(DiscountObject discountObject, string cardId, decimal price) { return(DateFromDateTo(discountObject) //& RequiresMemberShip(discountObject, cardId) //& DateTimeFromDateTimeTo(discountObject) //& WeekDay(discountObject) //& UserIdConstraint(discountObject, cardId) //& AgeFromAgeTo(discountObject, cardId) //& TriggeringRuleDepend(discountObject, price) ); }
private static bool DateFromDateTo(DiscountObject discount) { long?dateFrom = discount.DiscountConstraints.FirstOrDefault(x => x.ConstraintType == 1)?.DataAsInteger; long?dateTo = discount.DiscountConstraints.FirstOrDefault(x => x.ConstraintType == 2)?.DataAsInteger; if (dateFrom == null && dateTo == null) { return(true); } bool conditionFrom; bool conditionTo; Console.WriteLine(UnixTimeStampToDateTime((long)dateFrom).Date); Console.WriteLine(DateTime.Now.GetTbilisiNow().Date); if (dateFrom != null) { conditionFrom = UnixTimeStampToDateTime((long)dateFrom).Date <= DateTime.Now.GetTbilisiNow().Date; } else { conditionFrom = true; } if (dateTo != null) { conditionTo = UnixTimeStampToDateTime((long)dateTo).Date > DateTime.Now.GetTbilisiNow().Date; } else { conditionTo = true; } return(conditionTo == conditionFrom); }