private async Task CommandSaveAction() { try { if (!Validate()) { ViewModelCommonUtil.SendMessage(ViewModelConst.MessagingTrainingSelfScroll); return; } IsLoading = true; var trainingContentList = new List <TrainingListStructure>(); if (!Off) { // トレーニング一覧 var trainingStack = TrainingStack.Children; foreach (var training in trainingStack) { var insert = new TrainingListStructure(); var trainingId = ((TrainingMasterModel)((Picker)((StackLayout)training).Children[1]).SelectedItem).Id; var trainingseCount = ((Entry)((StackLayout)training).Children[3]).Text; var loadContentList = new List <LoadContentStructure>(); var loadStack = ((StackLayout)((StackLayout)training).Children[4]).Children; foreach (var load in loadStack) { var insertload = new LoadContentStructure(); var subLoad = ((StackLayout)load).Children[1]; var loadId = ((LoadUnitModel)((Picker)((StackLayout)subLoad).Children[1]).SelectedItem) .LoadId; var nums = ((Entry)((StackLayout)subLoad).Children[0]).Text; var loadUnitId = ((LoadUnitModel)((Picker)((StackLayout)subLoad).Children[1]).SelectedItem).Id; insertload.LoadId = loadId; insertload.LoadUnitId = loadUnitId; insertload.Nums = float.Parse(nums); loadContentList.Add(insertload); } insert.LoadContentList = loadContentList; insert.TrainingId = trainingId; insert.TrainingSetCount = int.Parse(trainingseCount); trainingContentList.Add(insert); } } var trainingScheduleStructure = new TrainingScheduleStructure { TrainingContentList = trainingContentList, Off = Off, Week = _week }; var trainingScheduleStructureJson = JsonConvert.SerializeObject(trainingScheduleStructure); if (_isUpdate) { TrainingScheduleService.UpdateTrainingSchedule(_id, trainingScheduleStructureJson, _week); } else { TrainingScheduleService.RegistTrainingSchedule(trainingScheduleStructureJson, _week); } IsLoading = false; await Application.Current.MainPage.DisplayAlert(LanguageUtils.Get(LanguageKeys.Complete), LanguageUtils.Get(LanguageKeys.SaveComplete), LanguageUtils.Get(LanguageKeys.OK)); // ホーム画面をリロードする ViewModelCommonUtil.SendMessage(ViewModelConst.MessagingTrainingPrevPageReload); ViewModelCommonUtil.TrainingBackPage(); } catch (Exception e) { Debug.WriteLine(e); } }
public void CommandAddTrainingAction(TrainingListStructure training) { var mainStack = new StackLayout(); var trainingLabel = new Label { Text = LanguageUtils.Get(LanguageKeys.TrainingName), FontAttributes = FontAttributes.Bold, Margin = new Thickness(0, 20, 0, 0) }; mainStack.Children.Add(trainingLabel); var trainingPicker = new Picker { ItemsSource = TrainingMasterService.GetTrainingMasterDataList(), ItemDisplayBinding = new Binding("TrainingName"), SelectedIndex = 0 }; mainStack.Children.Add(trainingPicker); var trainingSetCountLabel = new Label { Text = LanguageUtils.Get(LanguageKeys.SetCount), FontAttributes = FontAttributes.Bold, Margin = new Thickness(0, 0, 0, 0) }; mainStack.Children.Add(trainingSetCountLabel); var trainingSetCountEntry = new Entry { Text = training.TrainingSetCount.ToString(), Keyboard = Keyboard.Numeric }; mainStack.Children.Add(trainingSetCountEntry); var trainingLoadStack = new StackLayout(); trainingPicker.SelectedItem = ((List <TrainingMasterModel>)trainingPicker.ItemsSource).First(data => data.Id == training.TrainingId); foreach (var load in training.LoadContentList) { var loadModdel = LoadService.GetLoad(load.LoadId); var loadStack = new StackLayout(); loadStack.Children.Add(new Label { Text = loadModdel.LoadName, FontAttributes = FontAttributes.Bold, Margin = new Thickness(0, 0, 0, 0) }); var subLoadStack = new StackLayout { Orientation = StackOrientation.Horizontal }; subLoadStack.Children.Add(new Entry { Text = load.Nums.ToString(), Keyboard = Keyboard.Numeric, WidthRequest = 145 }); var loadUnitPick = new Picker { ItemsSource = LoadUnitService.GetLoadUnitList(load.LoadId), ItemDisplayBinding = new Binding("UnitName"), SelectedIndex = 0, WidthRequest = 145 }; loadUnitPick.SelectedItem = ((List <LoadUnitModel>)loadUnitPick.ItemsSource).First(data => data.Id == load.LoadUnitId); subLoadStack.Children.Add(loadUnitPick); loadStack.Children.Add(subLoadStack); trainingLoadStack.Children.Add(loadStack); } trainingPicker.SelectedIndexChanged += (sender, args) => { trainingLoadStack.Children.Clear(); var loadList = JsonConvert.DeserializeObject <LoadStructure>(((TrainingMasterModel)trainingPicker.SelectedItem) .Load); foreach (var load in loadList.LoadList) { var loadStack = new StackLayout(); loadStack.Children.Add(new Label { Text = load.LoadName, FontAttributes = FontAttributes.Bold, Margin = new Thickness(0, 0, 0, 0) }); var subLoadStack = new StackLayout { Orientation = StackOrientation.Horizontal }; subLoadStack.Children.Add(new Entry { Keyboard = Keyboard.Numeric, WidthRequest = 145 }); subLoadStack.Children.Add(new Picker { ItemsSource = LoadUnitService.GetLoadUnitList(load.Id), ItemDisplayBinding = new Binding("UnitName"), SelectedIndex = 0, WidthRequest = 145 }); loadStack.Children.Add(subLoadStack); trainingLoadStack.Children.Add(loadStack); } }; mainStack.Children.Add(trainingLoadStack); TrainingStack.Children.Add(mainStack); }