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); } }