public void NewQueryClick() { var queryView = _viewFactory.GetQueryDialog(); var query = new QueryParameters { Name = "* New Query *" }; query.Fields.Add(new QueryField()); queryView.Query = query; bool showDialog = true; while (showDialog) { if (queryView.ShowDialog(_view) == DialogResult.OK) { try { _model.AddQuery(queryView.Query); showDialog = false; } catch (ArgumentException ex) { _messageBoxView.ShowError(_view, ex.Message, Core.Application.NameAndVersion); } } else { showDialog = false; } } _viewFactory.Release(queryView); }