private void ClickedRegistrationButton(object sender, RoutedEventArgs e) { var cmd = new MaterialSite.RegisterMaterialSite(); cmd.InputSiteName = InputSiteName.Text; cmd.InputLicenseText = InputLicenseText.Text; cmd.InputMemoOfMaterialSite = InputMemoOfMaterialSite.Text; cmd.InputTeamsOfUseURL = InputTeamsOfUseURL.Text; receiverCommand.CommandViewModelTo(cmd); //FIXME:こうするよりも、値と処理(デリゲート)のペアを何らかの形で置いて、関数で実行する形にしたほうがいいだろう。 //もし今後再度リファクタリングの機会があるならば、そうしたほうがいい //FIMXE:ユーザーのことを考えるのであれば、どの項目が未入力なのか教えてあげたほうがいいだろう。 if (cmd.ValueInputCheckResult == MaterialSite.RegisterMaterialSite.VALUE_EMPTY) { MessageBox.Show("サイト名が入力されていません。", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (cmd.ValueInputCheckResult == MaterialSite.RegisterMaterialSite.REGISTER_EXISTS_MATERALSITE) { MessageBox.Show("指定された素材配布サイトは既に存在します。", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } //MessageBox.Show("登録が完了しました。", "登録完了", MessageBoxButton.OK, MessageBoxImage.Information); Close(); }
public void CommandViewModelTo(RegisterMaterialSite cmd) { cmd.ValueInputCheckResult = RegisterMaterialSite.ACCEPTED_VALUE; try { ActiveProjectData.GetInstance().MaterialSiteListData.AddMaterialSite(cmd.InputSiteName, cmd.InputTeamsOfUseURL, cmd.InputLicenseText, cmd.InputMemoOfMaterialSite); } catch (ArgumentException e) { cmd.ValueInputCheckResult = ConvertAddLicenseTextFuncFromMsgViewToMsg(int.Parse(e.Message)); } }