Inheritance: System.EventArgs
Ejemplo n.º 1
0
        private void OnCreateContainer(object sender, ContainerEventArgs e)
        {
            foreach (var workSpaceType in e.Type.WorkSpaceTypeWithService(Name))
            {
                var instanceName = e.Container.UniqueInstanceName(workSpaceType);

                var repository = SVNRepositoryManager.Create(_repoPath, instanceName);
                if (repository == null)
                {
                    Logger.Log(String.Format("Service {0} -> Create folder \"{1}\" fail", Name, _repoPath));
                    continue;
                }
                if (!repository.Initialize())
                {
                    Logger.Log(String.Format("Service {0} -> Initialize instance \"{1}\" fail", Name, _repoPath));
                    continue;
                }

                var instance = _svnAuthorization.CreateInstance(instanceName);
                foreach (var role in e.Type.Bindings.SelectMany(binding => binding.Roles))
                {
                    var groupName = e.Container.UniqueGroupName(role.RoleTypeName);
                    _svnAuthorization.CreateGroup(groupName);
                    foreach (var rule in role.Rules)
                    {
                        var permissions = rule.Permissions.Where(p => p.ServiceName == Name).Select(p => p.Name);
                        foreach (var permission in permissions)
                            instance.AddGroupPermission(groupName, permission);
                    }
                }

            }

            _svnAuthorization.Save();
        }
Ejemplo n.º 2
0
 private void Deletecontainer(object sender, ContainerEventArgs e)
 {
     foreach (var repositoryName in e.Type.WorkSpaceTypeWithService(Name).Select(workSpaceType => e.Container.UniqueInstanceName(workSpaceType)))
     {
         FileSystem.DeleteRepository(repositoryName);
         Authorization.DeleteRepository(repositoryName);
     }
 }
Ejemplo n.º 3
0
        private void OnCreateContainer(object sender, ContainerEventArgs e)
        {
            foreach (var workSpaceType in e.Type.WorkSpaceTypeWithService(Name))
            {
                var contextType = workSpaceType;
                var envName = e.Container.UniqueInstanceName(workSpaceType);
                var tracEnvironment = TracEnvironmentManager.Create(_envPath, envName);

                if (tracEnvironment == null)
                {
                    Logger.Log(String.Format("Service {0} -> Create folder \"{1}\" fail", Name, envName));
                    continue;
                }

                if (!tracEnvironment.Initialize(workSpaceType.Services.Where(s => s.Name != Name).Select(
                    s => new KeyValuePair<string, string>(s.Name,
                        ServiceFactory.InstancePath(s.Name, e.Container, contextType))
                        )))
                {
                    Logger.Log(String.Format("Service {0} -> Initialize instance \"{1}\" fail", Name, envName));
                    continue;
                }

                var tracPermissions = new TracPermissionManager(tracEnvironment.EnvironmentPath);
                tracPermissions.RemoveAll();
                foreach (var role in e.Type.Bindings.SelectMany(binding => binding.Roles))
                {
                    var groupName = e.Container.UniqueGroupName(role.RoleTypeName);
                    foreach (var rule in role.Rules)
                    {
                        var permissions = rule.Permissions.Where(p => p.ServiceName == Name).Select(p => p.Name);
                        foreach (var permission in permissions)
                            tracPermissions.Add(groupName, permission);
                    }
                }
            }
        }
Ejemplo n.º 4
0
 private void OnDeleteContainer(object sender, ContainerEventArgs e)
 {
     foreach (var workSpaceType in e.Type.WorkSpaceTypeWithService(Name))
     {
         var envName = e.Container.UniqueInstanceName(workSpaceType);
         if (!TracEnvironmentManager.Delete(_envPath, envName))
         {
             Logger.Log(String.Format("Service {0} -> Delete instance \"{1}\" fail", Name, envName));
             continue;
         }
     }
 }
Ejemplo n.º 5
0
        private void InvokeOnDeleteContainer(Container container, ContainerType containerType)
        {
            var eventArgs = new ContainerEventArgs(container, containerType);

            if (_onDeleteContainer != null)
                try
                {
                    _onDeleteContainer(this, eventArgs);
                }catch(Exception e)
                {
                    DataBaseManager.Logger.Log(String.Format("InvokeOnDeleteContainer fail - {0}", e.Message));
                }
        }
Ejemplo n.º 6
0
        private void OnDeleteContainer(object sender, ContainerEventArgs e)
        {
            foreach (var workSpaceType in e.Type.WorkSpaceTypeWithService(Name))
            {
                var instanceName = e.Container.UniqueInstanceName(workSpaceType);
                SVNRepositoryManager.Delete(_repoPath, instanceName);
                _svnAuthorization.RemoveInstance(instanceName);

                foreach (var role in e.Type.Bindings.SelectMany(binding => binding.Roles))
                    _svnAuthorization.RemoveGroups(e.Container.UniqueGroupName(role.RoleTypeName));

            }
            _svnAuthorization.Save();
        }
Ejemplo n.º 7
0
        // need to create a logger
        private void OnCreateContainer(object sender, ContainerEventArgs e)
        {
            if (!e.Services.ContainsKey(Name)) return;

            var workspacesType = e.Services[Name];

            foreach (var workSpaceTypeView in workspacesType)
            {
                var pathRepo = Path.Combine(PathService, "repositories");
                //TODO AuthorizationManager Create the name
                var repoName = String.Format("{0}{1}{2}", e.Strucuture, e.Container.Id, workSpaceTypeView.Name);

                var repository = SVNRepositoryManager.Create(pathRepo, repoName);
                if (repository == null)
                    continue; //Servicelogger;
                if (!repository.Initialize())
                    continue; //Servicelogger;
            }
        }
Ejemplo n.º 8
0
        private void InvokeOnCreateContainer(Container container)
        {
            var dicionay = new Dictionary<string, IEnumerable<WorkSpaceTypeView>>();
            foreach (var service in _dbContext.Services)
            {
                var serviceContext = service;
                var wk = container.ContainerPrototype.WorkSpaceTypes.Where(
                    w => w.Services.Contains(serviceContext)
                    ).Select(
                        w => w.Convert()
                    );
                if (wk.Any())
                    dicionay.Add(service.Name, wk.ToList());
            }

            var eventArgs = new ContainerEventArgs()
                                {
                                    Strucuture = container.ContainerPrototype.StructureId,
                                    Container = container.Convert(),
                                    Services = dicionay
                                };
            var handler = _onCreateContainer;
            if (handler != null) handler(this, eventArgs);
        }