/// <summary> /// 意見メッセージの保存 /// </summary> /// <param name="sendTo">送信対象者</param> /// <param name="detail">メッセージ本文</param> public bool Save(string sendTo, string detail) { try { var result = false; // トランザクション開始 repository.BeginTransaction(); // DB更新 result = repository.Save(Message.Create(sendTo, detail)); // 更新結果を受けてCommit/Rollback if (result) { repository.Commit(); } else { repository.Rollback(); } return(result); } catch (Exception ex) { repository.Rollback(); throw ex; } }
public (bool status, string message) SendMessage(SendMessageRequest request) { try { bool _status = true; string _message = "Success"; _messageRepository.BeginTransaction(); if (_userApiService.UserExist(request.UserSender) == true && _userApiService.UserExist(request.UserReciever) == true) { var conversation = new Conversation { Id = Guid.NewGuid(), IsActive = true, UserCreator = request.UserSender, Title = request.Title }; _conversationRepository.Insert(conversation); _conversationRepository.Save(); var participant = new Participant() { Id = Guid.NewGuid(), Conversation = conversation, Status = _activityStatusRepository.Get(x => x.Name.Equals(Global.Status.UnRead)).FirstOrDefault().Id, UserAccount = request.UserReciever }; _participantRepository.Insert(participant); _participantRepository.Save(); var message = new Messages { Id = Guid.NewGuid(), ContentMessage = request.ContentMessage, ParticipantId = participant.Id, ConversationId = conversation.Id, Status = _activityStatusRepository.Get(x => x.Name.Equals(Global.Status.Delivered)).FirstOrDefault().Id }; _messageRepository.Insert(message); _messageRepository.Save(); } else { _status = false; _message = "User Sender or Reciever not exist"; } _messageRepository.CommitTransaction(); return(_status, _message); } catch (Exception ex) { _messageRepository.RollbackTransaction(); throw ex; } }