Ejemplo n.º 1
0
        private void CalFileState()
        {
            if (this.FileState == FileStates.Receiving)
            {
                return;
            }
            try
            {
                this.tbName.ToolTip = System.IO.Path.GetFileName(this.FullName);//?.Split('\\').LastOrDefault();
            }
            catch
            {
                return;
            }
            if (ChatViewModel == null)
            {
                ChatViewModel = AppData.MainMV.ChatListVM.SelectedItem;
            }
            else if (_targetModel.MessageState == MessageStates.Fail)
            {
                if (_operateTask != null)
                {
                    _operateTask.Cancel();
                }
                AcioningItems.Remove(this);
            }

            if (_targetModel == null && this.DataContext is MessageModel item)
            {
                _targetModel = item;

                var target = FileItems.FirstOrDefault(info => info.MsgKey == item.MsgKey);

                if (target == null)
                {
                    target = item;
                    FileItems.Add(item);
                }

                if (string.IsNullOrEmpty(target.MsgKey))
                {
                    target.MsgKey = Guid.NewGuid().ToString();
                }
                this.DataContext = _targetModel = target;
            }

            if (this.IsMainView == false)
            {
                if (_targetModel.ResourceModel.FileState != FileStates.None)
                {
                    return;
                }
            }
            //是否发送者
            bool isSender = _targetModel.Sender.ID == AppData.Current.LoginUser.ID;

            _targetModel.ResourceModel.FileImg = Helper.FileHelper.GetFileImage(this.FullName, false);
            this.gridLayout.ToolTip            = System.IO.Path.GetFileName(this.FullName);
            if (File.Exists(this.FullName))
            {
                if (isSender && _targetModel.IsSending)
                {
                    if (this._targetModel.ResourceModel.FileState == FileStates.SendOffline || this._targetModel.ResourceModel.FileState == FileStates.SendOnline)
                    {
                    }
                    else
                    {
                        this.FileState = _targetModel.ResourceModel.FileState = FileStates.SendOnline;
                        this.OnlineSend();
                    }
                }
                else
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed;
                    _completeTime  = DateTime.Now.AddMinutes(-5);
                }
            }
            else
            {
                if (isSender) //发送者
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed;
                    _completeTime  = DateTime.Now.AddMinutes(-5);
                }
                else
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve;
                }
            }
        }
Ejemplo n.º 2
0
 public CaseFileItemInstance GetCaseFileItem(string id)
 {
     return(FileItems.FirstOrDefault(f => f.Id == id));
 }
Ejemplo n.º 3
0
        private void CalFileState()
        {
            if (ChatViewModel == null)
            {
                ChatViewModel = AppData.MainMV.ChatListVM.SelectedItem;
            }
            else if (_targetModel?.MessageState == MessageStates.Fail)
            {
                if (_operateTask != null)
                {
                    _operateTask.Cancel();
                }
                AcioningItems.Remove(this);
            }

            if (_targetModel == null && this.DataContext is MessageModel item)
            {
                this.PreviewMouseRightButtonUp -= SmallVideo_PreviewMouseRightButtonUp;
                _targetModel = item;

                var target = FileItems.FirstOrDefault(info => info.MsgKey == item.MsgKey);

                if (target == null)
                {
                    target = item;
                    FileItems.Add(item);
                }

                if (string.IsNullOrEmpty(target.MsgKey))
                {
                    target.MsgKey = Guid.NewGuid().ToString();
                }
                _completeTime    = _targetModel.SendTime;
                _isMine          = _targetModel.IsMine;
                _isSync          = _targetModel.IsSync;
                this.DataContext = _targetModel = target;
                if (_completeTime != null)
                {
                    _targetModel.SendTime = _completeTime.Value;
                }
                _targetModel.IsMine = _isMine;
                _targetModel.IsSync = _isSync;

                //this.gridProgress.Visibility = Visibility.Visible;
                //this.borderPlay.Visibility = Visibility.Collapsed;
            }
            else
            {
                if (_targetModel != null)
                {
                    return;
                }
                this.gridProgress.Visibility = Visibility.Collapsed;
                this.borderPlay.Visibility   = Visibility.Visible;
                this.imgReset.Visibility     = Visibility.Collapsed;
                this.imgDownload.Visibility  = Visibility.Collapsed;

                this.PreviewMouseRightButtonUp += SmallVideo_PreviewMouseRightButtonUp;
                return;
            }
            if (SDKClient.SDKClient.Instance.property.CurrentAccount.Isforbidden)
            {
                _targetModel.MessageState = MessageStates.Warn;
            }

            //是否发送者
            bool   isSender = _targetModel.Sender.ID == AppData.Current.LoginUser.ID;
            string filePath = System.IO.Path.Combine(SDKClient.SDKClient.Instance.property.CurrentAccount.filePath, this.VideoPath);

            if (System.IO.File.Exists(filePath) || System.IO.File.Exists(this.VideoPath))
            {
                if (isSender)                   //当前作为发送方
                {
                    if (_targetModel.IsSending) //若是正在发送中
                    {
                        this.FileState = _targetModel.ResourceModel.FileState = FileStates.SendOffline;
                        this.gridProgress.Visibility = Visibility.Visible;
                        this.borderPlay.Visibility   = Visibility.Collapsed;
                        this.imgReset.Visibility     = Visibility.Collapsed;
                        this.imgDownload.Visibility  = Visibility.Collapsed;
                        SendVideo();
                    }
                    else if (_targetModel.ResourceModel.DBState == 0)
                    {
                        this.gridProgress.Visibility = Visibility.Collapsed;
                        this.borderPlay.Visibility   = Visibility.Visible;
                        this.imgReset.Visibility     = Visibility.Collapsed;
                        this.imgDownload.Visibility  = Visibility.Collapsed;
                        //HasContexMenu = true;
                    }
                    else
                    {
                        this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed;
                        if (_targetModel.IsSync)
                        {
                            _completeTime = _targetModel.SendTime;
                        }
                        else if (_completeTime == null)
                        {
                            _completeTime = DateTime.Now.AddMinutes(-5);
                        }
                    }
                }
                else  //当前用户作为接收方,若文件已有则认为已经成功
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed;

                    if (_targetModel.IsSync)
                    {
                        _completeTime = _targetModel.SendTime;
                    }
                    else if (_completeTime == null)
                    {
                        _completeTime = DateTime.Now.AddMinutes(-5);
                    }
                }
            }
            else
            {
                if (isSender) //发送者
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve;
                    if (_targetModel.IsSync)
                    {
                        _completeTime = _targetModel.SendTime;
                    }
                    else if (_completeTime == null)
                    {
                        _completeTime = DateTime.Now.AddMinutes(-5);
                    }
                }
                else
                {
                    this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve;
                }
            }
        }