/// <summary>
        /// 获取全部合订
        /// </summary>
        /// <returns>全部合订</returns>
        public IEnumerable GetAllPeriodBindingsArray()
        {
            List <PeriodicalBinding> result = new List <PeriodicalBinding>();

            try
            {
                DataTable datatable = periodicalDal.GetAllPeriodBindings();
                foreach (DataRow dr in datatable.Rows)
                {
                    PeriodicalBinding periodicalBinding = new PeriodicalBinding()
                    {
                        Id            = (int)dr["编号"],
                        BindingIdList = dr["合订编号"].ToString(),
                        BookId        = (int)dr["流通库编号"],
                        BindingName   = dr["合订本名称"].ToString(),
                    };
                    result.Add(periodicalBinding);
                }
                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }
        }
 /// <summary>
 /// 合订按钮点击事件
 /// </summary>
 private void button_Add_Click(object sender, EventArgs e)
 {
     try
     {
         List <string> errorList = new List <string>();//创建一个错误列表
         //获取根据当前页面内容生成的订单(若有错误会被添加到错误列表中)
         PeriodicalBinding binding = GetPeriodicalBinding(ref errorList);
         //判断是否添加订单成功
         if (periodicalBll.AddPeriodicalBinding(binding, ref errorList))
         {
             MessageBox.Show("添加成功");
         }
         else
         {
             MessageBox.Show("添加失败");
             foreach (var i in errorList)
             {
                 MessageBox.Show(i);//逐条显示错误信息
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     DataBind();//数据绑定
 }
        /// <summary>
        /// 获取当前窗体所表示的合订记录
        /// </summary>
        /// <param name="error">错误列表</param>
        /// <returns>期刊合订记录</returns>
        private PeriodicalBinding GetPeriodicalBinding(ref List <string> error)
        {
            List <string> errorList = new List <string>();//错误列表
            //根据页面内容构造合订记录
            PeriodicalBinding binding = new PeriodicalBinding()
            {
                BindingName   = textBox_bindingName.Text,
                BindingIdList = GetBindList()
            };

            error = errorList; //返回错误列表
            return(binding);   //返回合订
        }
Пример #4
0
        /// <summary>
        /// 增加一条期刊合订记录
        /// </summary>
        /// <param name="binding">期刊合订记录</param>
        /// <returns>增加成功与否</returns>
        public bool AddPeriodicalBinding(PeriodicalBinding binding)
        {
            string sqlStr = "AddPeriodicalBinding";

            //储存Datatable
            MySqlParameter[] para = new MySqlParameter[]//存储相应参数的容器
            {
                new MySqlParameter("@returnValue", MySqlDbType.Bit, 1),
                new MySqlParameter("@bindingIdList", binding.BindingIdList),
                new MySqlParameter("@bindingName", binding.BindingName),
            };
            para[0].Direction = ParameterDirection.Output;//将第一个变量设为输出变量
            int count = helper.ExecuteNonQuery(sqlStr, para, CommandType.StoredProcedure);

            return(para[0].Value.ToString() == "1");
        }
        /// <summary>
        /// 获取当前页面勾选情况所代表的合订列表
        /// </summary>
        private string GetBindList()
        {
            List <string> ls = new List <string>();

            if (dataGridView_Periodical.Rows.Count <= 0)
            {
                throw new Exception("error");
            }
            foreach (DataGridViewRow i in dataGridView_Periodical.Rows)
            {
                var dgvCheck = (DataGridViewCheckBoxCell)i.Cells[0];
                if (Convert.ToBoolean(dgvCheck.EditedFormattedValue))
                {
                    ls.Add(i.Cells[1].Value.ToString());
                }
            }
            return(PeriodicalBinding.GetBindingListString(ls));
        }
        public void TestAddPeriodicalBinding()
        {
            List <string>     errorList = new List <string>();
            PeriodicalBinding binding1  = new PeriodicalBinding()
            {
                Id            = 1,
                BookId        = 1,
                BindingIdList = "",
                BindingName   = "单元测试Add",
            };
            PeriodicalBinding binding2 = new PeriodicalBinding()
            {
                Id            = 1,
                BookId        = 1,
                BindingIdList = "2|3",
                BindingName   = "",
            };

            Assert.AreEqual(false, periodicalBll.AddPeriodicalBinding(binding1, ref errorList));
            Assert.AreEqual(false, periodicalBll.AddPeriodicalBinding(binding2, ref errorList));
            int max1Id = -1;
            int max2Id = -1;

            Book[] books = ((List <Book>)periodicalBll.GetAllUnbindedPeriodicalArray()).ToArray();
            if (books.Length < 2)
            {
                return;
            }
            else
            {
                max1Id = books[books.Length - 1].Id;
                max2Id = books[books.Length - 2].Id;
            }
            PeriodicalBinding binding = new PeriodicalBinding()
            {
                Id            = 1,
                BookId        = 1,
                BindingIdList = max1Id + "|" + max2Id,
                BindingName   = "单元测试Add",
            };

            Assert.AreEqual(true, periodicalBll.AddPeriodicalBinding(binding, ref errorList));
        }
        /// <summary>
        /// 增加一条期刊合订记录
        /// </summary>
        /// <param name="binding">期刊合订记录</param>
        /// <returns>增加成功与否</returns>
        public bool AddPeriodicalBinding(PeriodicalBinding binding, ref List <string> errorMsg)
        {
            bool result = false;

            try
            {
                if (!PeriodicalBinding.isNull(binding))                       //是否有空项
                {
                    if (PeriodicalBinding.isNormative(binding, ref errorMsg)) //是否符合规范
                    {
                        result = periodicalDal.AddPeriodicalBinding(binding);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }
            return(result);
        }