public IActionResult CreateOrEdit(CreateOrEditViewModel createOrEdit)
        {
            if (this.ModelState.IsValid)
              {
            DataSource dataSource = new CreateOrEditViewModelMapper(this).Map(createOrEdit);

            if (createOrEdit.Id == null)
              this.Storage.GetRepository<IDataSourceRepository>().Create(dataSource);

            else this.Storage.GetRepository<IDataSourceRepository>().Edit(dataSource);

            this.Storage.Save();
            return this.Redirect(this.Request.CombineUrl("/backend/datasources"));
              }

              return this.CreateRedirectToSelfResult();
        }
        public DataSource Map(CreateOrEditViewModel createOrEdit)
        {
            DataSource dataSource = new DataSource();

            if (createOrEdit.Id != null)
            {
                dataSource = this.handler.Storage.GetRepository <IDataSourceRepository>().WithKey((int)createOrEdit.Id);
            }

            else
            {
                dataSource.ClassId = createOrEdit.ClassId;
            }

            dataSource.Code            = createOrEdit.Code;
            dataSource.CSharpClassName = createOrEdit.CSharpClassName;
            dataSource.Parameters      = createOrEdit.Parameters;
            return(dataSource);
        }