CodeGarten.Data.Access.StructureManager.Publish C# (CSharp) Méthode

Publish() public méthode

public Publish ( long id ) : void
id long
Résultat void
        public void Publish(long id)
        {
            var structure = Get(id);
            var cps = _dbManager.ContainerType.GetAll(id);

            if (cps.Count() == 0)
                throw new InvalidOperationException("A structure must contain at least one container type.");

            foreach (var cp in cps)
            {
                if (cp.Bindings.Count == 0)
                    throw new InvalidOperationException(
                        String.Format(
                            "A container type must contain at least one workspace. Error occured at container type '{0}'.", cp.Name));
                foreach (var binding in cp.Bindings)
                {
                    if (binding.Roles.Count == 0)
                        throw new InvalidOperationException(
                            String.Format(
                                "A workspace must contain at least one role type. Error occured at container type '{0}', workspace '{1}'.",
                                binding.ContainerTypeName, binding.WorkSpaceTypeName));
                    foreach (var role in binding.Roles.Where(role => role.Rules.Count == 0))
                        throw new InvalidOperationException(
                            String.Format(
                                "A role type must contain at least one rule. Error occured at container type '{0}', workspace '{1}', role type '{2}'.",
                                binding.ContainerTypeName, binding.WorkSpaceTypeName, role.RoleTypeName));
                }
            }

            structure.Developing = false;
            _dbManager.DbContext.SaveChanges();
        }