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)); }
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)); } }