public async Task <BE.Formularios.Presentaciones> Generar(BE.Formularios.Presentaciones pPresentacion) { ITransaction transaction = session.BeginTransaction(); try { switch (pPresentacion.Interno) { case 0: //Busco los establecimientos var establecimientos = await session.Query <BE.Formularios.RefEstablecimiento>() .Where(a => a.CUIT == pPresentacion.CUIT && a.BajaMotivo == 0) .ToListAsync(); pPresentacion.FechaHoraGeneracion = DateTime.Now; pPresentacion.CantidadEstablecimientos = establecimientos.Count; session.Save(pPresentacion); foreach (var item in establecimientos) { //Recorro todos los formularios del CUIT que no tengan presentacion y asigno el dato switch (pPresentacion.Tipo) { //Formularios RGRL case "R": var formularioRGRL = await session.Query <BE.Formularios.RespuestasFormulario>() .Where(a => a.InternoEstablecimiento == item.Interno && a.InternoPresentacion == 0) .FirstOrDefaultAsync(); if (formularioRGRL != null) { formularioRGRL.InternoPresentacion = pPresentacion.Interno; session.Merge(formularioRGRL); } break; //RAR case "A": var formularioRAR = await session.Query <BE.FormRAR.FormulariosRAR>() .Where(a => a.InternoEstablecimiento == item.Interno && a.InternoPresentacion == 0) .FirstOrDefaultAsync(); if (formularioRAR != null) { formularioRAR.InternoPresentacion = pPresentacion.Interno; session.Merge(formularioRAR); } break; default: break; } } break; default: session.Merge(pPresentacion); break; } session.Flush(); transaction.Commit(); transaction.Dispose(); return(pPresentacion); } catch (Exception ex) { transaction.Rollback(); throw ex; } }
public async Task <BE.Formularios.Presentaciones> Generar(BE.Formularios.Presentaciones pPresentacion) { return(await DAL.Formularios.CRUDPresentaciones.instancia.Generar(pPresentacion)); }