Other use case for Bingo Meetings was Share meeting bingo(https://github.com/alexandru360/PresentationBingoCards/projects/1#card-24165765)
Share Meeting Bingo:
As a User,I can receive the meeting Id( url) . When going to this url,I can ( optionally) enter my name and check cards.
So how to implement this ? A Meeting contains an array of Cards and a array of Participants. How a Participant can check cards ?
There are several solutions for this:
- The Participant can have an Id of the meeting,is going to some form of database( even in memory,like a singleton collection of Meetings),retrieve the meeting,retrieve the cards,check the card
 - The participant raise an event ( PleaseCheckThisCardForMe),the meeting listens and checks the meeting
 - The participant have a real reference of the cards and checks the cards
 - The meeting has a CheckCardByParticipant that someone can call ( leaving the responsibility later – maybe on API )
 
We ( me and Alexandru Badita we have choosed the latest solution. So we came with the following :
public CheckCardByParticipant(c: Cards,p:Participant){
        //TODO: verify participant is added first or add
        //TODO: verify card is added first
        c.CheckMe(p);
    }
and a test
import  MeetingsFactory from '../MeetingsFactory';
import Meeting from '../meeting';
describe('Check  card basic',() => {
    it('card should be checked',() => {
        const mf=new MeetingsFactory();
        const m1=mf.CreateMeeting("andrei","first meeting");
        console.log(m1.Cards.length);
        
        expect(m1.AllUnchecked()).toBe(true);
        m1.CheckCardByParticipant(m1.Cards[0],m1.Participants[0]);    
        expect(m1.AllUnchecked()).toBe(false);
        expect(m1.IsCardCheckedByParticipant(m1.Cards[0],m1.Participants[0])).toBe(true);
        
        
  
      })
    
  })
  
Obviously,from TODO,we have to put more code and more tests – but for the moment we think that nobody will want to break our application on purpose….
Leave a Reply