void OnCommit() { DbConversation.UsingTransaction(() => { if (EditMode == EditMode.Add) { DbConversation.Insert(CurrentEdit); EventAggregator.GetEvent <UserAddedEvent>().Publish(CurrentEdit); } else { foreach (var user in _editedUsers) { if (CurrentEdit.Name != null) { user.Name = CurrentEdit.Name; } if (CurrentEdit.UserRole != null) { user.UserRole = CurrentEdit.UserRole; } EventAggregator.GetEvent <UserChangedEvent>().Publish(user); } } }); if (_navigationJournal != null) { _navigationJournal.GoBack(); } }
/// <summary> /// Open new conversation for AccessRequest /// </summary> /// <param name="accessRequestId">Access request identifier</param> /// <param name="requesterId">Unique identifier of requester</param> /// <param name="receiverId">Unique identifier of requester conversation messages</param> /// <param name="subject">Subject of created conversation</param> /// <param name="message">Message of created conversation</param> /// <returns>New conversation</returns> public Conversation OpenConversationFor(long accessRequestId, string requesterId, string receiverId, string subject, string message) { var dbAccessRequest = _accessRequestRepository.Find(f => f.Id == accessRequestId); var dbRequester = _userRepository.Find(f => f.Id.ToString() == requesterId); var dbReceiver = _userRepository.Find(f => f.Id.ToString() == receiverId); var newConversation = new DbConversation(); newConversation.Request = dbAccessRequest; newConversation.Requester = dbRequester; newConversation.Receiver = dbReceiver; newConversation.Status = DbAccessRequestStatus.Open; newConversation.HasRecieverUnreadMessages = true; _conversationRepository.Insert(newConversation); //create first initial message var newMessage = new DbMessage(); newMessage.CreationDate = System.DateTime.Now; newMessage.Sender = dbRequester; newMessage.Receiver = dbReceiver; newMessage.Text = message; newMessage.Conversation = newConversation; _messagesRepository.Insert(newMessage); var mappedConversation = Mapper.Map(newConversation, new Conversation()); return(mappedConversation); }
public void Save() { if (!SuccessfullySaved(() => DbConversation.Insert(Element.UserRole))) { return; } EventAggregator.Publish(new UserRoleChangedEvent(Element.UserRole)); TryClose(); }
public void DeclineConversationTest() { //Arrange var accessRequest = new DbAccessRequest() { Id = 1 }; var userStore = new List <DbUser>(); var user1Guid = Guid.NewGuid(); var user2Guid = Guid.NewGuid(); userStore.Add(new DbUser() { Id = user1Guid }); userStore.Add(new DbUser() { Id = user2Guid }); _usersRepositoryMock.Setup(s => s.Find(It.IsAny <Expression <Func <DbUser, bool> > >())) .Returns <Expression <Func <DbUser, bool> > >(expr => { return(userStore.FirstOrDefault(expr.Compile())); }); var conversation = new DbConversation() { HasRecieverUnreadMessages = true, Id = 1, Receiver = userStore[1], Requester = userStore[0], Request = accessRequest, Status = DbAccessRequestStatus.Open }; _conversationRepositoryMock.Setup(s => s.Find(It.IsAny <Expression <Func <DbConversation, bool> > >())) .Returns <Expression <Func <DbConversation, bool> > >(expr => { return(conversation); }); _conversationRepositoryMock.Setup(s => s.Update(It.IsAny <DbConversation>())).Callback <DbConversation>(e => { }); var service = InitService(); //Act service.DeclineConversation(conversation.Id, "some reason"); //Assert Assert.IsNotNull(conversation); Assert.AreEqual(conversation.Status, DbAccessRequestStatus.Declined); Assert.AreEqual(conversation.StatusReason, "some reason"); }
public void GetConversationByIdTest() { //Arrange var accessRequest = new DbAccessRequest() { Id = 1 }; var userStore = new List <DbUser>(); var user1Guid = Guid.NewGuid(); var user2Guid = Guid.NewGuid(); userStore.Add(new DbUser() { Id = user1Guid }); userStore.Add(new DbUser() { Id = user2Guid }); var conversationStore = new List <DbConversation>(); var conversation = new DbConversation() { HasRecieverUnreadMessages = true, Id = 1, Receiver = userStore[1], Requester = userStore[0], Request = accessRequest, Status = DbAccessRequestStatus.Open }; conversationStore.Add(conversation); _conversationRepositoryMock.Setup(s => s.Find(It.IsAny <Expression <Func <DbConversation, bool> > >())) .Returns <Expression <Func <DbConversation, bool> > >(expr => { return(conversationStore.FirstOrDefault(expr.Compile())); }); var service = InitService(); //Act var foundConversation = service.GetConversationById(1); //Assert Assert.IsNotNull(foundConversation); Assert.AreEqual(foundConversation.Id, 1); }
public PmsTerminal ClaimTerminal(uint terminalId) { if (terminalId == 0) { throw new InvalidTerminalIdException(); } var terminal = DbConversation.GetById <Terminal>(terminalId); if (terminal == null) { throw new TerminalNotFoundException(); } return(new PmsTerminal(WorkbenchProvider) { Terminal = terminal }); }
public PmsWorkbench ClaimWorkbench(uint waiterId) { if (waiterId == 0) { throw new InvalidWaiterIdException(); } var waiter = DbConversation.GetById <Waiter>(waiterId); if (waiter == null) { throw new WaiterNotFoundException(); } return(new PmsWorkbench(TableProvider) { Waiter = waiter }); }
public void OnNavigatedTo(NavigationContext navigationContext) { var userRoles = GetUserRoles(navigationContext).ToList(); if (userRoles.Any()) { DbConversation.UsingTransaction(() => { EditMode = EditMode.Edit; var first = true; foreach (var userRoleId in userRoles) { var userRole = DbConversation.GetById <UserRole>(userRoleId); Name = EditItemsViewModel.GetTargetValue(first, CurrentEdit.Name, userRole.Name, null); _editedUserRoles.Add(userRole); first = false; } }); } _navigationJournal = navigationContext.NavigationService.Journal; }
protected override BindableCollection <UserRoleRowViewModel> CreateElementList() { return(new BindableCollection <UserRoleRowViewModel>(DbConversation .Query(new AllUserRolesQuery()) .Select(x => new UserRoleRowViewModel(x)))); }
public EditUserRoleViewModel(int userRoleId) { DbConversation.UsingTransaction(() => Element = new UserRoleModel(DbConversation.GetById <UserRole>(userRoleId))); DisplayName = Strings.EditUserRole_EditUserRole; }
public void AddNewMessageToConversationTest() { //Arrange var accessRequest = new DbAccessRequest() { Id = 1 }; var userStore = new List <DbUser>(); var user1Guid = Guid.NewGuid(); var user2Guid = Guid.NewGuid(); userStore.Add(new DbUser() { Id = user1Guid }); userStore.Add(new DbUser() { Id = user2Guid }); _usersRepositoryMock.Setup(s => s.Find(It.IsAny <Expression <Func <DbUser, bool> > >())) .Returns <Expression <Func <DbUser, bool> > >(expr => { return(userStore.FirstOrDefault(expr.Compile())); }); var conversation = new DbConversation() { HasRecieverUnreadMessages = true, Id = 1, Receiver = userStore[1], Requester = userStore[0], Request = accessRequest, Status = DbAccessRequestStatus.Open }; _conversationRepositoryMock.Setup(s => s.Find(It.IsAny <Expression <Func <DbConversation, bool> > >())) .Returns <Expression <Func <DbConversation, bool> > >(expr => { return(conversation); }); var messages = new List <DbMessage>(); _messageRepositoryMock.Setup(s => s.Insert(It.IsAny <DbMessage>())).Callback <DbMessage>(e => { e.Id = 1; messages.Add(e); }); var service = InitService(); //Act var message = service.AddNewMessageToConversation(conversation.Id, Mapper.Map <User>(userStore[0]), Mapper.Map <User>(userStore[1]), "some text", true); //Assert Assert.IsNotNull(message); Assert.IsTrue(messages.Count > 0); Assert.AreEqual(messages[0].Id, message.Id); }
public void GetMessagesTest() { //Arrange var accessRequest = new DbAccessRequest() { Id = 1 }; var user1 = new DbUser() { Id = Guid.NewGuid() }; var user2 = new DbUser() { Id = Guid.NewGuid() }; var subjectText = "Test request subject"; var messageText = "Test request message"; var conversation = new DbConversation() { HasRecieverUnreadMessages = true, Id = 1, Receiver = user2, Requester = user1, Request = accessRequest, Status = DbAccessRequestStatus.Open }; _conversationRepositoryMock.Setup(a => a.Find(It.IsAny <Expression <Func <DbConversation, bool> > >())) .Returns <Expression <Func <DbConversation, bool> > >(expr => { return(conversation); }); var messagesStore = new List <DbMessage>(); messagesStore.Add(new DbMessage() { Id = 1, Conversation = conversation, CreationDate = DateTime.Now, Receiver = user2, Sender = user1, Text = string.Concat(subjectText, "\n\r", messageText) }); messagesStore.Add(new DbMessage() { Id = 1, Conversation = conversation, CreationDate = DateTime.Now, Receiver = user1, Sender = user2, Text = string.Concat("RE: ", subjectText, "\n\r", messageText) }); _messageRepositoryMock.Setup(a => a.FindCollection(It.IsAny <Expression <Func <DbMessage, bool> > >())) .Returns <Expression <Func <DbMessage, bool> > >(expr => { return(messagesStore.Where(expr.Compile())); }); var service = InitService(); //Act var messages = service.GetMessages(conversation.Id, user2.Id).ToList(); //Assert Assert.IsNotNull(messages); Assert.IsTrue(messages.Count > 0); Assert.IsTrue(messages.All(a => a.Sender != null)); Assert.IsTrue(messages.All(a => a.Receiver != null)); Assert.IsTrue(messages.Any(a => a.Sender.Id == user1.Id.ToString())); Assert.IsTrue(messages.Any(a => a.Receiver.Id == user1.Id.ToString())); Assert.IsTrue(messages.Any(a => a.Sender.Id == user2.Id.ToString())); Assert.IsTrue(messages.Any(a => a.Receiver.Id == user2.Id.ToString())); }