public object ActualizarTransportista(Sam3_Transportista cambios, Sam3_Usuario usuario)
        {
            try
            {
                using (SamContext ctx = new SamContext())
                {
                    if (!ctx.Sam3_Transportista.Where(x => x.Nombre == cambios.Nombre && x.Activo).AsParallel().Any())
                    {
                        Sam3_Transportista registroEnBd = ctx.Sam3_Transportista.Where(x => x.TransportistaID == cambios.TransportistaID)
                                                          .AsParallel().SingleOrDefault();

                        registroEnBd.Activo = registroEnBd.Activo != null && cambios.Activo != registroEnBd.Activo ?
                                              cambios.Activo : registroEnBd.Activo;
                        registroEnBd.ContactoID = cambios.ContactoID != null && cambios.ContactoID != registroEnBd.ContactoID ?
                                                  cambios.ContactoID : registroEnBd.ContactoID;
                        registroEnBd.Descripcion = cambios.Descripcion != null && cambios.Descripcion != registroEnBd.Descripcion ?
                                                   cambios.Descripcion : registroEnBd.Descripcion;
                        registroEnBd.Direccion = cambios.Direccion != null && cambios.Direccion != registroEnBd.Direccion ?
                                                 cambios.Direccion : registroEnBd.Direccion;
                        registroEnBd.Nombre = cambios.Nombre != null && cambios.Nombre != registroEnBd.Nombre ?
                                              cambios.Nombre : registroEnBd.Nombre;
                        registroEnBd.Telefono = cambios.Telefono != null && cambios.Telefono != registroEnBd.Telefono ?
                                                cambios.Telefono : registroEnBd.Telefono;
                        registroEnBd.TransportistaID = cambios.TransportistaID != null && cambios.TransportistaID != registroEnBd.TransportistaID ?
                                                       cambios.TransportistaID : registroEnBd.TransportistaID;
                        registroEnBd.UsuarioModificacion = usuario.UsuarioID;
                        registroEnBd.FechaModificacion   = DateTime.Now;

                        ctx.SaveChanges();

                        TransactionalInformation result = new TransactionalInformation();
                        result.ReturnMessage.Add("OK");
                        result.ReturnCode     = 200;
                        result.ReturnStatus   = true;
                        result.IsAuthenicated = true;

                        return(result);
                    }
                    else
                    {
                        throw new Exception("Transportista existente");
                    }
                }
            }
            catch (Exception ex)
            {
                //-----------------Agregar mensaje al Log -----------------------------------------------
                LoggerBd.Instance.EscribirLog(ex);
                //-----------------Agregar mensaje al Log -----------------------------------------------
                TransactionalInformation result = new TransactionalInformation();
                result.ReturnMessage.Add(ex.Message);
                result.ReturnCode     = 500;
                result.ReturnStatus   = false;
                result.IsAuthenicated = true;

                return(result);
            }
        }
        public object InsertarTransportista(Sam3_Transportista nuevoRegistro, Sam3_Usuario usuario)
        {
            try
            {
                using (SamContext ctx = new SamContext())
                {
                    if (!ctx.Sam3_Transportista.Where(x => x.Nombre == nuevoRegistro.Nombre && x.Activo).AsParallel().Any())
                    {
                        nuevoRegistro.Activo = true;
                        nuevoRegistro.UsuarioModificacion = usuario.UsuarioID;
                        nuevoRegistro.FechaModificacion   = DateTime.Now;

                        ctx.Sam3_Transportista.Add(nuevoRegistro);

                        ctx.SaveChanges();

                        return(new Transportista {
                            Nombre = nuevoRegistro.Nombre, TransportistaID = nuevoRegistro.TransportistaID.ToString()
                        });
                    }
                    else
                    {
                        throw new Exception("Transportista existente");
                    }
                }
            }
            catch (Exception ex)
            {
                //-----------------Agregar mensaje al Log -----------------------------------------------
                LoggerBd.Instance.EscribirLog(ex);
                //-----------------Agregar mensaje al Log -----------------------------------------------
                TransactionalInformation result = new TransactionalInformation();
                result.ReturnMessage.Add(ex.Message);
                result.ReturnCode     = 500;
                result.ReturnStatus   = false;
                result.IsAuthenicated = true;

                return(result);
            }
        }
        public object PUT(Sam3_Transportista transportista, string token)
        {
            string payload     = "";
            string newToken    = "";
            bool   tokenValido = ManageTokens.Instance.ValidateToken(token, out payload, out newToken);

            if (tokenValido)
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                Sam3_Usuario         usuario    = serializer.Deserialize <Sam3_Usuario>(payload);
                return(TransportistaBd.Instance.ActualizarTransportista(transportista, usuario));
            }
            else
            {
                TransactionalInformation result = new TransactionalInformation();
                result.ReturnMessage.Add(payload);
                result.ReturnCode     = 401;
                result.ReturnStatus   = false;
                result.IsAuthenicated = false;
                return(result);
            }
        }
        public object EliminarTransportista(int transportistaID, Sam3_Usuario usuario)
        {
            try
            {
                using (SamContext ctx = new SamContext())
                {
                    Sam3_Transportista registroEnBd = ctx.Sam3_Transportista.Where(x => x.TransportistaID == transportistaID)
                                                      .AsParallel().SingleOrDefault();

                    registroEnBd.Activo = false;
                    registroEnBd.UsuarioModificacion = usuario.UsuarioID;
                    registroEnBd.FechaModificacion   = DateTime.Now;

                    ctx.SaveChanges();

                    TransactionalInformation result = new TransactionalInformation();
                    result.ReturnMessage.Add("OK");
                    result.ReturnCode     = 200;
                    result.ReturnStatus   = true;
                    result.IsAuthenicated = true;

                    return(result);
                }
            }
            catch (Exception ex)
            {
                //-----------------Agregar mensaje al Log -----------------------------------------------
                LoggerBd.Instance.EscribirLog(ex);
                //-----------------Agregar mensaje al Log -----------------------------------------------
                TransactionalInformation result = new TransactionalInformation();
                result.ReturnMessage.Add(ex.Message);
                result.ReturnCode     = 500;
                result.ReturnStatus   = false;
                result.IsAuthenicated = true;

                return(result);
            }
        }