public ProfesionalVenta Consultar(int id)
        {
            ProfesionalVenta profesional = context.ProfesionalVentas.Find(id);

            profesional.IdUsuario = usuarioService.Consultar(profesional.IdUsuario).Id;
            return(profesional);
        }
 public GuardarProfesionalVentaResponse Guardar(ProfesionalVenta profesional)
 {
     try
     {
         var usuario = usuarioService.Consultar(profesional.IdUsuario);
         if (usuario != null)
         {
             profesional.Usuario   = usuario;
             profesional.IdUsuario = usuario.Id;
         }
         else
         {
             var response = usuarioService.Guardar(profesional.Usuario);
             if (response.Error)
             {
                 return(new GuardarProfesionalVentaResponse(usuarioService.Guardar(profesional.Usuario).Mensaje, true));
             }
             usuarioService.Guardar(profesional.Usuario);
             profesional.IdUsuario = response.Usuario.Id;
         }
         context.ProfesionalVentas.Add(profesional);
         context.SaveChanges();
         return(new GuardarProfesionalVentaResponse(profesional, "Profesional de Ventas guardado con éxito", false));
     }
     catch (System.Exception e)
     {
         return(new GuardarProfesionalVentaResponse($"Ha ocurrido un error en el servidor. {e.Message} Por favor, vuelva a internar más tarde", true));
     }
 }
        private ProfesionalVenta MapearAProfesionalVenta(ProfesionalVentaInputModel profesionalVentaInputModel)
        {
            var profesionalVenta = new ProfesionalVenta
            {
                Usuario = profesionalVentaInputModel.Usuario
            };

            return(profesionalVenta);
        }
        public ActionResult <ProfesionalVentaViewModel> Post(ProfesionalVentaInputModel profesionalVentaInputModel)
        {
            ProfesionalVenta profesionalVenta = MapearAProfesionalVenta(profesionalVentaInputModel);
            var response = profesionalVentaService.Guardar(profesionalVenta);

            if (response.Error)
            {
                ModelState.AddModelError("Error al registrar al profesional de ventas", response.Mensaje);
                var detallesProblema = new ValidationProblemDetails(ModelState)
                {
                    Status = StatusCodes.Status400BadRequest
                };
                return(BadRequest(detallesProblema));
            }
            return(Ok(response.ProfesionalVenta));
        }
 public EditarProfesionalVentaResponse Editar(string id, ProfesionalVenta profesionalActualizado)
 {
     try
     {
         var profesionalAActualizar = context.ProfesionalVentas.Find(id);
         if (profesionalAActualizar != null)
         {
             profesionalAActualizar.Usuario = profesionalActualizado.Usuario;
             context.ProfesionalVentas.Update(profesionalAActualizar);
             context.SaveChanges();
             return(new EditarProfesionalVentaResponse(profesionalAActualizar, "Profesional  editado correctamente", false));
         }
         else
         {
             return(new EditarProfesionalVentaResponse("Profesional de Ventas no encontrado", true));
         }
     }
     catch (Exception e)
     {
         return(new EditarProfesionalVentaResponse($"Ocurrió un error al editar el profesional {e.Message}", true));
     }
 }
 public GuardarProfesionalVentaResponse(ProfesionalVenta profesional, string mensaje, bool error)
 {
     ProfesionalVenta = profesional;
     Mensaje          = mensaje;
     Error            = error;
 }
 public ProfesionalVentaViewModel(ProfesionalVenta profesionalVenta)
 {
     Usuario            = profesionalVenta.Usuario;
     IdProfesionalVenta = profesionalVenta.Id;
 }