public void TestDeleteMessage() { var profile = (ProfileDTO)profiles[0].Tag; var profile1 = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(profile, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { MessageDTO message = new MessageDTO(); message.Sender = profile; message.Receiver = profile1; message.MessageType = (Service.Model.MessageType)MessageType.Custom; message.Topic = "test topic"; message.Content = "test content"; Service.SendMessage(data.Token, message); }); var dbMessage = Session.QueryOver <Message>().SingleOrDefault(); data = SecurityManager.CreateNewSession(profile1, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { MessageOperationParam arg = new MessageOperationParam(); arg.Operation = MessageOperationType.Delete; arg.MessageId = dbMessage.Id; Service.MessageOperation(data.Token, arg); }); Assert.AreEqual(0, Session.QueryOver <Message>().RowCount()); }
public void MessageOperation(Token token, MessageOperationParam arg) { var securityInfo = SecurityManager.EnsureAuthentication(token); MessageService service = new MessageService(Session, securityInfo, Configuration, PushNotificationService); service.MessageOperation(arg); }
public void MessageOperation(MessageOperationParam arg) { Log.WriteWarning("GetProfileInformation.Username:{0},Operation:{1},Message:{2}", SecurityInfo.SessionData.Profile.UserName, arg.Operation, arg.MessageId); var session = Session; using (var tx = session.BeginSaveTransaction()) { var userDb = session.Load <Profile>(SecurityInfo.SessionData.Profile.GlobalId); var messageDb = session.Get <Message>(arg.MessageId); if (messageDb == null) { throw new ObjectNotFoundException("Message doesn't exist"); } if (messageDb.Receiver != userDb) { throw new CrossProfileOperationException("You cannot perform any operation with messages for another user"); } if (arg.Operation == MessageOperationType.Delete) { session.Delete(messageDb); } userDb.DataInfo.MessageHash = Guid.NewGuid(); tx.Commit(); Log.WriteVerbose("Operation completed"); pushNotificationService.SendLiveTile(session, userDb, false); } }
public void TestDeleteMessage_DataInfo() { var profile = (ProfileDTO)profiles[0].Tag; var profile1 = (ProfileDTO)profiles[1].Tag; SessionData data = CreateNewSession(profile, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { MessageDTO message = new MessageDTO(); message.Sender = profile; message.Receiver = profile1; message.Topic = "test topic"; message.Content = "test content"; Service.SendMessage(data.Token, message); }); var dbMessage = Session.QueryOver <Message>().SingleOrDefault(); data = CreateNewSession(profile1, ClientInformation); var dbProfile = Session.Get <Profile>(profile1.GlobalId); var oldHash = dbProfile.DataInfo.MessageHash; RunServiceMethod(delegate(InternalBodyArchitectService Service) { MessageOperationParam arg = new MessageOperationParam(); arg.Operation = MessageOperationType.Delete; arg.MessageId = dbMessage.GlobalId; Service.MessageOperation(data.Token, arg); }); dbProfile = Session.Get <Profile>(profile1.GlobalId); Assert.AreNotEqual(dbProfile.DataInfo.MessageHash, oldHash); }
public static void MessageOperation(MessageOperationParam arg) { exceptionHandling(delegate { Instance.MessageOperation(Token, arg); }); }
private void listView1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete && SelectedMessage != null) { if (FMMessageBox.AskYesNo(ApplicationStrings.QDeleteSelectedMessages) == DialogResult.Yes) { List <MessageDTO> messagesToDelete = new List <MessageDTO>(); foreach (ListViewItem item in listView1.SelectedItems) { var messageToDelete = (MessageDTO)item.Tag; messagesToDelete.Add(messageToDelete); } try { PleaseWait.Run(delegate(MethodParameters par) { for (int index = 0; index < messagesToDelete.Count; index++) { var messageDto = messagesToDelete[index]; try { var arg = new MessageOperationParam(); arg.Operation = MessageOperationType.Delete; arg.MessageId = messageDto.Id; if (par.Cancel) { return; } ServiceManager.MessageOperation(arg); par.SetProgress(index + 1); } catch (ObjectNotFoundException ex) { //message doesn't exists so simply skip it ExceptionHandler.Default.Process(ex); } } }, true, messagesToDelete.Count); UserContext.RefreshUserData(); } catch (Exception ex) { ExceptionHandler.Default.Process(ex, ApplicationStrings.ErrCannotDeleteMessage, ErrorWindow.EMailReport); } } } }
public void Execute() { try { var m = new ServiceManager <AsyncCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <AsyncCompletedEventArgs> operationCompleted) { MessageOperationParam param = new MessageOperationParam(); param.MessageId = messageId; param.Operation = MessageOperationType.Delete; client1.MessageOperationAsync(ApplicationState.Current.SessionData.Token, param); }); m.Run(); } catch (Exception) { } }
public bool DeleteMessages(List <MessageDTO> messagesToDelete) { bool res = false; if (BAMessageBox.AskYesNo(Strings.QDeleteSelectedMessages) == MessageBoxResult.Yes) { try { PleaseWait.Run(delegate(MethodParameters par) { for (int index = 0; index < messagesToDelete.Count; index++) { var messageDto = messagesToDelete[index]; try { var arg = new MessageOperationParam(); arg.Operation = MessageOperationType.Delete; arg.MessageId = messageDto.GlobalId; if (par.Cancel) { return; } ServiceManager.MessageOperation(arg); par.SetProgress(index + 1); } catch (ObjectNotFoundException ex) { //message doesn't exists so simply skip it ExceptionHandler.Default.Process(ex); } MessagesReposidory.Instance.Remove(messageDto.GlobalId); res = true; } }, true, null, messagesToDelete.Count); } catch (Exception ex) { ExceptionHandler.Default.Process(ex, Strings.ErrCannotDeleteMessage, ErrorWindow.EMailReport); } } return(res); }
public void Delete() { var m = new ServiceManager <AsyncCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <AsyncCompletedEventArgs> operationCompleted) { MessageOperationParam param = new MessageOperationParam(); param.MessageId = Message.GlobalId; param.Operation = MessageOperationType.Delete; client1.MessageOperationCompleted -= operationCompleted; client1.MessageOperationCompleted += operationCompleted; client1.MessageOperationAsync(ApplicationState.Current.SessionData.Token, param); }); m.OperationCompleted += (s, a) => { FaultException <BAServiceException> faultEx = a.Error as FaultException <BAServiceException>; if (a.Error != null && (faultEx == null || faultEx.Detail.ErrorCode != ErrorCode.ObjectNotFound)) { onOperationCompleted(true); BAMessageBox.ShowError(ApplicationStrings.MessageViewModel_ErrDeleteMessage); } else { ApplicationState.Current.Cache.Messages.Remove(Message.GlobalId); //ApplicationState.Current.ProfileInfo.Messages.Remove(Message); onOperationCompleted(false); } }; if (!m.Run()) { onOperationCompleted(true); if (ApplicationState.Current.IsOffline) { BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode); } else { BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork); } } }
private bool deleteMessage(MessageDTO msg) { try { PleaseWait.Run(delegate { var arg = new MessageOperationParam(); arg.Operation = MessageOperationType.Delete; arg.MessageId = msg.Id; ServiceManager.MessageOperation(arg); }, false, null); } catch (ObjectNotFoundException ex) { ExceptionHandler.Default.Process(ex, ApplicationStrings.ErrMessageDoesntExist, ErrorWindow.MessageBox); } catch (Exception ex) { ExceptionHandler.Default.Process(ex, ApplicationStrings.ErrCannotDeleteMessage, ErrorWindow.EMailReport); return(false); } return(true); }
public void MessageOperation(Token token, MessageOperationParam arg) { throw new NotImplementedException(); }
public void MessageOperation(Token token, MessageOperationParam arg) { exceptionHandling(token, () => InternalService.MessageOperation(token, arg)); }