Exemple #1
0
 /// <summary>
 /// 删除文件或者文件夹
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void tsbDelete_Click(object sender, EventArgs e)
 {
     ListView.SelectedListViewItemCollection lstSelected = LvDataContent.SelectedItems;
     if (lstSelected.Count > 0)
     {
         foreach (ListViewItem item in LvDataContent.SelectedItems)
         {
             TDataInfoDTO dto = (item as ListViewItemEx).ItemData;
             //删除文件夹
             if (dto.IsForlder)
             {
                 TDataInfoDTO[] result = _client.TDataInGetByParentKey(dto.MetaDataId);
                 if (result != null && result.Length > 0)
                 {
                     Array.ForEach(result, t => { _client.TDataInfoDelete(t.MetaDataId); });
                 }
             }
             bool success = _client.TDataInfoDelete(dto.MetaDataId);
             if (success)
             {
                 LvDataContent.Items.Remove(item);
             }
         }
     }
 }
Exemple #2
0
        /// <summary>
        /// 返回
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbReturn_Click(object sender, EventArgs e)
        {
            TDataInfoDTO dto      = _client.TDataInfoQueryById(_currentId);
            string       parentId = dto.ParentId;

            IniliazeListView(parentId);
        }
Exemple #3
0
        public void View(string dataId)
        {
            panel1.Visible = true;
            TDataInfoDTO dto = _client.TDataInfoQueryById(dataId);

            Text = dto.DataName;
            //文件图片
            if (dto.DataName.ToLower().EndsWith(".doc") || dto.DataName.ToLower().EndsWith(".docx") || dto.DataName.ToLower().EndsWith(".ppt") || dto.DataName.ToLower().EndsWith(".pptx") || dto.DataName.ToLower().EndsWith(".xls"))
            {
                string dns = _client.Endpoint.Address.Uri.AbsoluteUri;
                dns            = dns.Remove(dns.LastIndexOf('/'));
                panel1.Visible = false;
                webBrowser1.Navigate(dns + "/FlexPaper/View.htm?name=" + dto.MetaDataId);
            }
            else if (dto.DataName.ToLower().EndsWith(".png") || dto.DataName.ToLower().EndsWith(".jpg") || dto.DataName.ToLower().EndsWith(".bmp") || dto.DataName.ToLower().EndsWith(".jpeg"))
            {
                string dns = _client.Endpoint.Address.Uri.AbsoluteUri;
                dns            = dns.Remove(dns.LastIndexOf('/'));
                panel1.Visible = false;
                webBrowser1.Navigate(dns + "/imgviewer.html?name=" + dto.MetaDataId + Path.GetExtension(dto.DataName));
            }
            else if (dto.DataName.ToLower().EndsWith(".txt"))
            {
                string dns = _client.Endpoint.Address.Uri.AbsoluteUri;
                dns            = dns.Remove(dns.LastIndexOf('/'));
                panel1.Visible = false;
                webBrowser1.Navigate(dns + "/vedios/" + dto.MetaDataId + Path.GetExtension(dto.DataName));
            }
            //视频
            else if (dto.DataName.ToLower().EndsWith("mp4") || dto.DataName.ToLower().EndsWith("ogg") || dto.DataName.ToLower().EndsWith("webm") || dto.DataName.ToLower().EndsWith("flv"))
            {
                string dns = _client.Endpoint.Address.Uri.AbsoluteUri;

                dns = dns.Remove(dns.LastIndexOf('/'));
                //System.Diagnostics.Process.Start("iexplore.exe", "http://" + dns + "/index.html?name=" + dto.DataName);
                panel1.Visible = false;

                webBrowser1.Navigate(dns + "/index.html?name=" + dto.MetaDataId + Path.GetExtension(dto.DataName));
            }
            //压缩文件
            else if (dto.DataName.ToLower().EndsWith("zip") || dto.DataName.ToLower().EndsWith("rar"))
            {
                string path = Path.Combine(Path.GetTempPath(), dto.DataName);
                if (File.Exists(path))
                {
                    System.Diagnostics.Process.Start(path);
                    this.Close();
                }
                if (backgroundWorker1.IsBusy == false)
                {
                    panel1.Visible = true;
                    backgroundWorker1.RunWorkerAsync(new object[] { dto, path });
                }
            }
            else
            {
                progressBar1.Visible = false;
                label1.Text          = "文件类型不支持预览...";
            }
        }
