public ActionResult Edit(int id, FormCollection collection)
        {
            ConnectionModel connection = null;

            try
            {
                connection = this._connectionRepository.GetConnection(id);
                if (connection == null)
                {
                    return(View("NotFound", "The specified connection was not found"));
                }

                this.UpdateModel(connection);
                connection.ConnectionParameters.Clear();
                connection.ConnectionParameters.AddRange(ConnectionParameterModel.FromFormCollection(collection));

                if (connection.IsValid)
                {
                    IEnumerable <RuleViolation> ruleViolations = null;
                    if (!this._connectionRepository.IsValid(connection, out ruleViolations))
                    {
                        ModelState.AddRuleViolations(ruleViolations);
                        return(View(connection));
                    }
                    this._connectionRepository.Save();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddRuleViolations(connection.GetRuleViolations());
                    return(View(connection));
                }
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Create(FormCollection collection)
        {
            ConnectionModel connection = null;

            try
            {
                connection = new ConnectionModel();
                this.UpdateModel(connection);
                connection.ConnectionParameters.Clear();
                connection.ConnectionParameters.AddRange(ConnectionParameterModel.FromFormCollection(collection));

                if (connection.IsValid)
                {
                    IEnumerable <RuleViolation> ruleViolations = null;
                    if (!this._connectionRepository.IsValid(connection, out ruleViolations))
                    {
                        ModelState.AddRuleViolations(ruleViolations);
                        return(View(connection));
                    }

                    this._connectionRepository.AddConnection(connection);
                    this._connectionRepository.Save();
                }
                else
                {
                    ModelState.AddRuleViolations(connection.GetRuleViolations());
                    return(View(connection));
                }

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }