示例#1
0
        public bool IsJoin(string loginToken, string roomId)
        {
            var login = _loginTokenGateway.Get(loginToken);
            var room  = _learningRoomGateway.Load(new RoomReference(roomId, CacheField.Room));

            return(room.Participants.Any(p => p.User.Equals(login.OpenId)));
        }
示例#2
0
        public void Create(string loginToken, LearningRoomModel model)
        {
            var login         = _loginTokenGateway.Get(loginToken);
            var roomReference = new RoomReference(Guid.NewGuid().ToString());

            var roomAspct = new RoomAspect
            {
                Reference        = roomReference,
                CreatedBy        = login.OpenId,
                CreatedOn        = DateTime.Parse(model.CreatedOn),
                EndDate          = DateTime.Parse(model.EndDate),
                LearningContent  = model.LearningContent,
                Place            = model.Place,
                ParticipantCount = model.ParticipantCount,
                StartDate        = DateTime.Parse(model.StartDate),
                Title            = model.Title,
                Participants     = new List <Participant>
                {
                    new Participant
                    {
                        Reference = new ParticipantReference(Guid.NewGuid().ToString()),
                        IsDeleted = false,
                        Room      = roomReference,
                        User      = login.OpenId
                    }
                }
            };

            _learningRoomSynchronizor.Add(new LearningRoomDomain(roomAspct));
        }
示例#3
0
        public void Add(string loginToken, UserModel model)
        {
            var token = _loginTokenGateway.Get(loginToken);

            var user = new UserDomain(
                new UserAspect
            {
                UserId = new UserReference(token.OpenId.Code, "UserAspect"),
                ExpectationAfterGraduation = model.ExpectationAfterGraduation,
                Gender = MapInt(model.Gender) == null
                        ? GenderType.Unknown
                        : (GenderType)MapInt(model.Gender),
                Height       = MapInt(model.Height),
                Weight       = MapInt(model.Weight),
                MajorIn      = model.MajorIn,
                Name         = model.Name,
                StudyContent = model.StudyContent,
                Hobby        = model.Hobby
            },
                new UserInfoAspect
            {
                OpenId    = new UserReference(token.OpenId.Code, "UserInfo"),
                NickName  = model.NickName,
                AvatarUrl = model.AvatarUrl,
                City      = model.City,
                Country   = model.Country,
                Language  = model.Language,
                Province  = model.Province
            });

            _userGateway.Add(user);
        }
        public bool IsUserExist(string loginToken)
        {
            var login = _loginTokenGateway.Get(loginToken);

            var user = _userGateway.Load(login.OpenId.Code);

            return(user != null);
        }
        public GetResponse Get(GetByLoginTokenRequest request)
        {
            var loginToken = _loginTokenGateway.Get(request.LoginToken);

            return(new GetResponse
            {
                User = Map(_userGateway.Load(loginToken.OpenId.Code))
            });
        }
        public void UpdateUserInfo(string loginToken, UserModel model)
        {
            var token = _loginTokenGateway.Get(loginToken);

            var user = new UserDomain(
                new UserAspect(),
                new UserInfoAspect
            {
                OpenId    = new UserReference(token.OpenId.Code, "UserInfoAspect"),
                NickName  = model.NickName,
                AvatarUrl = model.AvatarUrl,
                City      = model.City,
                Country   = model.Country,
                Language  = model.Language,
                Province  = model.Province
            });

            _userGateway.SaveUserInfo(user);
        }
示例#7
0
        public IList <LearningRoomMessageModel> Get(string loginToken, string roomId)
        {
            var login         = _loginTokenGateway.Get(loginToken);
            var roomWithChats = _learningRoomWithChatsGateway.Load(new RoomReference(roomId));

            return(roomWithChats.ChatAspects != null
                ? roomWithChats.ChatAspects.Select(aspect => new LearningRoomMessageModel
            {
                Content = aspect.Content,
                CreatedByNickName = _userGateway.Load(aspect.CreatedBy.Code).NickName,
                IsCreatedByRequester = aspect.CreatedBy.Equals(login.OpenId),
                CreatedOn = aspect.CreatedOn
            }).OrderBy(model => model.CreatedOn).ToList()
                : new List <LearningRoomMessageModel>());
        }
示例#8
0
        public void Create(string loginToken, NoteModel model)
        {
            var login = _loginTokenGateway.Get(loginToken);

            var note = new NoteAspect
            {
                Content   = model.Content,
                Title     = model.Title,
                CreatedBy = login.OpenId,
                CreatedOn = DateTimeUtil.GetNow(),
                Reference = NoteReference.Create()
            };

            _notePersistor.Persist(new NoteDomain(note));
        }
示例#9
0
        public async Task CreateChatMessage(string loginToken, string roomId, string message)
        {
            var login         = _loginTokenGateway.Get(loginToken);
            var roomReference = new RoomReference(roomId, CacheField.Room);
            var learningRoom  = _learningRoomGateway.Load(roomReference);

            learningRoom.ChatAspects.Add(new ChatAspect
            {
                Reference = new ChatReference(Guid.NewGuid().ToString()),
                Room      = roomReference,
                Content   = message,
                CreatedBy = login.OpenId,
                CreatedOn = DateTimeUtil.GetNow()
            });

            await Task.Run(() => _learningRoomWithChatsSynchronizor.Update(learningRoom));
        }
        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);
        }
        public IList <LearningRoomModel> Get(string loginTokenCode)
        {
            var user  = _loginTokenGateway.Get(loginTokenCode);
            var rooms = _learningRoomWithSignInGateway.LoadByParticipant(user.OpenId);

            return(rooms.Select(room => new LearningRoomModel
            {
                RoomId = room.Reference.Code,
                CreatedOn = room.CreatedOn.ToString(DateFormat),
                CreatedBy = room.CreatedBy.Code,
                EndDate = room.EndDate.ToString(DateFormat),
                LearningContent = room.LearningContent,
                Place = room.Place,
                ParticipantCount = room.ParticipantCount,
                StartDate = room.StartDate.ToString(DateFormat),
                Title = room.Title,
                CurrentParticipantCount = room.CurrentParticipantCount,
                Participated = true,
                Status = MapStatus(room),
                IsSignIn = MapIsSignIn(room, user.OpenId)
            })
                   .OrderBy(model => model.Status)
                   .ToList());
        }