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));
        }
Esempio n. 2
0
        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));
        }