private DateTime?GetDateFromFilter(Filters filters, string fieldName, string prefix)
        {
            var dateString = filters.Get(prefix + ".Date");

            try {
                return(_dateLocalizationServices.ConvertFromLocalizedDateString(dateString));
            }
            catch (FormatException ex) {
                filters.UpdateModel.AddModelError(prefix, T(@"Error parsing '{0}' date string '{1}': {2}", fieldName, dateString, ex.Message));
                return(null);
            }
        }
Exemple #2
0
        protected override DriverResult Editor(SchedulingPart part, IUpdateModel updater, dynamic shapeHelper)
        {
            var viewModel = BuildViewModelFromPart(part);

            if (updater.TryUpdateModel(viewModel, Prefix, null, null))
            {
                part.IsAllDay    = viewModel.IsAllDay;
                part.IsRecurring = viewModel.IsRecurring;
                try {
                    // Start
                    var utcStartDateTime = viewModel.IsAllDay
                        ? _dateLocalizationServices.ConvertFromLocalizedDateString(viewModel.StartDateTimeEditor.Date)
                        : _dateLocalizationServices.ConvertFromLocalizedString(viewModel.StartDateTimeEditor.Date, viewModel.StartDateTimeEditor.Time);
                    part.StartDateTime = utcStartDateTime;
                }
                catch (FormatException) {
                    updater.AddModelError(Prefix, T("'{0} {1}' could not be parsed as a valid date and time.", viewModel.StartDateTimeEditor.Date, viewModel.StartDateTimeEditor.Time));
                }
                try {
                    // End
                    var utcEndDateTime = _dateLocalizationServices.ConvertFromLocalizedString(viewModel.EndDateTimeEditor.Date, viewModel.EndDateTimeEditor.Time);
                    part.EndDateTime = utcEndDateTime;
                }
                catch (FormatException)
                {
                    updater.AddModelError(Prefix, T("'{0} {1}' could not be parsed as a valid date and time.", viewModel.EndDateTimeEditor.Date, viewModel.EndDateTimeEditor.Time));
                }
                // TODO: validate start date + time and end date + time?
                // Date and time validation
                if (part.IsAllDay && !part.EndDateTime.HasValue)
                {
                    // If not all day, then the end date must be given
                    updater.AddModelError("EndDateTime", T("End date is mandatory."));
                }
                if (part.EndDateTime.HasValue && part.EndDateTime <= part.StartDateTime)
                {
                    updater.AddModelError("EndDateTime", T("End date cannot be before start date."));
                }
            }

            return(ContentShape("Parts_Scheduling_Edit",
                                () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: viewModel, Prefix: Prefix)));
        }
 public DateTime DateToUTC(string localDate)
 {
     return(_dateServices.ConvertFromLocalizedDateString(localDate).Value);
 }