/// <summary> /// Gets the current callback channel and adds it to the collection of all channels. /// </summary> /// <returns></returns> public ChannelWrapper RegisterClient(Message message) { var manager = new NewsfeedManager(); string username; if (manager.TryGetCurrentUsername(message, out username)) { ChannelWrapper wrapper; //If the user is logged and resfresh the page, a new channel will be opened and the old should be removed if (this.clients.TryGetValue(username, out wrapper)) { this.clients.Remove(username); } var client = OperationContext.Current.GetCallbackChannel<INewsfeedServiceCallback>(); wrapper = new ChannelWrapper(username, client); wrapper.Closed += Connection_Closed; wrapper.Faulted += Connection_Closed; var usersRepository = new Domain.UserRepository(); wrapper.User = usersRepository.Get(username); this.clients.Add(username, wrapper); return wrapper; } return null; }
internal void BlockUser(Domain.User user, Model.Message content) { var repo = new Domain.UserRepository(); repo.Block(user.Id, new ObjectId(content.SenderId), content.Username); user.BlockedUsers.Add(new BsonDocument { {"_id", new ObjectId(content.SenderId)}, {"Username", content.Username} }); }
public void SaveMessage(Model.Message message, Domain.User user) { var messagesRepo = new Domain.MessageRepository(); var usersRepo = new Domain.UserRepository(); //a new message has been sent to the server message.SentDate = DateTime.Now; message.Username = user.Username; message.SenderId = user.Id.ToString(); message.AvatarId = user.Avatar.ToString(); //Save the message to the db var messageDto = MapClientMessageToDomain(message); messagesRepo.InsertMessage(messageDto); message.Id = messageDto.Id.ToString(); }
public UserManager() { userRepository = new UserRepository(); }