public void Create(IPersonalMessageDao dao, User publisher, User receiver)
 {
     var message = new PersonalMessage(publisher)
         {
             Content = Content,
             Receiver = receiver
         };
     dao.SaveOrUpdate(message);
 }
예제 #2
0
 public ActionResult SendMessage(PersonalMessage message)
 {
     try
     {
         dataHelper.SendMessage(message, User.Identity.Name);
         return(Json(new { test = "true" }));
     }
     catch (Exception ex)
     {
         logger.ErrorMessage("305", ex);
         return(View("Error", new Error()
         {
             ExDescription = ex.Message
         }));
     }
 }
예제 #3
0
 public ActionResult SendFastMessage(PersonalMessage message)
 {
     try
     {
         dataHelper.SendMessage(message, User.Identity.Name);
         return(RedirectToAction("UserMessages", new { id = message.UserTo }));
     }
     catch (Exception ex)
     {
         logger.ErrorMessage("305", ex);
         return(View("Error", new Error()
         {
             ExDescription = ex.Message
         }));
     }
 }
예제 #4
0
        public void ClientsReceivePersonalMessageFromClientOnceGameSessionIsLaunched()
        {
            Jabberwocky.SoC.Service.GameSessionManager gameSessionManager = null;
            try
            {
                // Arrange
                var testPlayer1Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer1UserName);
                var testPlayer2Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer2UserName);
                var testPlayer3Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer3UserName);
                var testPlayer4Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer4UserName);

                var mockPlayerCardRepository = this.CreateMockPlayerCardRepository(
                    testPlayer1Data,
                    testPlayer2Data,
                    testPlayer3Data,
                    testPlayer4Data);

                gameSessionManager = GameSessionManagerTestExtensions.CreateGameSessionManagerForTest(4)
                                     .AddPlayerCardRepository(mockPlayerCardRepository)
                                     .WaitUntilGameSessionManagerHasStarted();

                var testPlayer1 = new TestClient(TestPlayer1UserName, gameSessionManager);
                var testPlayer2 = new TestClient(TestPlayer2UserName, gameSessionManager);
                var testPlayer3 = new TestClient(TestPlayer3UserName, gameSessionManager);
                var testPlayer4 = new TestClient(TestPlayer4UserName, gameSessionManager);

                var testScript = new TestScript(testPlayer1, testPlayer2, testPlayer3, testPlayer4);
                testScript.RunUntil(TestScript.RunPoints.RunUntilClientsReceiveGameInitializationMessage);

                var messageText     = "Hello There";
                var expectedMessage = new PersonalMessage(TestPlayer1UserName, messageText);

                // Act
                testPlayer1.SendPersonalMessage(messageText);

                // Assert
                testScript.WaitUntilClientsReceiveMessage(expectedMessage, testPlayer2, testPlayer3, testPlayer4);
            }
            finally
            {
                gameSessionManager?.WaitUntilGameSessionManagerHasStopped();
            }
        }
