Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public void MessageOperation(Token token, MessageOperationParam arg)
        {
            var            securityInfo = SecurityManager.EnsureAuthentication(token);
            MessageService service      = new MessageService(Session, securityInfo, Configuration, PushNotificationService);

            service.MessageOperation(arg);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 public static void MessageOperation(MessageOperationParam arg)
 {
     exceptionHandling(delegate
     {
         Instance.MessageOperation(Token, arg);
     });
 }
Ejemplo n.º 6
0
        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)
            {
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
                }
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 public void MessageOperation(Token token, MessageOperationParam arg)
 {
     throw new NotImplementedException();
 }
 public void MessageOperation(Token token, MessageOperationParam arg)
 {
     exceptionHandling(token, () => InternalService.MessageOperation(token, arg));
 }