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);
            }
        }
        public bool InsertarFechaCierre(int TableroSiniestroID, DateTime Fecha, int Usuario)
        {
            try
            {
                ITableroSiniestroRepositorio _tableroRepositorio = IoC.GetObjectRepositorio <ITableroSiniestroRepositorio>();

                int resultado = _tableroRepositorio.InsertFechaCierre(TableroSiniestroID, Fecha, Usuario);

                if (resultado > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public List <Dominio.Entidades.GetGuiasSiniestroSolucionadasDatos> ObtenerDatosReporte(DateTime FechaInicio, DateTime FechaFin, string PreCaso)
        {
            ITableroSiniestroRepositorio _tableroRepositorio = IoC.GetObjectRepositorio <ITableroSiniestroRepositorio>();

            return(_tableroRepositorio.getDatosReporte(FechaInicio, FechaFin, PreCaso));
        }