Exemple #4
0
 /// <summary>
 /// 更新一条TDataInfo记录
 /// </summary>
 /// <param name="dto">TDataInfo实体</param>
 /// <returns>是否更新成功</returns>
 public bool Update(TDataInfoDTO dto)
 {
     try
     {
         string sql = "update T_DataInfo set ParentId=@ParentId,DataName=@DataName,LastModifyTime=@LastModifyTime,DataDescription=@DataDescription,DownloadTimes=@DownloadTimes where MetaDataId=@MetaDataId";
         return(_repository.ExecuteCommand(sql, new DbParameter[] { new SqlParameter("@DataName", dto.DataName), new SqlParameter("@ParentId", dto.ParentId == null ? string.Empty : dto.ParentId), new SqlParameter("@LastModifyTime", dto.LastModifyTime), new SqlParameter("@DataDescription", dto.DataDescription == null ? string.Empty : dto.DataDescription), new SqlParameter("@DownloadTimes", dto.DownloadTimes), new SqlParameter("@MetaDataId", dto.MetaDataId) }) > 0);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #5
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            string       filePath = e.Argument.ToString();
            TDataInfoDTO result   = new TDataInfoDTO();

            result.MetaDataId = Guid.NewGuid().ToString();
            result.DataName   = Path.GetFileName(filePath);
            // result.DataDescription = txtDescription.Text;
            byte[] total = IOHelper.GetStreamBuffer(filePath);
            result.DownloadTimes  = 0;
            result.LastModifyTime = DateTime.Now;
            result.CreateTime     = DateTime.Now;
            result.BaseInfoId     = _id;
            result.UploadPeople   = _uploadBy;
            result.FileSize       = total.Length.ToString();

            bool success = _client.TDataInfoAdd(result);

            if (success)
            {
                byte[] buffer  = new byte[4096000]; //4M
                int    percent = total.Length / buffer.Length;
                for (long index = 0; index < percent; index++)
                {
                    buffer = total.Skip((int)index * buffer.Length).Take(buffer.Length).ToArray();
                    bool upSuccess = _client.TDataInfoUploadFile(buffer, result.MetaDataId, (int)(index * buffer.Length / 40960000));
                    if (upSuccess == false)
                    {
                        e.Result = false;
                        return;
                    }
                    backgroundWorker1.ReportProgress((int)((index + 1) * buffer.Length * 100 / total.Length));
                    manualReset.WaitOne();
                }
                int left = total.Length % buffer.Length;
                if (left > 0)
                {
                    byte[] leftBuffer = total.Skip(percent * buffer.Length).Take(left).ToArray();
                    bool   upSuccess  = _client.TDataInfoUploadFile(leftBuffer, result.MetaDataId, total.Length / 40960000);
                    if (upSuccess == false)
                    {
                        e.Result = false;
                        return;
                    }
                    manualReset.WaitOne();
                    backgroundWorker1.ReportProgress(100);
                }
                e.Result = true;
            }
        }
Exemple #6
0
        private void tsmOpen_Click(object sender, EventArgs e)
        {
            TDataInfoDTO dto = (LvDataContent.SelectedItems[0] as ListViewItemEx).ItemData;

            if (dto.IsForlder)
            {
                IniliazeListView(dto.MetaDataId);
            }
            else
            {
                //打开
                FormView view = new FormView();
                view.Show();
                view.View(dto.MetaDataId);
            }
        }
Exemple #7
0
 /// <summary>
 /// 新增一条TDataInfo记录
 /// </summary>
 /// <param name="dto">TDataInfo实体</param>
 /// <returns>是否新增成功</returns>
 public bool Add(TDataInfoDTO dto)
 {
     try
     {
         var entity = dto.ProjectedAs <T_DataInfo>();
         if (_repository.Insert(entity) > 0)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #8
0
 private void UpdateViewItem(TDataInfoDTO dto, ListViewItemEx lvi)
 {
     lvi.Text     = dto.DataName;
     lvi.ItemData = dto;
     if (dto.IsForlder == false)
     {
         string tempFileExtension = Path.GetExtension(dto.DataName);
         lvi.ImageIndex  = CommomHelper.GetImageIndex(dto, imageList1);
         lvi.ToolTipText = string.Format("文件名称:{0}\r\n文件大小:{1}M\r\n上传时间:{2}\r\n上传人:{3}\r\n修改时间:{4}\r\n下载次数:{5}\r\n文件描述:{6}", dto.DataName, CommomHelper.ParseMB(dto.FileSize), dto.CreateTime, dto.UploadPeople, dto.LastModifyTime, dto.DownloadTimes, dto.DataDescription);
     }
     else
     {
         if (!imageList1.Images.Keys.Contains("Folder"))
         {
             imageList1.Images.Add("Folder", Resources.folder);
         }
         lvi.ImageIndex = imageList1.Images.Keys.IndexOf("Folder");
         string.Format("文件名称:{0}\r\n上传时间:{1}\r\n上传人:{2}\r\n修改时间:{3}\r\n文件描述:{4}", dto.DataName, dto.CreateTime, dto.UploadPeople, dto.LastModifyTime, dto.DataDescription);
     }
 }
Exemple #9
0
        /// <summary>
        /// 新建文件夹
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbNewForlder_Click(object sender, EventArgs e)
        {
            TDataInfoDTO dto = new TDataInfoDTO();

            dto.BaseInfoId     = _baseInfoId;
            dto.CreateTime     = DateTime.Now;
            dto.DataName       = "新建文件夹";
            dto.UploadPeople   = CommonData.LoginInfo.EmployeeName;
            dto.IsForlder      = true;
            dto.DownloadTimes  = 0;
            dto.LastModifyTime = DateTime.Now;
            dto.MetaDataId     = Guid.NewGuid().ToString();
            dto.ParentId       = _currentId;
            bool result = _client.TDataInfoAdd(dto);

            if (result)
            {
                CreateViewItem(dto, LvDataContent.Items.Count, true);
                //LvDataContent.Items[LvDataContent.Items.Count - 1].BeginEdit();
            }
        }
Exemple #10
0
 private void LvDataContent_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Left)
     {
         if (LvDataContent.SelectedItems.Count == 1)
         {
             TDataInfoDTO dto = (LvDataContent.SelectedItems[0] as ListViewItemEx).ItemData;
             if (dto.IsForlder)
             {
                 IniliazeListView(dto.MetaDataId);
             }
             else
             {
                 //打开
                 FormView view = new FormView();
                 view.Show();
                 view.View(dto.MetaDataId);
             }
         }
     }
 }
Exemple #11
0
        private void LvDataContent_AfterLabelEdit(object sender, LabelEditEventArgs e)
        {
            string newText = e.Label;

            if (string.IsNullOrEmpty(newText) || newText == _oldText)
            {
                e.CancelEdit = true;
                return;
            }
            TDataInfoDTO dto = (LvDataContent.Items[e.Item] as ListViewItemEx).ItemData;

            dto.DataName       = newText;
            dto.LastModifyTime = DateTime.Now;
            dto.ParentId       = dto.ParentId == null ? string.Empty : dto.ParentId;
            bool success = _client.TDataInfoUpdate(dto);

            if (success)
            {
                UpdateViewItem(dto, LvDataContent.Items[e.Item] as ListViewItemEx);
            }
        }
Exemple #12
0
        private void tsbUploadForlder_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();

            //dialog.RootFolder = Environment.SpecialFolder.MyComputer;
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string folderPath = dialog.SelectedPath;
                string folderName = folderPath.Remove(0, folderPath.LastIndexOf("\\") + 1);
                //新建文件夹
                TDataInfoDTO dto = new TDataInfoDTO();
                dto.BaseInfoId     = _baseInfoId;
                dto.CreateTime     = DateTime.Now;
                dto.DataName       = folderName;
                dto.UploadPeople   = CommonData.LoginInfo.EmployeeName;
                dto.IsForlder      = true;
                dto.DownloadTimes  = 0;
                dto.LastModifyTime = DateTime.Now;
                dto.MetaDataId     = Guid.NewGuid().ToString();
                dto.ParentId       = _currentId;
                bool result = _client.TDataInfoAdd(dto);
                if (result)
                {
                    CreateViewItem(dto, LvDataContent.Items.Count, false);
                    IniliazeListView(dto.MetaDataId);
                    //开始上传文件

                    Array.ForEach(Directory.GetFiles(folderPath), t =>
                    {
                        ListViewItemEx ctr       = new ListViewItemEx(_baseInfoId);
                        ctr.Text                 = Path.GetFileName(t);
                        string tempFileExtension = Path.GetExtension(t);
                        LvDataContent.Items.Add(ctr);
                        ctr.UploadFile(t, _currentId, imageList1);
                    });
                    //LvDataContent.Items[LvDataContent.Items.Count - 1].BeginEdit();
                }
            }
        }
