public long GuardarAfiliado(Afiliado afiliado) { var usersManager = new UsersManager(); var _detallesManager = new DetallePersonaManager(); if (afiliado.UserID == 0)//NUEVO USUARIO { var transaction = SqlDataAccess.OpenTransaction(ConfigurationManager.ConnectionStrings["StringConexion"].ToString()); try { afiliado.UserID = usersManager.insertarUsuario(afiliado as User); var detalleID = _detallesManager.AddDetallePersona(afiliado as User); if (afiliado.NroAfiliado == 0)//Primero del grupo familiar { afiliado.NroAfiliado = SqlDataAccess.ExecuteScalarQuery <int>(ConfigurationManager.ConnectionStrings["StringConexion"].ToString(), "[SHARPS].InsertAfiliado", SqlDataAccessArgs .CreateWith("@PlanMedico", afiliado.PlanMedico.ID) .And("@ID", afiliado.UserID) .And("@EstadoCivil", afiliado.EstadoCivil) .And("@CantHijos", afiliado.CantHijos) .Arguments); //Inserta, y devuelve el grupo familiar que se le creo } else { afiliado.NroAfiliado = SqlDataAccess.ExecuteScalarQuery <int>(ConfigurationManager.ConnectionStrings["StringConexion"].ToString(), "[SHARPS].InsertMiembroGrupoFamiliar", SqlDataAccessArgs .CreateWith("@PlanMedico", afiliado.PlanMedico.ID) .And("@EstadoCivil", afiliado.EstadoCivil) .And("@CantHijos", afiliado.CantHijos) .And("@RolAfiliado", afiliado.RoleID) .And("@GrupoFamiliar", afiliado.NroAfiliado) .And("@TipoAfiliado", afiliado.tipoAfiliado) .And("@UserID", afiliado.UserID) .Arguments); //Inserta el usuario, y le paso el tipo de afiliado } SessionData.Remove("Transaction"); SqlDataAccess.Commit(transaction); return(afiliado.NroAfiliado); }catch { SqlDataAccess.Rollback(transaction); afiliado.UserID = 0; throw; } } else { _detallesManager.UpdateDetallePersona(afiliado.DetallesPersona, afiliado.UserID); SqlDataAccess.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["StringConexion"].ToString(), "[SHARPS].UpdateAfiliado", SqlDataAccessArgs .CreateWith("@PlanMedico", afiliado.PlanMedico.ID) .And("@ID", afiliado.UserID) .And("@EstadoCivil", afiliado.EstadoCivil) .And("@RolAfiliado", afiliado.RoleID) .And("@CantHijos", afiliado.CantHijos) .And("@Motivo", afiliado.MotivoCambio) .Arguments); //Guarda la informacion del usuario return(0); } }