Example #1
0
        public IHttpActionResult GetSegments(int id)
        {
            CustomUser userInDB = null;

            userInDB = _context.CustomUsers.Include(x => x.People).FirstOrDefault(d => d.Id == id);

            if (userInDB == null)
            {
                return(NotFound());
            }

            var br = activeDirectory.getUserBranches(userInDB).Select(x => new { x.Id, x.Abr, x.Name });

            return(Ok(br));
        }
        public IHttpActionResult FiltrarUO()
        {
            var user      = auth.getUser(Request);
            var brs       = activeDirectory.getUserBranches(user);
            var ubranches = brs.Select(x => x.Id).ToList();

            var query = "select uo.\"Id\", uo.\"Name\", uo.\"Cod\"" +
                        "\r\nfrom " + CustomSchema.Schema + ".\"OrganizationalUnit\" uo" +
                        "\r\n where uo.\"Active\" = true " +
                        "order by uo.\"Cod\"";

            var list     = _context.Database.SqlQuery <FiltroBG>(query).ToList();
            var filtered =
                from Lc in list.ToList()
                join branches in ubranches on Lc.BranchesId equals branches
                select Lc;

            return(Ok(list));
        }
        public IHttpActionResult GetMenu()
        {
            var start = DateTime.Now;
            int userid;
            IEnumerable <string> headerId;

            if (!Request.Headers.TryGetValues("id", out headerId))
            {
                return(BadRequest());
            }
            if (!Int32.TryParse(headerId.FirstOrDefault(), out userid))
            {
                return(BadRequest());
            }

            var user = _context.CustomUsers.Include(x => x.People).FirstOrDefault(cu => cu.Id == userid);

            if (user == null)
            {
                return(Unauthorized());
            }
            var uexist = DateTime.Now;

            var rls      = activeDirectory.getUserRols(user).Select(x => x.Id);
            var ugetrols = DateTime.Now;

            var br     = activeDirectory.getUserBranches(user);
            var ugetbr = DateTime.Now;

            List <Access> access;

            // activeDirectory.AddUserToGroup("*****@*****.**", "Personas.Segmentos.Cochabamba");
            //if admin return all
            if (activeDirectory.memberOf(user, "Personas.Admin"))
            {
                access = _context.Accesses
                         .Include(a => a.Resource.Module)
                         .Include(a => a.Resource).ToList();
            }
            // else search all the user access
            else
            {
                access = _context.RolshaAccesses.Include(a => a.Access)
                         .Include(a => a.Rol)
                         .Include(a => a.Access.Resource.Module)
                         .Include(a => a.Access.Resource).ToList()
                         .Where(r => rls.Contains(r.Rolid)).Select(a => a.Access).ToList();
            }

            List <dynamic> res           = new List <dynamic>();
            var            listModules   = access.Select(a => a.Resource.Module).Distinct().OrderBy(x => x.Id);
            var            listResources = access.Select(a => a.Resource).Distinct().OrderBy(x => x.Id);

            foreach (var module in listModules)
            {
                List <dynamic> children = new List <dynamic>();
                foreach (var child in listResources.Where(c => c.ModuleId == module.Id))
                {
                    var     listmethods = access.Where(a => a.ResourceId == child.Id).Select(a => a.Method).Distinct();
                    dynamic c           = new JObject();
                    c.name    = child.Name;
                    c.path    = child.Path;
                    c.methods = JArray.FromObject(listmethods.ToArray());
                    children.Add(c);
                }

                dynamic r = new JObject();
                r.name      = module.Name;
                r.icon      = module.Icon;
                r.collapsed = true;
                r.children  = JArray.FromObject(children.ToArray());
                res.Add(r);
            }
            var caljson = DateTime.Now;

            var t1 = uexist - start;
            var t2 = ugetrols - uexist;
            var t3 = ugetbr - ugetrols;
            var t4 = caljson - ugetbr;

            return(Ok(res));
        }
Example #4
0
        public IHttpActionResult CivilbyBranch(int id)
        {
            var B1 = B1Connection.Instance();

            if (id != 0)
            {
                // we get the Branches from SAP
                var query = "select c.\"Id\", c.\"FullName\",c.\"SAPId\",c.\"NIT\",c.\"Document\",c.\"CreatedBy\",ocrd.\"BranchesId\" " +
                            "from " + CustomSchema.Schema + ".\"Civil\" c" +
                            " inner join " +
                            " (select ocrd.\"CardCode\", br.\"Id\" \"BranchesId\"" +
                            " from " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".ocrd" +
                            " inner join " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".crd8" +
                            " on ocrd.\"CardCode\" = crd8.\"CardCode\"" +
                            " inner join " + CustomSchema.Schema + ".\"Branches\" br" +
                            " on br.\"CodigoSAP\" = crd8.\"BPLId\"" +
                            " where ocrd.\"validFor\" = \'Y\'" +
                            " and crd8.\"DisabledBP\" = \'N\') ocrd" +
                            " on c.\"SAPId\" = ocrd.\"CardCode\"" +
                            " where ocrd.\"BranchesId\"=" + id + ";";
                var rawresult = _context.Database.SqlQuery <Civil>(query);

                var user = auth.getUser(Request);

                var res = auth.filerByRegional(rawresult.AsQueryable(), user);

                return(Ok(res));
            }
            else
            {
                var    user   = auth.getUser(Request);
                var    brs    = AD.getUserBranches(user);
                var    brsIds = brs.Select(x => x.Id);
                string StrIds = "";
                int    n      = brsIds.Count();
                int    i      = 0;
                foreach (var brid in brsIds)
                {
                    i++;
                    StrIds += brid + "" + (i == n?"":", ");
                }


                var query = "select c.\"Id\", c.\"FullName\",c.\"SAPId\",c.\"NIT\",c.\"Document\",c.\"CreatedBy\",ocrd.\"BranchesId\" " +
                            "from " + CustomSchema.Schema + ".\"Civil\" c" +
                            " inner join " +
                            " (select ocrd.\"CardCode\", br.\"Id\" \"BranchesId\"" +
                            " from " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".ocrd" +
                            " inner join " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".crd8" +
                            " on ocrd.\"CardCode\" = crd8.\"CardCode\"" +
                            " inner join " + CustomSchema.Schema + ".\"Branches\" br" +
                            " on br.\"CodigoSAP\" = crd8.\"BPLId\"" +
                            " where ocrd.\"validFor\" = \'Y\'" +
                            " and crd8.\"DisabledBP\" = \'N\') ocrd" +
                            " on c.\"SAPId\" = ocrd.\"CardCode\"" +
                            " where ocrd.\"BranchesId\" in (" + StrIds + ");";
                var rawresult = _context.Database.SqlQuery <Civil>(query);
                var res       = auth.filerByRegional(rawresult.AsQueryable(), user);
                return(Ok(res));
            }
        }