public async Task <IActionResult> VincularCliente([FromBody] VincularClienteRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var dist = _context.Distribuidor.Where(d => d.id == request.DistId).FirstOrDefault();

            if (dist == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "El distribuidor especificado no existe."
                }));
            }

            var clie = _context.Cliente.Where(c => c.id == request.ClienteId).FirstOrDefault();

            if (clie == null)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "El cliente especificado no existe."
                }));
            }

            List <ClienteDistribuidor> validacion = _context.ClienteDistribuidor
                                                    .Where(cd => cd.ClienteId == clie.id && cd.DistribuidorId == dist.id).ToList();

            if (validacion.Count > 0)
            {
                return(BadRequest(new Response
                {
                    IsSuccess = false,
                    Message = "Los dos usuarios ya estan vinculados."
                }));
            }

            _context.ClienteDistribuidor.Add(new ClienteDistribuidor
            {
                ClienteId      = clie.id,
                DistribuidorId = dist.id,
            });

            await _context.SaveChangesAsync();

            return(NoContent());
        }
Exemplo n.º 2
0
        public async Task <Response> VincularCliente(
            string urlBase,
            string servicePrefix,
            string controller,
            VincularClienteRequest request)
        {
            try
            {
                string        requestString = JsonConvert.SerializeObject(request);
                StringContent content       = new StringContent(requestString, Encoding.UTF8, "application/json");
                HttpClient    client        = new HttpClient
                {
                    BaseAddress = new Uri(urlBase)
                };

                string url = $"{servicePrefix}{controller}";
                HttpResponseMessage response = await client.PostAsync(url, content);

                string result = await response.Content.ReadAsStringAsync();

                if (!response.IsSuccessStatusCode)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = result,
                    });
                }

                return(new Response
                {
                    IsSuccess = true,
                    Result = "exitoso"
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }