public IHttpActionResult GetRols(int id) { CustomUser userInDB = null; userInDB = _context.CustomUsers.Include(x => x.People).FirstOrDefault(d => d.Id == id); if (userInDB == null) { return(NotFound()); } var rols = activeDirectory.getUserRols(userInDB).Select(x => new { x.Id, x.Name }); return(Ok(rols)); }
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 Put(int id, [FromBody] People person) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } People personInDB = _context.Person.FirstOrDefault(d => d.Id == id); if (personInDB == null) { return(NotFound()); } person = validator.CleanName(person); // log changes ChangesLogs log = new ChangesLogs(); log.AddChangesLog(personInDB, person, new List <string>() { "TypeDocument", "Document", "Ext", "Names", "FirstSurName", "SecondSurName", "BirthDate", "Gender", "Nationality", "UseMariedSurName", "UseSecondSurName", "MariedSurName", "PhoneNumber", "PersonalEmail", "OfficePhoneNumber", "OfficePhoneNumberExt", "HomeAddress", "UcbEmail", "AFP", "NUA", "Insurance", "InsuranceNumber" }); //--------------------------REQUIRED COLS-------------------------- personInDB.TypeDocument = cleanText(person.TypeDocument); personInDB.Document = person.Document; personInDB.Ext = cleanText(person.Ext); personInDB.Names = cleanText(person.Names); personInDB.FirstSurName = cleanText(person.FirstSurName); personInDB.SecondSurName = cleanText(person.SecondSurName); personInDB.BirthDate = person.BirthDate; personInDB.Gender = cleanText(person.Gender); personInDB.Nationality = cleanText(person.Nationality); personInDB.UseMariedSurName = (int)person.UseMariedSurName; personInDB.UseSecondSurName = person.UseSecondSurName; //------------------------NON REQUIRED COLS-------------------------- personInDB.MariedSurName = cleanText(person.MariedSurName); personInDB.PhoneNumber = person.PhoneNumber; personInDB.PersonalEmail = person.PersonalEmail; personInDB.OfficePhoneNumber = person.OfficePhoneNumber; personInDB.OfficePhoneNumberExt = person.OfficePhoneNumberExt; personInDB.HomeAddress = person.HomeAddress; personInDB.UcbEmail = person.UcbEmail; personInDB.AFP = cleanText(person.AFP); personInDB.NUA = person.NUA; personInDB.Insurance = person.Insurance; personInDB.InsuranceNumber = person.InsuranceNumber; //register updated time personInDB.UpdatedAt = DateTime.Now; var ADauth = new ADClass(); var usr = auth.getUser(Request); var rols = ADauth.getUserRols(usr); var canUpdatePending = false; foreach (var rol in rols) { if (rol.Name == "GPS Admin" || rol.Name == "Admin") { canUpdatePending = true; break; } } if (canUpdatePending) { personInDB.Pending = person.Pending; } _context.SaveChanges(); return(Ok(personInDB)); }
public IHttpActionResult Get(int id, [FromUri] string by = "Id") { People personInDB = null; switch (by) { case "Id": personInDB = _context.Person.FirstOrDefault(d => d.Id == id); break; case "Contract": var con = _context.ContractDetails.Include(x => x.People).FirstOrDefault(d => d.Id == id); personInDB = con == null ? null : con.People; break; } if (personInDB == null) { return(NotFound()); } var ADauth = new ADClass(); var usr = auth.getUser(Request); var rols = ADauth.getUserRols(usr); var canUpdatePending = false; foreach (var rol in rols) { if (rol.Name == "GPS Admin" || rol.Name == "Admin") { canUpdatePending = true; break; } } dynamic res = new JObject(); res.Id = personInDB.Id; res.CUNI = personInDB.CUNI; res.Document = personInDB.Document; res.TypeDocument = personInDB.TypeDocument; res.Ext = personInDB.Ext; res.FullName = personInDB.GetFullName(); res.FirstSurName = personInDB.FirstSurName; res.SecondSurName = personInDB.SecondSurName; res.Names = personInDB.Names; res.MariedSurName = personInDB.MariedSurName == null ? "" : personInDB.MariedSurName; res.UseMariedSurName = personInDB.UseMariedSurName; res.UseSecondSurName = personInDB.UseSecondSurName; res.Pending = personInDB.Pending; res.canUpdatePending = personInDB.Pending && canUpdatePending; var c = personInDB.GetLastContract(_context, date: DateTime.Now); res.Contract = c != null; res.ContractId = c == null ? (dynamic)"" : c.Id; res.PositionsId = c == null ? (dynamic)"" : c.Positions.Id; res.Positions = c == null ? "" : c.Positions.Name; res.PositionDescription = c == null ? "" : c.PositionDescription; res.AI = c == null ? false : c.AI; res.Dedication = c == null ? "" : c.Dedication; res.Linkage = c == null ? "" : c.Link.Value; res.DependencyId = c == null ? (dynamic)"" : c.Dependency.Id; res.Dependency = c == null ? "" : c.Dependency.Name; res.Branches = c == null ? null : _context.Branch.FirstOrDefault(x => x.Id == c.Dependency.BranchesId).Name; res.StartDatestr = c == null ? (dynamic)"" : c.StartDate.ToString("dd MMM yyyy", new CultureInfo("es-ES")); res.EndDatestr = c == null ? (dynamic)"" : c.EndDate == null ? "" : c.EndDate.Value.ToString("dd MMM yyyy", new CultureInfo("es-ES")); res.StartDate = c == null ? (dynamic)"" : c.StartDate.ToString("MM/dd/yyyy"); res.EndDate = c == null ? (dynamic)"" : c.EndDate == null ? "" : c.EndDate.Value.ToString("MM/dd/yyyy"); res.Gender = personInDB.Gender; res.BirthDatestr = personInDB.BirthDate.ToString("dd MMM yyyy", new CultureInfo("es-ES")); res.BirthDate = personInDB.BirthDate.ToString("MM/dd/yyyy"); res.Nationality = personInDB.Nationality; res.AFP = personInDB.AFP; res.NUA = personInDB.NUA; res.Insurance = personInDB.Insurance; res.UcbEmail = personInDB.UcbEmail; res.PersonalEmail = personInDB.PersonalEmail; res.Age = DateTime.Now.Year - personInDB.BirthDate.Year; var u = _context.CustomUsers.FirstOrDefault(x => x.PeopleId == personInDB.Id); res.UserName = u == null ? "" : u.UserPrincipalName; return(Ok(res)); }