Exemplo n.º 1
0
        public void Update(ILearningRoomWithSignIn learningRoom)
        {
            var learningRoomsWithSignIn = _learningRoomWithSignInGateway.Load(learningRoom.Reference);
            var signInsAdded            = learningRoom.SignIns
                                          .Where(signIn => learningRoomsWithSignIn.SignIns.All(s => !s.Reference.Equals(signIn.Reference)))
                                          .ToList();

            signInsAdded.ForEach(s => _signInPersistor.Add(s));
            _persistence.Complete();
        }
        public void SignIn(string loginToken, string roomId)
        {
            var user = _loginTokenGateway.Get(loginToken);
            var learningRoomWithSignIn = _learningRoomWithSignInGateway.Load(new RoomReference(roomId));

            if (learningRoomWithSignIn.SignIns.Any(s => s.Participant.Equals(user.OpenId)))
            {
                return;
            }

            learningRoomWithSignIn.SignIns.Add(new SignInAspect
            {
                Reference   = new SignInReference(Guid.NewGuid().ToString()),
                Room        = learningRoomWithSignIn.Reference,
                SignInOn    = DateTimeUtil.GetNow(),
                Participant = user.OpenId
            });

            _learningRoomWithSignInSynchronizor.Update(learningRoomWithSignIn);
        }