/// <summary> /// GetRoomからのみ呼ばれる想定です。 /// </summary> /// <param name="summary"></param> /// <param name="messages"></param> private void NewMessage(Summary summary, IEnumerable <Message> messages) { foreach (var message in messages) { if (message.IsAuth && String.IsNullOrWhiteSpace(message.Name) == false) { // アカウント情報を更新 var account = Model.Account.GetAccount(message.Name); if (account == null) { account = new Model.Account { AccountName = message.Name, }; Model.Account.UpdateAccount(account); } } if (String.IsNullOrWhiteSpace(message.ListenerId) == false) { // リスナーが存在しなければ追加します。 var listener = Model.Listener.GetListener(message.ListenerId); if (listener == null || (String.IsNullOrWhiteSpace(listener.ListenerId) == false && message.IsAuth)) { listener = new Model.Listener { ListenerId = message.ListenerId, Name = String.IsNullOrWhiteSpace(message.Name) == false ? message.Name : null, Author = summary.Author, AccountName = message.IsAuth ? message.Name : null, }; Model.Listener.UpdateListener(listener); } } } // DBのコメント情報を更新します。 var dbMessage = messages.Select(message => new Model.Message { RoomId = summary.RoomId, Number = message.Number, Name = message.Name, Comment = message.Comment, IsAuth = message.IsAuth, IsBan = message.IsBan, PostTime = message.PostTime, ListenerId = message.ListenerId, }); Model.Message.UpdateMessage(dbMessage); }
private void NewMessage(Message message) { if (this.JoinedRoomSummary == null) { return; } var author = this.JoinedRoomSummary.Author; if (String.IsNullOrWhiteSpace(author) == true) { return; } if (message.IsAuth) { // アカウント情報を更新 var account = Model.Account.GetAccount(message.Name); if (message.IsAuth && String.IsNullOrWhiteSpace(message.Name) == false) { account = new Model.Account { AccountName = message.Name, }; Model.Account.UpdateAccount(account); } } if (String.IsNullOrWhiteSpace(message.ListenerId) == false) { // リスナーが存在しなければ追加します。 var listener = Model.Listener.GetListener(message.ListenerId); if (listener == null || (String.IsNullOrWhiteSpace(listener.ListenerId) == false && message.IsAuth)) { listener = new Model.Listener { ListenerId = message.ListenerId, Name = String.IsNullOrWhiteSpace(message.Name) == false ? message.Name : null, Author = author, AccountName = message.IsAuth ? message.Name : null, }; Model.Listener.UpdateListener(listener); } } }
/// <summary> /// GetRoomからのみ呼ばれる想定です。 /// </summary> /// <param name="summary"></param> /// <param name="messages"></param> private void NewMessage(Summary summary, IEnumerable<Message> messages) { foreach (var message in messages) { if (message.IsAuth && String.IsNullOrWhiteSpace(message.Name) == false) { // アカウント情報を更新 var account = Model.Account.GetAccount(message.Name); if (account == null) { account = new Model.Account { AccountName = message.Name, }; Model.Account.UpdateAccount(account); } } if (String.IsNullOrWhiteSpace(message.ListenerId) == false) { // リスナーが存在しなければ追加します。 var listener = Model.Listener.GetListener(message.ListenerId); if (listener == null || (String.IsNullOrWhiteSpace(listener.ListenerId) == false && message.IsAuth)) { listener = new Model.Listener { ListenerId = message.ListenerId, Name = String.IsNullOrWhiteSpace(message.Name) == false ? message.Name : null, Author = summary.Author, AccountName = message.IsAuth ? message.Name : null, }; Model.Listener.UpdateListener(listener); } } } // DBのコメント情報を更新します。 var dbMessage = messages.Select(message => new Model.Message { RoomId = summary.RoomId, Number = message.Number, Name = message.Name, Comment = message.Comment, IsAuth = message.IsAuth, IsBan = message.IsBan, PostTime = message.PostTime, ListenerId = message.ListenerId, }); Model.Message.UpdateMessage(dbMessage); }