public IHttpActionResult Post([FromBody] Civil civil) { var user = auth.getUser(Request); //La búsqueda devolverá usuarios según la regional del usuario que haga la búsqueda var BP = Civil.findBPInSAP(civil.SAPId, user, _context); if (!ModelState.IsValid) { return(BadRequest()); } //todo validate BranchesId here if (BP == null) { return(Unauthorized()); } var a = AD.getUserBranches(user).Select(x => x.Id); var b = BP.Select(x => x.BranchesId); if (!a.Intersect(b).Any()) { return(Unauthorized()); } var exists = _context.Civils.FirstOrDefault(x => x.SAPId == civil.SAPId); if (exists != null) { //return Ok("Este Socio de Negocios ya existe como Civil."); return(Conflict()); } //Devuelve 1er Branch que tiene el usuario al que se le da el alta. Join con tabla crd8 de SAP y branches var newBranchBP = b.FirstOrDefault(); civil.BranchesId = newBranchBP; civil.Id = Civil.GetNextId(_context); civil.CreatedBy = user.Id; //Guarda en la tabla Civil de PERSONAS _context.Civils.Add(civil); _context.SaveChanges(); return(Created(new Uri(Request.RequestUri + "/" + civil.Id), civil)); }
public IHttpActionResult Post([FromBody] Civil civil) { var user = auth.getUser(Request); var BP = Civil.findBPInSAP(civil.SAPId, user, _context); if (!ModelState.IsValid) { return(BadRequest()); } //todo validate BranchesId here if (BP == null) { return(Unauthorized()); } var a = AD.getUserBranches(user).Select(x => x.Id); var b = BP.Select(x => x.BranchesId); if (!a.Intersect(b).Any()) { return(Unauthorized()); } var exists = _context.Civils.FirstOrDefault(x => x.SAPId == civil.SAPId); if (exists != null) { //return Ok("Este Socio de Negocios ya existe como Civil."); return(Conflict()); } civil.Id = Civil.GetNextId(_context); civil.CreatedBy = user.Id; _context.Civils.Add(civil); _context.SaveChanges(); return(Created(new Uri(Request.RequestUri + "/" + civil.Id), civil)); }