public TicketModel GuardarTicket(TicketModel ticketModel) { DateTime fechaActual = DateTime.Now; try { iGenericDataAccess.OpenConnection(); iGenericDataAccess.BeginTran(); RegistrosTicket registrosTicket = iGenericDataAccess.Guardar(new RegistrosTicket() { FechaRegistro = fechaActual, TipoId = ticketModel.TipoId, UsuarioId = ticketModel.GetIdUsuarioSesion(), Descripcion = ticketModel.DescripcionTicket, IdCaratula = ticketModel.CaratulaId, IdCliente = ticketModel.PersonaId, IdOrigenTicket = ticketModel.CatalogoOrigenId == 0 ? null : ticketModel.CatalogoOrigenId, FechaRecepcion = ticketModel.FechaRecepcion, NumeroOT = null, //investigar con que dato se llenara NumeroOTSICS = null, //investigar con que dato se llenara ResponsableId = ticketModel.ResponsableId, AseguradoraId = ticketModel.AseguradoraId }); iGenericDataAccess.Guardar(new TicketsEstatus() { TicketId = registrosTicket.TicketId, IdEstatusTicket = ticketModel.IdEstatusTicket, //Falta obtener el idUsuario de session PersonaId = ticketModel.PersonaId, FechaRegistro = fechaActual, NombreArchivoTicketCerrado = "", RutaArchivoTicketCerrado = "", Activo = true //Falta obtener fecha calculada }); if (!ticketModel.EsClienteFlotillas) { iGenericDataAccess.Guardar(new TicketsDatosContactos() { TicketId = registrosTicket.TicketId, IdAgencia = ticketModel.DatosContactoAgenciaId, Nombre = ticketModel.DatosContactoNombre, Apellidos = ticketModel.DatosContactoApellidos, Telefono = ticketModel.DatosContactoTelefonos, Email = ticketModel.DatosContactoEmail }); } foreach (var archivo in ticketModel.Archivos) { ArchivosTickets archivosTickets = iGenericDataAccess.BuscarUno(new ArchivosTickets { IdArchivoTicket = archivo.IdArchivoTicket, }, new OptionsQueryZero { ExcludeNumericsDefaults = true, ExcludeBool = true }); iGenericDataAccess.Actualizar(new ArchivosTickets() { IdArchivoTicket = archivosTickets.IdArchivoTicket, TicketId = registrosTicket.TicketId, NombreArchivo = archivosTickets.NombreArchivo, RutaArchivo = archivosTickets.RutaArchivo, IdEstatusTicket = ticketModel.IdEstatusTicket }); } if (!string.IsNullOrEmpty(ticketModel.CopiarA)) { String[] correos = ticketModel.CopiarA.Split(';'); foreach (var copiarA in correos) { if (!string.IsNullOrEmpty(copiarA)) { iGenericDataAccess.Guardar(new CorreosCopiaTickets() { TicketId = registrosTicket.TicketId, Correo = copiarA }); } } } ticketModel.TicketId = registrosTicket.TicketId; ticketModel.FechaRegistro = fechaActual; ticketModel.FechaRecepcion = registrosTicket.FechaRecepcion; iGenericDataAccess.CommitTran(); } catch (DomainException de) { iGenericDataAccess?.RollbackTran(); throw new DalException(CodesTickets.ERR_00_12, de); } catch (Exception e) { iGenericDataAccess?.RollbackTran(); iGenericDataAccess?.CloseConnection(); throw new DalException(CodesCalendario.ERR_07_03, e); } return(ticketModel); }