public Dominio.Entidades.TableroSiniestro MarcarSiniestroEnTratamiento(Int32 GuiaID, List <Dominio.Entidades.ObservacionGuia> Observaciones, Int32 UsuarioID)
        {
            ITableroSiniestroRepositorio            repositorioTableroSiniestro            = IoC.GetObjectRepositorio <ITableroSiniestroRepositorio>();
            ITableroSiniestroObservacionRepositorio repositorioTableroSiniestroObservacion = IoC.GetObjectRepositorio <ITableroSiniestroObservacionRepositorio>();

            // Reviso si se puede procesar el siniestro
            foreach (Dominio.Entidades.ObservacionGuia o in Observaciones)
            {
                if (repositorioTableroSiniestroObservacion.GetOne(tso => tso.ObservacionID == o.ObservacionID && tso.Fecha == o.Fecha && o.GuiaID == o.GuiaID) != null)
                {
                    throw new DatosInvalidosException("El siniestro está siendo tratado por otro usuario");
                }
            }

            // Proceso las guías
            using (System.Transactions.TransactionScope Transaccion = new TransactionScope())
            {
                TableroSiniestro _siniestro = repositorioTableroSiniestro.Insert(new TableroSiniestro()
                {
                    GuiaID      = GuiaID,
                    EstadoID    = (Int32)NegociosSisPackInterface.SisPack.TableroSiniestroEstadoEnum.EnTratamiento,
                    UsuarioID   = UsuarioID,
                    Observacion = ""
                });

                foreach (Dominio.Entidades.ObservacionGuia o in Observaciones)
                {
                    repositorioTableroSiniestroObservacion.Insert(new TableroSiniestroObservacion()
                    {
                        TableroSiniestroID = _siniestro.TableroSiniestroID,
                        ObservacionID      = o.ObservacionID,
                        Fecha = o.Fecha
                    });
                }

                Transaccion.Complete();

                return(_siniestro);
            }
        }