public void Apply(ReleaseContext rc)
        {
            switch (Noun)
            {
                case NounEnum.Host:
                case NounEnum.Hosts:
                    HostAction(rc);
                    break;

                case NounEnum.Build:
                case NounEnum.Builds:
                    BuildAction(rc);
                    break;

                case NounEnum.DeploymentUnit:
                case NounEnum.DeploymentUnits:
                    DeploymentUnitAction(rc);
                    break;

                case NounEnum.Package:
                case NounEnum.Packages:
                    PackageAction(rc);
                    break;

                case NounEnum.Artefact:
                case NounEnum.Artefacts:
                    ArtefactAction(rc);
                    break;
            }
        }
Exemple #2
0
 static void Main(string[] args)
 {
     try
     {
         var command = Args.Configuration.Configure<CommandObject>().CreateAndBind(args);
         using (var rc = new ReleaseContext())
         {
             rc.Configuration.LazyLoadingEnabled = true;
             rc.Configuration.ProxyCreationEnabled = true;
             command.Apply(rc);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     #if DEBUG
         Console.WriteLine(ex.StackTrace);
         var ex1 = ex.InnerException;
         while (ex1 != null)
         {
             Console.WriteLine(ex1.Message);
             Console.WriteLine(ex1.StackTrace);
             ex1 = ex1.InnerException;
         }
     #endif
     }
 }
        public void GetCurrentCatalogOfArtefacts_ReturnsSomething()
        {
            var rc = new ReleaseContext();

            var artefacts = rc.GetCurrentCatalogOfArtefacts();

            Assert.IsTrue(artefacts.Count() > 0);
        }
        public void ReleaseContextTests_CanAccessData()
        {
            var rc = new ReleaseContext();

            //var query = from dt in rc.Builds
            //            select dt;

            //Assert.IsTrue(query.Count() >= 0);
        }
Exemple #5
0
        public void PopulateData()
        {
            var rc = new ReleaseContext();

            var mt = new Model.Tests.Initial.BaseModelTest();
            mt.PopulateTestData();
            mt.Builds.ForEach(b => rc.Builds.Add(b));

            mt.DeployableArtefacts.ForEach(da =>
                {
                    rc.DeployableArtefacts.Add(da);
                });

            mt.Hosts.ForEach(h => rc.Hosts.Add(h));

            rc.SaveChanges();
        }
        public void ReleaseContextTests_CreateInstance()
        {
            var rc = new ReleaseContext();

            Assert.IsNotNull(rc, "ReleaseContext should not be null");
        }
 public AgentController()
 {
     rc = new ReleaseContext();
 }
 private void ArtefactAction(ReleaseContext rc)
 {
     switch (Action)
     {
         case ActionEnum.List:
             rc.GetDeployableArtefacts().ToList().ForEach(da => Console.WriteLine(da));
             break;
         case ActionEnum.Add:
             CheckArguments(arguments, "ArtefactName", "FileName", "HostRole");
             rc.AddArtefact(arguments[0], arguments[1], arguments[2]);
             Console.WriteLine("Artefact added");
             break;
         case ActionEnum.Update:
             throw new NotImplementedException();
             break;
         case ActionEnum.Delete:
             CheckArguments(arguments, "ArtefactName");
             rc.DeleteArtefact(arguments[0]);
             Console.WriteLine("Artefact deleted");
             break;
         default:
             throw new Exception("Action not valid for this Noun");
     }
 }
        private void PackageAction(ReleaseContext rc)
        {
            switch (Action)
            {
                case ActionEnum.List:
                    rc.GetReleasePackages().ToList().ForEach(rp => Console.WriteLine(rp));
                    break;
                case ActionEnum.Add:
                    CheckArguments(arguments, "ReleaseName", "ReleaseDate", "Environment");
                    var releasePackage = rc.AddReleasePackage(arguments[0], DateTime.Parse(arguments[1]), arguments[2]);
                    Console.WriteLine("Added Release Package: " + releasePackage);
                    break;

                case ActionEnum.AddArtefact:
                    CheckArguments(arguments, "PackageName", "ArtefactName", "BuildLabel");
                    var deploymentUnit = rc.AddArtefactToPackage(arguments[0], arguments[1], arguments[2]);
                    Console.WriteLine("Added Deployment Unit:" + deploymentUnit.ToString());
                    break;

                case ActionEnum.RemoveArtefact:
                    CheckArguments(arguments, "packageName", "artefactName");
                    rc.RemoveArtefactFromPackage(arguments[0], arguments[1]);
                    Console.WriteLine("Artefact removed");
                    break;

                case ActionEnum.Deploy:
                    CheckArguments(arguments, "PackageName", "EnvironmentName");
                    var releasingPackage = rc.DeployPackageToEnvironment(arguments[0], arguments[1]);
                    Console.WriteLine(releasingPackage);
                    break;

                default:
                    throw new Exception("Action not valid for this Noun");
            }
        }
        private void HostAction(ReleaseContext rc)
        {
            switch (Action)
            {
                case ActionEnum.List:
                    //rc.Hosts.ToList().ForEach(h => Console.WriteLine(h.ToString()));
                    rc.GetHosts().ToList().ForEach(h => Console.WriteLine(h));
                    break;

                case ActionEnum.Add:
                    CheckArguments(arguments, "HostName", "HostRole", "Environment");
                    rc.AddHost(arguments[0], arguments[1], arguments[2]);
                    Console.WriteLine("Host added");
                    break;

                case ActionEnum.Update:
                    throw new NotImplementedException();
                    break;

                case ActionEnum.Delete:
                    rc.DeleteHost(arguments[0]);
                    Console.WriteLine("Host deleted");
                    break;
                default:
                    throw new Exception("Action not valid for this Noun");
            }
        }
 private void DeploymentUnitAction(ReleaseContext rc)
 {
     throw new Exception("Directly manipulating Deployment Units is not allowed!");
 }
        private void BuildAction(ReleaseContext rc)
        {
            switch (Action)
            {
                case ActionEnum.List:
                    rc.GetBuilds().ToList().ForEach(b => Console.WriteLine(b.ToString()));
                    break;

                case ActionEnum.Add:
                    CheckArguments(arguments, "BuildLabel", "BuildDate", "DropLocation");
                    rc.AddBuild(arguments[0], DateTime.Parse(arguments[1]), arguments[2]);
                    Console.WriteLine("Build added");
                    break;

                case ActionEnum.Update:
                    throw new NotImplementedException();
                    break;

                case ActionEnum.Delete:
                    CheckArguments(arguments, "BuildLabel");
                    rc.DeleteBuild(arguments[0]);
                    Console.WriteLine("Build deleted");
                    break;
                default:
                    throw new Exception("Action not valid for this Noun");
            }
        }