Ejemplo n.º 1
0
        private static HashSet <int> GetFeaturesByUserId(string userId)
        {
            HashSet <int> result = new HashSet <int>();

            var listProfiles = DBUserProfiles.GetByUserId(userId);

            if (listProfiles != null && listProfiles.Count() > 0)
            {
                var listProfilesId = listProfiles.Select(s => s.IdPerfil).ToList();
                foreach (var profileId in listProfilesId)
                {
                    var listAccessProfile = DBAccessProfiles.GetByProfileModelId(profileId).ToList();
                    if (listAccessProfile != null && listAccessProfile.Count() > 0)
                    {
                        var listProfileFeatures = new HashSet <int>();
                        listProfileFeatures = listAccessProfile.Select(s => s.Funcionalidade).ToHashSet <int>();
                        result.UnionWith(listProfileFeatures);
                    }
                }
            }

            var listUserAccess = DBUserAccesses.GetByUserId(userId);

            if (listUserAccess != null && listUserAccess.Count() > 0)
            {
                var listFeatures = new HashSet <int>();
                listFeatures = listUserAccess.Select(s => s.Funcionalidade).ToHashSet <int>();
                result.UnionWith(listFeatures);
            }

            return(result);
        }
Ejemplo n.º 2
0
        public static PerfisUtilizador Create(PerfisUtilizador ObjectToCreate)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    //Add Profile User
                    ObjectToCreate.DataHoraCriação = DateTime.Now;
                    ctx.PerfisUtilizador.Add(ObjectToCreate);

                    //Add ProfileAccesses to UserAccesses
                    List <AcessosPerfil> ProfileAccessesToAdd = DBAccessProfiles.GetByProfileModelId(ObjectToCreate.IdPerfil);

                    ProfileAccessesToAdd.ForEach(pa =>
                    {
                        AcessosUtilizador AU = DBUserAccesses.GetById(ObjectToCreate.IdUtilizador, pa.Funcionalidade);
                        if (AU != null)
                        {
                            ctx.AcessosUtilizador.Remove(AU);
                            ctx.SaveChanges();
                        }

                        AU = new AcessosUtilizador()
                        {
                            IdUtilizador      = ObjectToCreate.IdUtilizador,
                            Funcionalidade    = pa.Funcionalidade,
                            Leitura           = pa.Leitura,
                            Inserção          = pa.Inserção,
                            Modificação       = pa.Modificação,
                            Eliminação        = pa.Eliminação,
                            DataHoraCriação   = DateTime.Now,
                            UtilizadorCriação = pa.UtilizadorCriação
                        };

                        ctx.AcessosUtilizador.Add(AU);
                        ctx.SaveChanges();
                    });
                    ctx.SaveChanges();
                }

                return(ObjectToCreate);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }