コード例 #1
0
        public void sdk_User_Rule()
        {
            long         area  = eqpt.LoadOrAdd <Areas>("API B");
            long         grupo = eqpt.LoadOrAdd <Groups>("Engenharia");
            Access_Rules rule  = eqpt.LoadOrSet(0, new Access_Rules()
            {
                name = "Minha Regra", type = 1, priority = 0
            });

            eqpt.SetGroupAreaTime(rule.id, grupo, area, 1);
            eqpt.Set(new User_Groups()
            {
                user_id = 1, group_id = grupo
            });
        }
コード例 #2
0
        public void sdk_Generic_Rules()
        {
            eqpt.ClearWigandPortal();    // Inativa as leitoras e relês
            eqpt.ClearAreasTimesRules(); // Limpa todas as regras!

            // Parametros da Autorização: supondo o acesso a duas áreas
            int  nLeitoraWigandEntrada = 2;
            int  nLeitoraWigandSaida   = 3;
            int  nRelePortal           = 2;
            long nAreaFora             = eqpt.LoadOrAdd <Groups>("Hall");
            long nAreaDentro           = eqpt.LoadOrAdd <Groups>("Area Engenharia");
            long nGrupo = eqpt.LoadOrAdd <Groups>("Grupo Engenharia");

            // As duas linhas seguintes abaixo representão toda a logica existente em seguida
            //if(eqpt.SetWigandRuleAreaGroupTime(nLeitoraWigandEntrada, nRelePortal, cAreaHall, cAreaEngenharia, cGrupo, 1))
            //    eqpt.SetWigandRuleAreaGroupTime(nLeitoraWigandSaida, nRelePortal, cAreaEngenharia, cAreaHall, cGrupo, 1);

            // Leitora 2, libera o Relê 2, cuja oriem é o Hall e dá acesso a Engenharia
            if (eqpt.SetWigandPortal(nLeitoraWigandEntrada, nRelePortal, nAreaFora, nAreaDentro))
            {
                // Cria uma nova regra de autorização: Tipo 1 é de autorizar, e a prioridade é a ordem a ser executado
                Access_Rules rule = eqpt.LoadOrSet(0, new Access_Rules()
                {
                    name = "(auto Dentro)", type = 1, priority = 0
                });

                // Define que as a regra de acesso a 'Engenharia'
                eqpt.Set(new Area_Access_Rules()
                {
                    access_rule_id = rule.id, area_id = nAreaDentro
                });                                                                                    // liberando por área
                // eqpt.Set(new Portal_Access_Rules() { access_rule_id = rule.id, portal_id = nRelePortal }); // liberando por portal

                // Dá acesso as pessoas do grupo engenharia a regra de acesso
                eqpt.Set(new Group_Access_Rules()
                {
                    access_rule_id = rule.id, group_id = nGrupo
                });

                // Libera o horario padrão (id:1) para o acesso da regra
                eqpt.Set(new Access_Rule_Time_Zones()
                {
                    access_rule_id = rule.id, time_zone_id = 1
                });

                // Agora para sair, usando outro leitor é preciso criar novas regras e acessos
                if (eqpt.SetWigandPortal(nLeitoraWigandSaida, nRelePortal, nAreaDentro, nAreaFora))
                {
                    // Cria uma nova regra de autorização: Tipo 1 é de autorizar, e a prioridade é a ordem a ser executado
                    Access_Rules ruleOut = eqpt.LoadOrSet(0, new Access_Rules()
                    {
                        name = "(auto Fora)", type = 1, priority = 0
                    });

                    // Define que as a regra de acesso ao 'Hall'
                    eqpt.Set(new Area_Access_Rules()
                    {
                        access_rule_id = ruleOut.id, area_id = nAreaFora
                    });                                                                                     // liberando por área
                    // eqpt.Set(new Portal_Access_Rules() { access_rule_id = ruleOut.id, portal_id = nRelePortal }); // liberando por portal

                    // Dá acesso as pessoas do grupo engenharia a regra de acesso
                    eqpt.Set(new Group_Access_Rules()
                    {
                        access_rule_id = ruleOut.id, group_id = nGrupo
                    });

                    // Libera o horario padrão (id:1) para o acesso da regra de saida
                    eqpt.Set(new Access_Rule_Time_Zones()
                    {
                        access_rule_id = ruleOut.id, time_zone_id = 1
                    });
                }
            }
            else
            {
                Assert.Inconclusive("Eoo ao definir a Leitora ao Portal");
            }

            //Console.WriteLine("\r\nCards:");
            //var cards = eqpt.List<Cards>();
            //foreach (var i in cards)
            //    Console.WriteLine(i.id + ": " + i.value + " user: "******"\r\nUser Card Test: " + user.id + " - " + user.name);

            Console.WriteLine("\r\nGrupos:");
            foreach (var i in eqpt.List <Groups>())
            {
                Console.WriteLine(i.id + ": " + i.name);
            }

            Console.WriteLine("\r\nAreas:");
            foreach (var i in eqpt.List <Areas>())
            {
                Console.WriteLine(i.id + ": " + i.name);
            }

            Console.WriteLine("\r\nPortals:");
            foreach (var i in eqpt.List <Portals>())
            {
                Console.WriteLine(i.id + ": " + i.name + (i.name.EndsWith("inativo") ? "" : (" - Areas: " + i.area_from_id + " => " + i.area_to_id)));
            }

            Console.WriteLine("\r\nAccess Rules:");
            foreach (var i in eqpt.List <Access_Rules>())
            {
                Console.WriteLine(i.id + ": " + i.name + " - tipo " + i.type + " prioridade " + i.priority);
            }

            Console.WriteLine("\r\nRules Groups:");
            foreach (var i in eqpt.List <Group_Access_Rules>())
            {
                Console.WriteLine("Group: " + i.group_id + " Rule: " + i.access_rule_id);
            }

            Console.WriteLine("\r\nArea Access Rules:");
            foreach (var i in eqpt.List <Area_Access_Rules>())
            {
                Console.WriteLine("Area: " + i.area_id + " Rule: " + i.access_rule_id);
            }

            Console.WriteLine("\r\nAccess Rule Time Zone:");
            foreach (var i in eqpt.List <Access_Rule_Time_Zones>())
            {
                Console.WriteLine("Time: " + i.time_zone_id + " Rule: " + i.access_rule_id);
            }

            Console.WriteLine("\r\nPortal Access Rules:");
            foreach (var i in eqpt.List <Portal_Access_Rules>())
            {
                Console.WriteLine("Portal: " + i.portal_id + " Rule: " + i.access_rule_id);
            }

            Console.WriteLine("\r\nPortal Script Parameters:");
            foreach (var i in eqpt.List <Portal_Script_Parameters>())
            {
                Console.WriteLine("script_parameter_id: " + i.script_parameter_id + ": script_instance_id: " + i.script_instance_id + " sequence: " + i.sequence + " value: " + i.value);
            }

            Console.WriteLine("\r\nActions:");
            foreach (var i in eqpt.List <Actions>())
            {
                Console.WriteLine(i.id + ": " + i.name + " - action: " + i.action + " parameters: " + i.parameters);
            }
        }