AllReady.Areas.Admin.ViewModels.Validators.EventEditViewModelValidator.Validate C# (CSharp) Метод

Validate() публичный Метод

public Validate ( EventEditViewModel viewModel, AllReady.Areas.Admin.ViewModels.Campaign.CampaignSummaryViewModel parentCampaign ) : string>>.List
viewModel AllReady.Areas.Admin.ViewModels.Event.EventEditViewModel
parentCampaign AllReady.Areas.Admin.ViewModels.Campaign.CampaignSummaryViewModel
Результат string>>.List
        public List<KeyValuePair<string, string>> Validate(EventEditViewModel viewModel, CampaignSummaryViewModel parentCampaign)
        {
            var result = new List<KeyValuePair<string, string>>();

            if (viewModel.EndDateTime < viewModel.StartDateTime)
            {
                result.Add(new KeyValuePair<string, string>(nameof(viewModel.EndDateTime), "End date cannot be earlier than the start date"));
            }

            if (viewModel.StartDateTime < parentCampaign.StartDate)
            {
                result.Add(new KeyValuePair<string, string>(nameof(viewModel.StartDateTime), "Start date cannot be earlier than the campaign start date " + parentCampaign.StartDate.ToString("d")));
            }

            if (viewModel.EndDateTime > parentCampaign.EndDate)
            {
                result.Add(new KeyValuePair<string, string>(nameof(viewModel.EndDateTime), "End date cannot be later than the campaign end date " + parentCampaign.EndDate.ToString("d")));
            }

            if (viewModel.EventType == EventType.Rally && string.IsNullOrEmpty(viewModel.Location.Address1))
            {
                result.Add(new KeyValuePair<string, string>(nameof(viewModel.Location.Address1), "Address1 field is required. "));
            }

            return result;
        }
    }

Usage Example

        public void ReturnCorrectErrorWhenEndDateTimeIsLessThanStartDateTime()
        {
            var validator = new EventEditViewModelValidator();
            var parentCampaign = new CampaignSummaryViewModel { EndDate = new DateTimeOffset(new DateTime(1999, 2, 1)) };
            var model = new EventEditViewModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDateTime = new DateTimeOffset(new DateTime(1999, 1, 1))
            };

            var errors = validator.Validate(model, parentCampaign);

            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
            Assert.Equal(errors.Find(x => x.Key == "EndDateTime").Value, "End date cannot be earlier than the start date");
        }
All Usage Examples Of AllReady.Areas.Admin.ViewModels.Validators.EventEditViewModelValidator::Validate
EventEditViewModelValidator