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");
            }
        }