public async Task <bool> ActualizarOrdenDeTrabajo(OrdenTrabajo ordenTrabajo, UsuarioDTO usuario)
        {
            try
            {
                List <OrdenTrabajoHistorialModificacion> ModificacionOrdenTrabajo = new List <OrdenTrabajoHistorialModificacion>();

                OrdenTrabajo ordenTrabajoBD = await _context.OrdenTrabajo

                                              .Include(c => c.Cliente)
                                              .Include(c => c.Anexos)
                                              .Include(c => c.Linea)
                                              .Include(c => c.Herramienta)
                                              .Include(c => c.TamanoHerramienta)
                                              .Include(c => c.Material)
                                              .Include(c => c.Material.Material)
                                              .Include(c => c.Herramienta.TamanosHerramienta)
                                              .Include(c => c.TipoServicio)
                                              .Include(c => c.Estado)
                                              .Include(c => c.Responsable).AsNoTracking().FirstOrDefaultAsync(c => c.Id == ordenTrabajo.Id);


                foreach (var entry in _context.Entry(ordenTrabajoBD).Properties)
                {
                    var value = GetPropValue(ordenTrabajo, entry.Metadata.Name);

                    if (value != null && entry.CurrentValue != null)
                    {
                        if (!entry.CurrentValue.Equals(value))
                        {
                            ModificacionOrdenTrabajo.Add(new OrdenTrabajoHistorialModificacion()
                            {
                                UsuarioModifica   = "admin",
                                OrdenTrabajoId    = ordenTrabajoBD.Id,
                                Campo             = entry.Metadata.Name,
                                ValorAnterior     = entry.OriginalValue == null ? "desconocidos" : entry.OriginalValue.ToString(),
                                FechaModificacion = DateTime.Now,
                                Guid = Guid.NewGuid(),
                                GuidUsuarioModifica = Guid.NewGuid()
                            });
                        }
                    }

                    Console.WriteLine(
                        $"Property '{entry.Metadata.Name}'" +
                        $" is {(entry.IsModified ? "modified" : "not modified")} " +
                        $"Current value: '{entry.CurrentValue}' " +
                        $"Original value: '{entry.OriginalValue}'");
                }


                _context.Entry(ordenTrabajoBD).CurrentValues.SetValues(ordenTrabajo);


                if (ordenTrabajo.Material.Id != 0)
                {
                    ordenTrabajoBD.MaterialId = ordenTrabajo.Material.Id;
                }
                ordenTrabajoBD.Anexos = ordenTrabajo.Anexos;

                ordenTrabajoBD.HerramientaId       = ordenTrabajo.HerramientaId;
                ordenTrabajoBD.ClienteId           = ordenTrabajo.ClienteId;
                ordenTrabajoBD.LineaId             = ordenTrabajo.LineaId;
                ordenTrabajoBD.TamanoHerramientaId = ordenTrabajo.TamanoHerramientaId == 0 ? null : ordenTrabajo.TamanoHerramientaId;
                ordenTrabajoBD.NombreUsuarioCrea   = "admin";


                //_context.OrdenTrabajo.Update(ordenTrabajoBD);
                _context.Entry(ordenTrabajoBD).State = EntityState.Modified;
                var actualizo = _context.SaveChanges() > 0;

                var changes = await CrearHistorialModificacionesOrdenDeTrabajo(ModificacionOrdenTrabajo, usuario);



                return(actualizo);
            }
            catch (Exception e) { throw e; }
        }