Exemple #13
0
 public void UploadFile(string filePath, string parentId, ImageList lstImage)
 {
     _saveHistory = filePath;
     try
     {
         TDataInfoDTO uploadDTO = new TDataInfoDTO();
         uploadDTO.MetaDataId     = Guid.NewGuid().ToString();
         uploadDTO.DataName       = Path.GetFileName(filePath);
         uploadDTO.DownloadTimes  = 0;
         uploadDTO.LastModifyTime = DateTime.Now;
         uploadDTO.CreateTime     = DateTime.Now;
         uploadDTO.BaseInfoId     = _baseId;
         uploadDTO.UploadPeople   = CommonData.LoginInfo.EmployeeName;
         FileInfo info = new FileInfo(filePath);
         uploadDTO.FileSize  = info.Length.ToString();
         uploadDTO.IsForlder = false;
         uploadDTO.ParentId  = parentId;
         bool success = _client.TDataInfoAdd(uploadDTO);
         if (success && !_bgwork.IsBusy)
         {
             this.ToolTipText = string.Format("文件名称:{0}\r\n文件大小:{1}M\r\n上传时间:{2}\r\n上传人:{3}\r\n修改时间:{4}\r\n下载次数:{5}\r\n文件描述:{6}", uploadDTO.DataName, CommomHelper.ParseMB(uploadDTO.FileSize), uploadDTO.CreateTime, uploadDTO.UploadPeople, uploadDTO.LastModifyTime, uploadDTO.DownloadTimes, uploadDTO.DataDescription);
             this.SubItems.Add(uploadDTO.DataName);
             this.SubItems.Add(CommomHelper.ParseMB(uploadDTO.FileSize) + "M");
             this.SubItems.Add(uploadDTO.LastModifyTime.Value.ToString());
             this.SubItems.Add(uploadDTO.UploadPeople);
             this.ImageIndex = CommomHelper.GetImageIndex(filePath, uploadDTO.MetaDataId, lstImage);
             ItemData        = uploadDTO;
             byte[] buffer = IOHelper.GetStreamBuffer(filePath);
             OpareteType = OpareteTypeEnum.Upload;
             ShowProgressBar();
             _bgwork.RunWorkerAsync(new object[] { buffer, uploadDTO.MetaDataId });
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
Exemple #14
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                object[]     obj       = e.Argument as object[];
                TDataInfoDTO dto       = obj[0] as TDataInfoDTO;
                long         totalSize = long.Parse(dto.FileSize);
                if (dto == null)
                {
                    e.Result = null;
                    return;
                }

                long   total   = 0;
                byte[] buffer  = null;
                bool   success = true;
                while (success)
                {
                    using (FileStream stream = new FileStream(obj[1].ToString(), FileMode.Append))
                    {
                        success = _client.TDataInfoDownloadFile(out buffer, total, dto.MetaDataId);
                        if (success == false)
                        {
                            break;
                        }
                        total += buffer.Length;
                        backgroundWorker1.ReportProgress((int)(total * 100 / totalSize));
                        stream.Write(buffer, 0, buffer.Length);
                    }
                }
                e.Result = obj[1].ToString();
            }
            catch (Exception)
            {
                e.Result = null;
            }
        }
Exemple #15
0
        private void CreateViewItem(TDataInfoDTO dto, int index, bool edit = false)
        {
            ListViewItemEx lvi = new ListViewItemEx();

            lvi.ItemData = dto;
            lvi.Text     = dto.DataName;
            if (dto.IsForlder == false)
            {
                lvi.ImageIndex  = CommomHelper.GetImageIndex(dto, imageList1);
                lvi.ToolTipText = string.Format("文件名称:{0}\r\n文件大小:{1}M\r\n上传时间:{2}\r\n上传人:{3}\r\n修改时间:{4}\r\n下载次数:{5}\r\n文件描述:{6}", dto.DataName, CommomHelper.ParseMB(dto.FileSize), dto.CreateTime, dto.UploadPeople, dto.LastModifyTime, dto.DownloadTimes, dto.DataDescription);
                lvi.SubItems.Add(dto.DataName);
                lvi.SubItems.Add(CommomHelper.ParseMB(dto.FileSize) + "M");
                lvi.SubItems.Add(dto.LastModifyTime.Value.ToString());
                lvi.SubItems.Add(dto.UploadPeople);
                LvDataContent.Items.Insert(index, lvi);
                //lvi.SetOtherControl();
            }
            else
            {
                if (!imageList1.Images.Keys.Contains("Folder"))
                {
                    imageList1.Images.Add("Folder", Resources.folder);
                }
                lvi.ImageIndex = imageList1.Images.Keys.IndexOf("Folder");
                string.Format("文件名称:{0}\r\n上传时间:{1}\r\n上传人:{2}\r\n修改时间:{3}\r\n文件描述:{4}", dto.DataName, dto.CreateTime, dto.UploadPeople, dto.LastModifyTime, dto.DataDescription);
                lvi.SubItems.Add(dto.DataName);
                lvi.SubItems.Add(CommomHelper.ParseMB(dto.FileSize) + "M");
                lvi.SubItems.Add(dto.LastModifyTime.Value.ToString());
                lvi.SubItems.Add(dto.UploadPeople);
                LvDataContent.Items.Insert(index, lvi);
            }
            if (edit)
            {
                lvi.BeginEdit();
            }
        }
Exemple #16
0
        /// <summary>
        /// 结束拖动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_DragDrop(object sender, DragEventArgs e)
        {
            // 返回插入标记的索引值
            int index = LvDataContent.InsertionMark.Index;

            // 如果插入标记不可见,则退出.
            if (index == -1)
            {
                return;
            }
            // 如果插入标记在项目的右面,使目标索引值加一
            if (LvDataContent.InsertionMark.AppearsAfterItem && index < LvDataContent.Items.Count - 1 && (LvDataContent.Items[index] as ListViewItemEx).ItemData.IsForlder == false)
            {
                index++;
            }
            ListViewItemEx target = LvDataContent.Items[index] as ListViewItemEx;

            //移动项
            if (e.Effect == DragDropEffects.Move)
            {
                // 返回拖拽项
                Dictionary <ListViewItemEx, int> items = (Dictionary <ListViewItemEx, int>)e.Data.GetData(typeof(Dictionary <ListViewItemEx, int>));
                foreach (var item in items)
                {
                    if (target.ItemData.IsForlder == false)
                    {
                        CreateViewItem(item.Key.ItemData, index);
                        LvDataContent.Items.Remove(item.Key);
                        if (item.Value >= index)
                        {
                            index++;
                        }
                    }
                    else
                    {
                        TDataInfoDTO sourceDTO = item.Key.ItemData;
                        sourceDTO.ParentId = target.ItemData.MetaDataId;
                        bool success = _client.TDataInfoUpdate(sourceDTO);
                        if (success)
                        {
                            LvDataContent.Items.Remove(item.Key);
                        }
                    }
                }
            }
            else if (e.Effect == (DragDropEffects.Copy | DragDropEffects.Link | DragDropEffects.Move))
            {
                if (target.ItemData.IsForlder)
                {
                    IniliazeListView(target.ItemData.MetaDataId);
                }
                //上传文件
                string[] result = e.Data.GetData(DataFormats.FileDrop) as string[];
                LvDataContent.ListViewItemSorter = new ListViewIndexComparer();
                Array.ForEach(result, t =>
                {
                    ListViewItemEx ctr       = new ListViewItemEx(_baseInfoId);
                    ctr.Text                 = Path.GetFileName(t);
                    string tempFileExtension = Path.GetExtension(t);
                    LvDataContent.Items.Add(ctr);
                    ctr.UploadFile(t, _currentId, imageList1);
                });
            }
        }
Exemple #17
0
        public static int GetImageIndex(TDataInfoDTO dto, ImageList lstImg)
        {
            string fileExtention = Path.GetExtension(dto.DataName);
            string keyword       = fileExtention;

            try
            {
                if (!lstImg.Images.Keys.Contains(fileExtention))
                {
                    //图片文件,寻找图片缩略图
                    if (fileExtention.ToLower().EndsWith(".png") || fileExtention.ToLower().EndsWith(".bmp") || fileExtention.ToLower().EndsWith(".jpeg") || fileExtention.ToLower().EndsWith(".jpg"))
                    {
                        keyword = dto.MetaDataId;
                        Image  targetImg = null;
                        string tempDir   = Path.Combine(System.Environment.GetEnvironmentVariable("TEMP"), "64");
                        if (!Directory.Exists(tempDir))
                        {
                            Directory.CreateDirectory(tempDir);
                        }
                        string tempPath = Path.Combine(tempDir, dto.MetaDataId + ".jpeg");
                        if (!File.Exists(tempPath))
                        {
                            //下载缩略图
                            string temp    = Path.Combine(System.Environment.GetEnvironmentVariable("TEMP"), dto.MetaDataId + fileExtention);
                            long   total   = 0;
                            byte[] buffer  = null;
                            bool   success = true;
                            while (success)
                            {
                                using (FileStream stream = new FileStream(temp, FileMode.Append))
                                {
                                    success = _client.TDataInfoDownloadFile(out buffer, total, dto.MetaDataId);
                                    if (success == false)
                                    {
                                        break;
                                    }
                                    total += buffer.Length;
                                    stream.Write(buffer, 0, buffer.Length);
                                }
                            }
                            Image sourceImg = Image.FromFile(temp);
                            int   width     = sourceImg.Width * 64 / sourceImg.Height;
                            targetImg = GetReducedImage(sourceImg, width, 64);
                            targetImg.Save(tempPath, ImageFormat.Jpeg);
                            // File.Delete(temp);
                        }
                        else
                        {
                            targetImg = Image.FromFile(tempPath);
                        }
                        lstImg.Images.Add(keyword, targetImg);
                    }
                    else
                    {
                        keyword = fileExtention;
                        lstImg.Images.Add(keyword, IconsExtention.IconFromExtension(fileExtention, IconsExtention.SystemIconSize.Large));
                    }
                }
            }
            catch (Exception)
            {
                if (fileExtention.EndsWith(".exe"))
                {
                    keyword = fileExtention;
                    lstImg.Images.Add(keyword, Resources.exe);
                }
            }
            return(lstImg.Images.IndexOfKey(keyword));
        }