on This Example Add Validation to OrderOverviewModel > AdditionalInfo.DeliveryDate
OrderOverviewModel > AdditionalInfo.DeliveryDate
private void ValidateRequestedDeliveryDate(OrderOverviewModel model) { var basket = ShopApi.Basket.GetCurrentBasket(false) as Basket; var deliveryDate = (Date)model.AdditionalInfo.DeliveryDate; var deliveryDateModel = ((ExtendedOrderManager)CommerceFrameworkBase.Orders).SetDeliveryDateModel(basket.DeliveryCalendarDates); var requestedDateContainOnDissableDatesList = deliveryDateModel.Holidays.Contains(deliveryDate); // Validate user Enterd Delivery not in Disable dates if (requestedDateContainOnDissableDatesList) { ((ExtendedAdditionalInfoModel)model.AdditionalInfo).DisableDays = deliveryDateModel.HolidaysStringList; ((ExtendedAdditionalInfoModel)model.AdditionalInfo).DeliveryLookupPeriod = deliveryDateModel.DeliveryLookupPeriod; // Set requested date as NextPossibleDeliveryDate. when validation occured. ((ExtendedAdditionalInfoModel)model.AdditionalInfo).NextPossibleDeliveryDate = deliveryDate.ToShortDateString(); // Set Cut off time validatation to Model State. var validationCutOff = CommerceFrameworkBase.SanaTexts.GetSanaText("Validation_CutOff", "Requested delivery date is invalid or the cut off time has been missed."); ModelState.AddModelError("AdditionalInfo.DeliveryDate", validationCutOff); }
}
public override ActionResult OrderOverview(OrderOverviewModel model) { var incompleteStepUrl = GetFirstIncompleteStepUrl(OrderOverviewCheckoutStep.StepId); if (!incompleteStepUrl.IsEmptyString()) return Redirect(incompleteStepUrl); // Ticket 79457: [Wave 2] 3.5. CUT-OFF TIME FOR DELIVERY ValidateRequestedDeliveryDate(model); if (!ModelState.IsValid) { var info = InitializeStep(OrderOverviewCheckoutStep.StepId); model.InitializeGeneral(Shop, info.Value); model.PageSettings = GetSystemPageSettings(SystemPagesConstants.CheckoutPages); return View(model); } ModifyBasket(model.ApplyChanges); return GoToNextCheckoutStep(OrderOverviewCheckoutStep.StepId); }