public IActionResult UpdateDatabase(long id, [FromBody] JsonPatchDocument <DatabaseData> patch)
        {
            Database     database             = _context.Databases.Include(d => d.DatabaseVendor).ThenInclude(d => d.Corporation).Include(d => d.BackupTakenPOC).Include(d => d.LdfInformation).Include(d => d.MdfInformation).Include(d => d.Product).Include(d => d.RestoredPOC).Include(d => d.Server).First(p => p.DatabaseId == id);
            string       _databaseOldName     = database.Name;
            string       _databaseOldInstance = database.Instance;
            DatabaseData dData = new DatabaseData {
                Database = database
            };

            patch.ApplyTo(dData, ModelState);
            if (ModelState.IsValid && TryValidateModel(dData))
            {
                if (database.DatabaseVendor != null && database.DatabaseVendor.DatabaseVendorId != 0)
                {
                    _context.Attach(database.DatabaseVendor);
                }
                if (database.BackupTakenPOC != null && database.BackupTakenPOC.UserId != 0)
                {
                    _context.Attach(database.BackupTakenPOC);
                }
                if (database.Environment != null && database.Environment.EnvironmentId != 0)
                {
                    _context.Attach(database.Environment);
                }
                if (database.LdfInformation != null && database.LdfInformation.DataLogFileId != 0)
                {
                    _context.Attach(database.LdfInformation);
                }
                if (database.MdfInformation != null && database.MdfInformation.DataLogFileId != 0)
                {
                    _context.Attach(database.MdfInformation);
                }
                if (database.Product != null && database.Product.ProductId != 0)
                {
                    _context.Attach(database.Product);
                }
                if (database.RestoredPOC != null && database.RestoredPOC.UserId != 0)
                {
                    _context.Attach(database.RestoredPOC);
                }
                if (database.Server != null && database.Server.ServerId != 0)
                {
                    _context.Attach(database.Server);
                }
                _context.SaveChanges();



                IQueryable <Models.Environment> envs = _context.Environments;
                Models.Environment env = envs.Where(e => e.DatabaseDependency.First().DatabaseId == database.DatabaseId).First();

                try
                {
                    string text = System.IO.File.ReadAllText(env.WorkingDirectory + "/web.config");
                    text = text.Replace(_databaseOldName, database.Name).Replace(_databaseOldInstance, database.Instance);
                    System.IO.File.WriteAllText(env.WorkingDirectory + "/web.config", text);
                    return(Ok());
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Exception: " + ex.Message);
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
        public static Guid CreateFullDbHierarchy()
        {
            Guid projectId;

            using (var db = new TestModelContext())
            {
                var newProject = new Project
                {
                    Id          = Guid.NewGuid(),
                    Name        = "ProjectName",
                    Description = "ProjectDescription"
                };
                db.Projects.Add(newProject);
                projectId = newProject.Id;

                var newCredentialType = new CredentialType
                {
                    Id             = Guid.NewGuid(),
                    Name           = "CredType",
                    RequiredValues = "None"
                };
                db.CredentialTypes.Add(newCredentialType);

                var newCredentialsDefinition = new CredentialDefinition
                {
                    Id          = Guid.NewGuid(),
                    Name        = "Creds",
                    DisplayName = "Creds",
                    Project     = newProject,
                    Type        = newCredentialType,
                };
                db.CredentialDefinitions.Add(newCredentialsDefinition);
                newProject.CredentialDefinitions.Add(newCredentialsDefinition);

                var newEnvironment = new Models.Environment
                {
                    Id      = Guid.NewGuid(),
                    Name    = "EnvironmentName",
                    Project = newProject,
                    BaseUrl = "https://skywardapps.us"
                };
                db.Environments.Add(newEnvironment);
                newProject.Environments.Add(newEnvironment);

                var newCredentials = new Credential
                {
                    Id          = Guid.NewGuid(),
                    Environment = newEnvironment,
                    Definition  = newCredentialsDefinition,
                    Values      = new List <CredentialKeyValue> {
                        new CredentialKeyValue
                        {
                            Id    = Guid.NewGuid(),
                            Key   = "Key",
                            Value = "Value",
                        }
                    }
                };
                db.Credentials.Add(newCredentials);
                newEnvironment.Credentials.Add(newCredentials);

                db.SaveChanges();
            }

            return(projectId);
        }
示例#3
0
        public ActionResult NewEnvironment()
        {
            var env = new Models.Environment();

            var jane = new Author()
            {
                Id = 1, Name = "Jane Austen", Environment = env
            };
            var charles = new Author()
            {
                Id = 2, Name = "Charles Dickens", Environment = env
            };
            var miguel = new Author()
            {
                Id = 3, Name = "Miguel de Cervantes", Environment = env
            };

            db.Books.AddRange(new[] {
                new Book()
                {
                    Id          = 1,
                    Title       = "Pride and Prejudice",
                    Year        = 1813,
                    Author      = jane,
                    Price       = 9.99M,
                    Genre       = "Commedy of manners",
                    Environment = env
                },
                new Book()
                {
                    Id          = 2,
                    Title       = "Northanger Abbey",
                    Year        = 1817,
                    Author      = jane,
                    Price       = 12.95M,
                    Genre       = "Gothic parody",
                    Environment = env
                },
                new Book()
                {
                    Id          = 3,
                    Title       = "David Copperfield",
                    Year        = 1850,
                    Author      = charles,
                    Price       = 15,
                    Genre       = "Bildungsroman",
                    Environment = env
                },
                new Book()
                {
                    Id          = 4,
                    Title       = "Don Quixote",
                    Year        = 1617,
                    Author      = miguel,
                    Price       = 8.95M,
                    Genre       = "Picaresque",
                    Environment = env
                }
            });

            db.SaveChanges();

            return(RedirectToAction("Environment", new { id = env.Id }));
        }
        public UIDropDown GetDropDownValues()
        {
            UIDropDown uIDropDown = new UIDropDown();
            string     query      = "select * FROM [ApplicationType] where IsActive = 1";

            using (SqlCommand applicationCmd = new SqlCommand(query, this.conn))
            {
                SqlDataReader reader = applicationCmd.ExecuteReader();
                // reader.Read();
                while (reader.Read())
                {
                    ApplicationType applicationType = new ApplicationType();
                    applicationType.Id   = (int)reader["Id"];
                    applicationType.Name = (string)reader["Name"];
                    uIDropDown.ApplicationType.Add(applicationType);
                }
                reader.Close();
            }

            query = "select * FROM [Clients] where IsActive = 1";
            using (SqlCommand applicationCmd = new SqlCommand(query, this.conn))
            {
                SqlDataReader reader = applicationCmd.ExecuteReader();
                // reader.Read();
                while (reader.Read())
                {
                    Client client = new Client();
                    client.Id   = (int)reader["Id"];
                    client.Name = (string)reader["Name"];
                    uIDropDown.Client.Add(client);
                }
                reader.Close();
            }

            query = "select * FROM [Environment] where IsActive = 1";
            using (SqlCommand applicationCmd = new SqlCommand(query, this.conn))
            {
                SqlDataReader reader = applicationCmd.ExecuteReader();
                // reader.Read();
                while (reader.Read())
                {
                    Models.Environment env = new Models.Environment();
                    env.Id   = (int)reader["Id"];
                    env.Name = (string)reader["Name"];
                    uIDropDown.Environment.Add(env);
                }
                reader.Close();
            }

            query = "select * FROM [Server] where IsActive = 1";
            using (SqlCommand applicationCmd = new SqlCommand(query, this.conn))
            {
                SqlDataReader reader = applicationCmd.ExecuteReader();
                // reader.Read();
                while (reader.Read())
                {
                    Models.Server server = new Models.Server();
                    server.Id   = (int)reader["Id"];
                    server.Name = (string)reader["Name"];
                    uIDropDown.Server.Add(server);
                }
                reader.Close();
            }

            query = "select * FROM [Technology] where IsActive = 1";
            using (SqlCommand applicationCmd = new SqlCommand(query, this.conn))
            {
                SqlDataReader reader = applicationCmd.ExecuteReader();
                // reader.Read();
                while (reader.Read())
                {
                    Models.Technology technology = new Models.Technology();
                    technology.Id   = (int)reader["Id"];
                    technology.Name = (string)reader["Name"];
                    uIDropDown.Technology.Add(technology);
                }
                reader.Close();
            }
            return(uIDropDown);
        }
 public DataModelBuilder WithEnvironment(Models.Environment environment)
 {
     _environments.Add(environment);
     return(this);
 }