Example #1
0
        private List <T_DISK_INFO> Get_Selected_DISK_INFO()
        {
            List <T_DISK_INFO> l_dele = new List <T_DISK_INFO>();

            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[0].Value.ToString() == "1")
                {
                    T_DISK_INFO tdi = dataGridView1.Rows[i].Tag as T_DISK_INFO;
                    l_dele.Add(tdi);
                }
            }
            return(l_dele);
        }
Example #2
0
        private void button5_Click(object sender, EventArgs e)
        {
            if (lb_Files.Tag != null && cb_disk.Tag != null)
            {
                List <T_Video>     lts           = (List <T_Video>)lb_Files.Tag;
                List <T_DISK_INFO> dis           = (List <T_DISK_INFO>)cb_disk.Tag;
                T_DISK_INFO        di            = dis[cb_disk.SelectedIndex];
                double             d_source_size = 0;
                if (lb_Total_Size.Tag != null)
                {
                    d_source_size = Math.Round((double)lb_Total_Size.Tag, 4);
                }

                Task_Info ti = new Task_Info();
                ti.id = Guid.NewGuid().ToString();
                List <string> arr_file_path = new List <string>();
                List <string> arr_copy_type = new List <string>();
                foreach (var v in lts)
                {
                    arr_file_path.Add(v.FILE_FULLPATH);
                    if (v.FILE_INDEX == "1")
                    {
                        arr_copy_type.Add(v.FILE_INDEX);
                    }
                    else
                    {
                        arr_copy_type.Add("0");
                    }
                }
                ti.arr_source = arr_file_path.ToArray();
                ti.copy_type  = string.Join(",.,", arr_copy_type);

                ti.source_size = d_source_size;
                ti.target      = di.LOGICAL_NAME;
                if (di.LOGICAL_TOTALSIZE.HasValue)
                {
                    ti.target_size = Math.Round(di.LOGICAL_TOTALSIZE.Value, 4);
                }
                if (di.LOGICAL_FREESPACE.HasValue)
                {
                    ti.target_free_size = di.LOGICAL_FREESPACE.Value;
                }

                int i_exists = -1;      //是否存在相同的硬盘拷贝
                for (int i = 0; i < lts.Count; i++)
                {
                    if (lts[i].FILE_ROOT == ti.target)
                    {
                        i_exists = i;
                        break;
                    }
                }

                //此处应该增加排除相同任务的判定,待到重构时增加



                if (i_exists > -1)
                {
                    if (MessageBox.Show("拷贝任务中拷贝文件【" + (i_exists + 1) + "】存在源硬盘与目标硬盘名称相同【" + ti.target + "】,是否继续?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.OK)
                    {
                        return;
                    }
                }

                //待添加硬盘剩余空间的判定


                DataGridViewRow dr = new DataGridViewRow();
                dr.CreateCells(dgv_Task);
                dr.Cells[0].Value = "0";
                dr.Cells[1].Value = ti.source_size;
                dr.Cells[2].Value = ti.target;
                dr.Cells[3].Value = ti.target_size;
                dr.Tag            = ti;
                //添加的行作为第一行
                dgv_Task.Rows.Insert(0, dr);

                int i_count = Convert.ToInt16(lb_Task_count.Tag);
                i_count++;
                string str_format = "数量:{0}";
                lb_Task_count.Tag  = i_count;
                lb_Task_count.Text = string.Format(str_format, i_count);

                Command_info c = new Command_info();
                c.type = 4;
                c.msg  = string.Join(",.,", ti.arr_source);
                c.msg2 = ti.copy_type;
                c.tag  = Helper_Json.Encode(ti);
                //c.tag = ti.id;
                string str_c = Helper_Json.Encode(c);

                int i_success = MyVideoBussiness.Add_Task_Info(ti, lts);
                if (i_success > 0)
                {
                    long r_l = h_redis.RedisPub(str_r_rep, str_c);
                    SetrichTextBox("拷贝任务....." + ti.arr_source.Length + "..." + i_success);
                }
                else
                {
                    SetrichTextBox("记录失败....." + i_success + "...");
                }
            }
        }