Exemplo n.º 1
0
        private async Task <bool> SePuedeCerrar(CerrarSiniestroVm cerrarSiniestroVm)
        {
            await _repositorioPermisos.ObtenerPorId(cerrarSiniestroVm.IdPermiso);

            bool esPeritoResponsable = _repositorioPermisos.EsPeritoResponsable(cerrarSiniestroVm.IdPermiso);

            if (esPeritoResponsable)
            {
                return(true);
            }

            bool esPeritoNoResponsable = _repositorioPermisos.EsPeritoNoResponsable(cerrarSiniestroVm.IdPermiso);

            if (!esPeritoNoResponsable)
            {
                throw new CodigoErrorHttpException("No se puede cerrar el siniestro porque el usuario tiene permiso de administración", HttpStatusCode.InternalServerError);
            }

            bool esImpValoracionDaniosSiniestroMayorQueDelPerito = await EsImpValoracionDaniosMayorQueDelPerito(cerrarSiniestroVm.IdPerito, cerrarSiniestroVm.IdSiniestro);

            if (esImpValoracionDaniosSiniestroMayorQueDelPerito)
            {
                throw new CodigoErrorHttpException("No se puede cerrar el siniestro porque el importe de valoración de daños supera el establecido al perito", HttpStatusCode.InternalServerError);
            }
            else
            {
                return(true);
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Cerrar(CerrarSiniestroVm cerrarSiniestroVm)
        {
            await SePuedeCerrar(cerrarSiniestroVm);

            Estado cerrado = await _repositorioEstados.ObtenerPorTipo(TipoEstado.Cerrado);

            Siniestro siniestro = await _repositorioSiniestros.ObtenerPorId(cerrarSiniestroVm.IdSiniestro);

            siniestro.Estado = cerrado;
            await _repositorioSiniestros.Actualizar(siniestro);

            return(Ok(true));
        }