public virtual void ChangeEstado(Estado nuevoEstado, string observacion, Empleado empleado) { if (empleado == null) { throw new ArgumentNullException("empleado"); } if (!Next(UltimoEstado).Any(e => e == nuevoEstado)) { throw new Exception(string.Format("Cambio de estado invalido {0} -> {1}", UltimoEstado, nuevoEstado)); } Final = GetEstadoFinal(nuevoEstado); var detalle = new DetalleTicketRechazo { // Ultimo estado es calculado solo se actualiza en memoria Estado = nuevoEstado, FechaHora = DateTime.UtcNow, Observacion = observacion, Ticket = this, Empleado = empleado }; Detalle.Add(detalle); }
public TicketRechazo(string observacion, Empleado empleado, DateTime fechaHora) { if (empleado == null) { throw new ArgumentNullException("empleado"); } Final = EstadoFinal.SolucionPendiente; var detalle = new DetalleTicketRechazo() { Estado = Estado.Pendiente, FechaHora = fechaHora, Observacion = observacion, Ticket = this, Empleado = empleado }; FechaHora = fechaHora; Detalle.Add(detalle); }