예제 #5
0
        public List <BaseMessage> ListMessages(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate())
                {
                    return(null);
                }

                using (var db = new CSSDataContext())
                {
                    var messages = new List <BaseMessage>();
                    messages.AddRange(GroupMessage.GetGroupMessages(db, data.Username));
                    messages.AddRange(PersonalMessage.GetPrivateMessages(db, data.Username));

                    //Re-insert messages into list since windows services
                    //don't seem to be able to handle objects wrapped in a baseclass.
                    var result = messages
                                 .OrderByDescending(p => p.DateToSend)
                                 .Select(p => new BaseMessage()
                    {
                        Id          = p.Id,
                        Sender      = p.Sender,
                        Subject     = p.Subject,
                        Message     = p.Message,
                        DateCreated = p.DateToSend,     //User doesn't actually have to know the date the message was created - only sent.
                        DateToSend  = p.DateToSend,
                        DateExpires = p.DateExpires,
                    }).ToList();

                    return(result);
                }
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
예제 #6
0
        public void ClientReceivesPersonalMessageFromAnotherClientBeforeGameSessionIsLaunched()
        {
            Jabberwocky.SoC.Service.GameSessionManager gameSessionManager = null;
            try
            {
                // Arrange
                var testPlayer1Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer1UserName);
                var testPlayer2Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer2UserName);

                var mockPlayerCardRepository = this.CreateMockPlayerCardRepository(
                    testPlayer1Data,
                    testPlayer2Data);

                gameSessionManager = GameSessionManagerTestExtensions.CreateGameSessionManagerForTest(4)
                                     .AddPlayerCardRepository(mockPlayerCardRepository)
                                     .WaitUntilGameSessionManagerHasStarted();

                var testPlayer1 = new TestClient(TestPlayer1UserName, gameSessionManager);
                var testPlayer2 = new TestClient(TestPlayer2UserName, gameSessionManager);

                var testScript = new TestScript(testPlayer1, testPlayer2);
                testScript.AllClientsJoinGame();
                testScript.WaitUntilClientsReceiveMessageOfType(typeof(PlayerDataReceivedMessage), testPlayer1, testPlayer2);

                var messageText     = "Hello There";
                var expectedMessage = new PersonalMessage(TestPlayer1UserName, messageText);

                // Act
                testPlayer1.SendPersonalMessage(messageText);

                // Assert
                testScript.WaitUntilClientsReceiveMessage(expectedMessage, testPlayer2);
            }
            finally
            {
                gameSessionManager?.WaitUntilGameSessionManagerHasStopped();
            }
        }
        public ActionResult Messages(InboxViewModel myModel)
        {
            PersonalMessage messageToSend = new PersonalMessage();

            //checks sender info and adds it too the message
            if (User.Identity.GetUserId() != null)
            {
                PersonalMessageHelper.ProcessSender(myModel, messageToSend, User.Identity.GetUserId());
            }

            //checks recipient info and adds it too the message
            if (myModel.RecipientName != null)
            {
                PersonalMessageHelper.ProcessRecipient(myModel, messageToSend);
            }
            ModelState.Clear();
            TryValidateModel(myModel);

            //checks if the model is valid, and finishes building the message
            //stores it in the DB to be grabbed
            //reloads the inbox
            if (ModelState.IsValid)
            {
                PersonalMessageHelper.ProcessBody(myModel, messageToSend);
                MessageDB.AddMessage(messageToSend);
                myModel.Messages = MessageDB.GetAllMessageForUserById(myModel.User.Id);
                return(RedirectToAction("Messages", "Person", new { id = myModel.User.Id }));
            }

            //checks if user is null and displays a error page
            if (myModel.User == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            //reloads the page
            return(View(myModel));
        }
        // POST api/default1
        public object Post([FromBody] SubmitContentData cc)
        {
            try
            {
                string content = cc.content;
                string userId  = cc.userId;

                var a = new PersonalMessage(OrnamentContext.MemberShip.CurrentUser())
                {
                    Content  = content,
                    Receiver = _memberShipFactory.CreateUserDao().Get(userId)
                };
                _factory.PersonalMessageDao.SaveOrUpdate(a);
                return(new
                {
                    success = true
                });
            }
            catch (Exception ex)
            {
                LogManager.GetLogger(GetType()).Error("send message error", ex);
                throw;
            }
        }
예제 #9
0
 public Task <bool> CreatePersonalMessageAsync(PersonalMessage personalMessage)
 {
     _dbContext.PersonalMessages.Add(personalMessage);
     return(CommitedResultIsSuccessfulAsync());
 }
 protected virtual void PersonalMessageReceived(PersonalMessage message)
 {
 }
예제 #11
0
 public ActionResult SentPm(PersonalMessage pm)
 {
     return(View());
 }
예제 #12
0
        protected override void PersonalMessageReceived(PersonalMessage message)
        {
            Console.WriteLine("{0} (personal message): {1}", message.Sender.Name, message.Text);

            base.PersonalMessageReceived(message);
        }
예제 #13
0
 public PersonalMessage Convert(Database.Entities.User.PersonalMessage source, PersonalMessage destination, ResolutionContext context)
 {
     return(new PersonalMessage
     {
         Id = source.Id,
         From = new PmUser
         {
             Id = source.FromUserId,
             Avatar = GetAvatar(source.FromUser),
             NickName = source.FromUser.NickNames.Current() ?? "anonymous"
         },
         To = new PmUser
         {
             Id = source.ToUserId,
             Avatar = GetAvatar(source.ToUser),
             NickName = source.ToUser.NickNames.Current() ?? "anonymous"
         },
         IsReadByToUser = source.IsReadByToUser,
         Message = source.Message,
         Since = source.Created.GetSinceStamp()
     });
 }
예제 #14
0
            public void QueuePersonalMessage(IClientCallback client, String text)
            {
                var message = new PersonalMessage(client, text);

                this.messageQueue.Enqueue(message);
            }
 private void ProcessPersonal(string clientId, PersonalMessage personal)
 {
     SysConsole.WriteInfoLine($"CID [{clientId}] Data [{personal.Data}]");
 }
예제 #16
0
            private void ProcessPersonalMessage(PersonalMessage message)
            {
                var playerData = this.playerCards[message.Client];

                this.SendPersonalMessageToClients(message.Client, playerData.Username, message.Text);
            }
        // POST api/default1
        public object Post([FromBody] SubmitContentData cc)
        {
            try
            {
                string content = cc.content;
                string userId = cc.userId;

                var a = new PersonalMessage(OrnamentContext.MemberShip.CurrentUser())
                {
                    Content = content,
                    Receiver = _memberShipFactory.CreateUserDao().Get(userId)
                };
                _factory.PersonalMessageDao.SaveOrUpdate(a);
                return new
                {
                    success = true
                };
            }
            catch (Exception ex)
            {
                LogManager.GetLogger(GetType()).Error("send message error", ex);
                throw;
            }
        }