Example #1
0
        public void AddApplication(string name)
        {
            if (_db.Applications.Any(a => a.Name == name))
            {
                throw new SiteExistsFoundException();
            }

            Site site = null;

            try
            {
                site = _siteManager.CreateSite(name);

                var newApp = new Application
                {
                    Name = name,
                    ServiceUrl = site.ServiceUrl,
                    SiteUrl = site.SiteUrl
                };

                _db.Applications.Add(newApp);
                _db.SaveChanges();
            }
            catch
            {
                if (site != null)
                {
                    _siteManager.DeleteSite(name);
                }

                throw;
            }
        }
        public ActionResult Create(ApplicationViewModel appViewModel)
        {
            string slug = appViewModel.Name.GenerateSlug();
            if (db.Applications.Any(a => a.Name == appViewModel.Name || a.Slug == slug))
            {
                ModelState.AddModelError("Name", "Site already exists");
            }

            if (ModelState.IsValid)
            {
                Site site = null;

                try
                {
                    site = _siteManager.CreateSite(slug);

                    var app = new Application
                    {
                        Name = appViewModel.Name,
                        Slug = slug,
                        ServiceUrl = site.ServiceUrl,
                        SiteUrl = site.SiteUrl,
                        SiteName = slug,
                        Created = DateTime.Now,
                        UniqueId = Guid.NewGuid()
                    };

                    if (appViewModel.RepositoryType != RepositoryType.None)
                    {
                        IRepositoryManager repositoryManager = GetRepositoryManager(app);
                        repositoryManager.CreateRepository(appViewModel.RepositoryType);
                    }

                    db.Applications.Add(app);
                    db.SaveChanges();

                    return RedirectToAction("Details", new { slug = slug });
                }
                catch (Exception ex)
                {
                    if (site != null)
                    {
                        _siteManager.DeleteSite(slug);
                    }

                    ModelState.AddModelError("__FORM", ex.Message);
                }
            }

            PopulateRepositoryTypes();
            return View(appViewModel);
        }
Example #3
0
        private SettingsViewModel GetSettingsViewModel(Application application)
        {
            var settingsManager = new RemoteDeploymentSettingsManager(application.ServiceUrl);

            ViewBag.slug = application.Slug;

            return new SettingsViewModel {
                AppSettings = settingsManager.GetAppSettings().ToList(),
                ConnectionStrings = settingsManager.GetConnectionStrings().ToList()
            };
        }
 private static IRepositoryManager GetRepositoryManager(Application application)
 {
     return new RemoteRepositoryManager(application.ServiceUrl + "scm");
 }
 private IRepositoryManager GetRepositoryManager(Application application)
 {
     var repositoryManager = new RemoteRepositoryManager(application.ServiceUrl + "live/scm");
     repositoryManager.Credentials = _credentialProvider.GetCredentials();
     return repositoryManager;
 }
Example #6
0
        private SettingsViewModel GetSettingsViewModel(Application application)
        {
            var settingsManager = new RemoteDeploymentSettingsManager(application.ServiceUrl);

            ViewBag.slug = application.Slug;

            try
            {
                return new SettingsViewModel
                {
                    AppSettings = settingsManager.GetAppSettings().ToList(),
                    ConnectionStrings = settingsManager.GetConnectionStrings().ToList()
                };
            }
            catch (InvalidOperationException)
            {
                throw new InvalidOperationException("Settings API not available");
            }
        }