コード例 #1
0
ファイル: Form1.cs プロジェクト: loya/Creator
        private void btnStartCreate_Click(object sender, EventArgs e)
        {
            if (htConditions.Count == 0)
            {
                MessageBox.Show("未选择要生成的卡类别!");
                return;
            }
            CreatorDataSet.CreateCardRow createCard;
            DateTime createDate;
            if (MessageBox.Show("是否生成新的生成卡记录?选否将把生成的卡添加到当前选择的生成卡记录中。", "提示", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                createCard = creatorDataSet.CreateCard.AddCreateCardRow(DateTime.Now, txtMemo.Text);
                createCardTableAdapter.Update(creatorDataSet.CreateCard);
                createCard.ID = (int)createCardTableAdapter.GetMaxID();
                createCard.AcceptChanges();
                createDate = createCard.CreateDate;
            }
            else
            {
                if (createCardBindingSource.Current == null)
                {
                    MessageBox.Show("生成卡失败,未选择要添加卡的生成卡记录");
                    return;
                }
                createCard = (CreatorDataSet.CreateCardRow)(createCardBindingSource.Current as DataRowView).Row;
                createDate = DateTime.Now;
            }
            var bar = ShowProgressBar();
            bar.Value = 1;
            bar.Maximum = htConditions.Keys.Cast<object>().Sum(key => ((CustomerCondition)htConditions[key]).CardCount);

            var cardTableAdapter = new CreatorDataSetTableAdapters.CardTableAdapter();
            cardTableAdapter.Fill(creatorDataSet.Card);
            foreach (string cardTypeName in htConditions.Keys)
            {
                var condition = (CustomerCondition)htConditions[cardTypeName];
                for (int i = 0; i < condition.CardCount; i++)
                {
                    //Application.DoEvents();
                    string cardNumber;
                    string cardPassword;
                    while (true)
                    {
                        Application.DoEvents();
                        cardNumber = RandomString(condition.CardNumberLength, condition.CardNumberString);
                        cardPassword = RandomString(condition.CardPasswordLength, condition.CardPasswordString);
                        if (creatorDataSet.Card.Count(c => c.CardNumber == cardNumber && c.CardPassword == cardPassword) == 0)
                        {
                            break;
                        }
                    }
                    creatorDataSet.Card.AddCardRow(cardNumber,
                                                   cardPassword,
                                                   cardTypeName,
                                                   createDate,
                                                   createCard
                        );

                    bar.PerformStep();
                    bar.Refresh();
                }
            }

            var count = cardTableAdapter.Update(creatorDataSet.Card);

            lbCardTypes.Items.AddRange(lbSelectedCardTypes.Items);
            lbSelectedCardTypes.Items.Clear();
            htConditions.Clear();
            HideProgressBar(bar);
            MessageBox.Show(string.Format("已生成{0}条记录!", count));
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: loya/Creator
        private void btnStartCreate_Click(object sender, EventArgs e)
        {
            if (htConditions.Count == 0)
            {
                MessageBox.Show("未选择要生成的卡类别!");
                return;
            }
            CreatorDataSet.CreateCardRow createCard;
            DateTime createDate;

            if (MessageBox.Show("是否生成新的生成卡记录?选否将把生成的卡添加到当前选择的生成卡记录中。", "提示", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                createCard = creatorDataSet.CreateCard.AddCreateCardRow(DateTime.Now, txtMemo.Text);
                createCardTableAdapter.Update(creatorDataSet.CreateCard);
                createCard.ID = (int)createCardTableAdapter.GetMaxID();
                createCard.AcceptChanges();
                createDate = createCard.CreateDate;
            }
            else
            {
                if (createCardBindingSource.Current == null)
                {
                    MessageBox.Show("生成卡失败,未选择要添加卡的生成卡记录");
                    return;
                }
                createCard = (CreatorDataSet.CreateCardRow)(createCardBindingSource.Current as DataRowView).Row;
                createDate = DateTime.Now;
            }
            var bar = ShowProgressBar();

            bar.Value   = 1;
            bar.Maximum = htConditions.Keys.Cast <object>().Sum(key => ((CustomerCondition)htConditions[key]).CardCount);

            var cardTableAdapter = new CreatorDataSetTableAdapters.CardTableAdapter();

            cardTableAdapter.Fill(creatorDataSet.Card);
            foreach (string cardTypeName in htConditions.Keys)
            {
                var condition = (CustomerCondition)htConditions[cardTypeName];
                for (int i = 0; i < condition.CardCount; i++)
                {
                    //Application.DoEvents();
                    string cardNumber;
                    string cardPassword;
                    while (true)
                    {
                        Application.DoEvents();
                        cardNumber   = RandomString(condition.CardNumberLength, condition.CardNumberString);
                        cardPassword = RandomString(condition.CardPasswordLength, condition.CardPasswordString);
                        if (creatorDataSet.Card.Count(c => c.CardNumber == cardNumber && c.CardPassword == cardPassword) == 0)
                        {
                            break;
                        }
                    }
                    creatorDataSet.Card.AddCardRow(cardNumber,
                                                   cardPassword,
                                                   cardTypeName,
                                                   createDate,
                                                   createCard
                                                   );

                    bar.PerformStep();
                    bar.Refresh();
                }
            }

            var count = cardTableAdapter.Update(creatorDataSet.Card);

            lbCardTypes.Items.AddRange(lbSelectedCardTypes.Items);
            lbSelectedCardTypes.Items.Clear();
            htConditions.Clear();
            HideProgressBar(bar);
            MessageBox.Show(string.Format("已生成{0}条记录!", count));
        }