public void MarcarSiniestroComoProcesado(Dominio.Entidades.TableroSiniestro Siniestro) { ITableroSiniestroRepositorio repositorioTableroSiniestro = IoC.GetObjectRepositorio <ITableroSiniestroRepositorio>(); ITableroSiniestroObservacionRepositorio repositorioTableroSiniestroObservacion = IoC.GetObjectRepositorio <ITableroSiniestroObservacionRepositorio>(); // Busco el siniestro TableroSiniestro _siniestro = repositorioTableroSiniestro.GetOne(s => s.TableroSiniestroID == Siniestro.TableroSiniestroID); // TableroSiniestro _siniestroAnterior = repositorioTableroSiniestro.GetOne(s => s.NroPreCaso == Siniestro.NroPreCaso); // Reviso si el siniestro no ha sido marcado como procesado if (_siniestro == null) { throw new DatosInvalidosException("No se encontraron datos del siniestro"); } else if (_siniestro.EstadoID == (Int32)NegociosSisPackInterface.SisPack.TableroSiniestroEstadoEnum.Solucionado) { throw new DatosInvalidosException("El siniestro ya ha sido cerrado"); } //else if (_siniestroAnterior != null) //{ // throw new DatosInvalidosException("Ya existe un siniestro con el numero de precaso ingresado"); //} // Marco el siniestro como solucionado _siniestro.EstadoID = (Int32)NegociosSisPackInterface.SisPack.TableroSiniestroEstadoEnum.Solucionado; _siniestro.Observacion = Siniestro.Observacion; _siniestro.NroPreCaso = Siniestro.NroPreCaso; repositorioTableroSiniestro.Update(_siniestro); }
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); } }