public DayCommentViewModel(INavigation navigation, DateService dateService, IRepoManager repoManager) { _repoManager = repoManager ?? throw new ArgumentNullException(nameof(repoManager)); _dateService = dateService ?? throw new ArgumentNullException(nameof(dateService)); SaveCommand = new Command(async() => { _repoManager.QuestionRepository.Add(new Question() { QuestionKey = NotesQuestion, QuestionDate = _dateService.SelectedDay.Time, Answer = Notes, Timestamp = DateTimeOffset.Now }); _repoManager.QuestionRepository.Add(new Question() { QuestionKey = TravelQuestion, QuestionDate = _dateService.SelectedDay.Time, Answer = SaveItemsToString(TravelItems), Timestamp = DateTimeOffset.Now }); _repoManager.QuestionRepository.Add(new Question() { QuestionKey = PhoneQuestion, QuestionDate = _dateService.SelectedDay.Time, Answer = SaveItemsToString(PhoneItems), Timestamp = DateTimeOffset.Now }); await navigation.PopAsync(); }); CancelCommand = new Command(async() => { await navigation.PopAsync(); }); TravelItems.Add(new SelectionKeyItem() { Key = "NoSpecial", Item = AppResources.NoSpecialQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "NotApplicable", Item = AppResources.NotApplicableQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "DifferentAddresses", Item = AppResources.DifferentAddressesQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "DifferentTransportModes", Item = AppResources.DifferentTransportModesQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "DifferentTravelTimes", Item = AppResources.DifferentTravelTimesQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "DifferentTravelDuration", Item = AppResources.DifferentTravelDurationQuestionAnswerLabel }); TravelItems.Add(new SelectionKeyItem() { Key = "DifferentTravelRoutes", Item = AppResources.DifferentTravelRoutesQuestionAnswerLabel }); PhoneItems.Add(new SelectionKeyItem() { Key = "TRUE", Item = AppResources.YesQuestionAnswerLabel }); PhoneItems.Add(new SelectionKeyItem() { Key = "FALSE", Item = AppResources.NoQuestionAnswerLabel }); }
public bool Validate(CustomValidationService service) { ValidationErrors = new SerializableDictionary <string, string>(); if ((PhoneItems == null || PhoneItems.Count < 1) && (InternetItems == null || InternetItems.Count < 1) && (VideoItems == null || VideoItems.Count < 1)) { ValidationErrors.Add(LambdaHelper <Location> .GetPropertyName(x => x.PhoneItems), "Location.PhoneItems is a mandatory field."); ValidationErrors.Add(LambdaHelper <Location> .GetPropertyName(x => x.InternetItems), "Location.InternetItems is a mandatory field."); ValidationErrors.Add(LambdaHelper <Location> .GetPropertyName(x => x.VideoItems), "Location.VideoItems is a mandatory field."); } if (PhoneItems != null && PhoneItems.Any()) { foreach (var item in PhoneItems) { if (item.Validate(service)) { foreach (var validationError in item.ValidationErrors) { if (!ValidationErrors.ContainsKey(validationError.Key)) { ValidationErrors.Add(validationError.Key, validationError.Value); } } } } } if (InternetItems != null) { if (InternetItems != null && InternetItems.Any()) { foreach (var item in InternetItems) { if (item.Validate(service)) { foreach (var validationError in item.ValidationErrors) { if (!ValidationErrors.ContainsKey(validationError.Key)) { ValidationErrors.Add(validationError.Key, validationError.Value); } } } } } } if (VideoItems != null) { if (VideoItems != null && VideoItems.Any()) { foreach (var item in VideoItems) { if (item.Validate(service)) { foreach (var validationError in item.ValidationErrors) { if (!ValidationErrors.ContainsKey(validationError.Key)) { ValidationErrors.Add(validationError.Key, validationError.Value); } } } } } } if (Address == null) { ValidationErrors.Add(LambdaHelper <Location> .GetPropertyName(x => x.Address), "Location.Address is a mandatory field."); } else { if (Address.Validate()) { foreach (var validationError in Address.ValidationErrors) { if (!ValidationErrors.ContainsKey(validationError.Key)) { ValidationErrors.Add(validationError.Key, validationError.Value); } } } } return(ValidationErrors.Count > 0); }