예제 #1
0
        public async Task <CrearResponse <Soporte> > CrearAsync(SoporteCrear modelo)
        {
            var evento = await repositorio.ConsultarElPrimeroAsync <EventoCalendario>(q => q.Id == modelo.EventoId);

            var autoinfoAlCrear = new EntidadAutoinfo <Soporte>();

            autoinfoAlCrear.SetValue(v => v.RegionalId, evento.RegionalId);
            autoinfoAlCrear.SetValue(v => v.ProyectoId, evento.ProyectoId);
            autoinfoAlCrear.SetValue(v => v.Nombre, modelo.Nombre);
            autoinfoAlCrear.SetValue(v => v.Tamanio, 0);
            autoinfoAlCrear.SetValue(v => v.Ruta, "");
            autoinfoAlCrear.SetValue(v => v.Extension, "");


            repositorio.IniciarTransaccion();

            var soporte = await base.CrearAsync(modelo, autoinfoAlCrear);

            var tamanio = await archivoSoporteAlmacen.CrearAsync(soporte.Data, modelo.RequestStream);

            soporte.Data.Nombre    = archivoSoporteAlmacen.NombreSoporte(soporte.Data);
            soporte.Data.Ruta      = archivoSoporteAlmacen.RutaSoporte(soporte.Data);
            soporte.Data.Extension = MimeTypes.GetMimeType(modelo.Nombre);
            soporte.Data.Tamanio   = tamanio;

            await repositorio.ActualizarAsync(soporte.Data);

            repositorio.FinalizarTransaccion();

            return(soporte);
        }
예제 #2
0
        public async virtual Task <ActualizarResponse <TEntidad> > ActualizarAsync(Actualizar <TEntidad> modelo, IRequest peticion)

        {
            var autoinfoAlActualizar = new EntidadAutoinfo <TEntidad>();

            PreprocesarAlActualizar(modelo, autoinfoAlActualizar, peticion);
            return(await repositorio.ActualizarAsync(modelo, autoinfoAlActualizar));
        }
예제 #3
0
        public async Task <ActualizarResponse <TEntidad> > ActualizarAsync(Actualizar <TEntidad> modelo, EntidadAutoinfo <TEntidad> autoinfoAlActualizar)
        {
            var entidad = CrearEntidadConDatosDelModelo(modelo);

            PreprocesarAlActualizar(entidad, autoinfoAlActualizar);
            var onlyfields = ObtenerCamposPorActualizar(autoinfoAlActualizar, modelo.GetType());
            await repositorio.ActualizarAsync(entidad, onlyfields);

            entidad = await repositorio.ConsultarPorIdAsync <TEntidad>(entidad.Id);

            return(new ActualizarResponse <TEntidad> {
                Data = entidad
            });
        }