コード例 #1
0
            /// <summary>
            /// Queuings the tx number.
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="typeName">Name of the type. Enums: EnumHelper.TxType, EnumHelper.POType</param>
            /// <returns>TxNumber</returns>
            public static string QueuingTxNumber <T>(T typeName)
            {
                string query       = " 1 = 1 ";
                string queuingType = string.Empty;

                switch (typeName.GetType().Name)
                {
                case "TxType":
                    EnumHelper.TxType txType = (EnumHelper.TxType)Convert.ChangeType(typeName, typeof(EnumHelper.TxType));
                    query       = "QueuingType = '" + txType.ToString() + "'";
                    queuingType = txType.ToString();
                    break;

                case "POType":
                    EnumHelper.POType poType = (EnumHelper.POType)Convert.ChangeType(typeName, typeof(EnumHelper.POType));
                    query       = "QueuingType = '" + poType.ToString() + "'";
                    queuingType = poType.ToString();
                    break;
                }

                long queuedTxNumber = 1;

                using (var ctx = new EF6.RT2020Entities())
                {
                    var oQueue = ctx.SystemQueue.SqlQuery(
                        String.Format(
                            "Select * from SystemQueue Where {0}",
                            String.IsNullOrEmpty(query) ? "1 = 1" : query
                            ))
                                 .FirstOrDefault();
                    if (oQueue == null)
                    {
                        oQueue             = new EF6.SystemQueue();
                        oQueue.QueueId     = Guid.NewGuid();
                        oQueue.QueuingType = queuingType;
                        oQueue.LastNumber  = "000000000000";
                        ctx.SystemQueue.Add(oQueue);
                    }

                    queuedTxNumber = Convert.ToInt64(oQueue.LastNumber) + 1;

                    oQueue.LastNumber = queuedTxNumber.ToString();
                    ctx.SaveChanges();
                }

                return(queuedTxNumber.ToString().PadLeft(12, '0'));
            }
コード例 #2
0
        /// <summary>
        /// Saves the queuing number.
        /// </summary>
        /// <param name="gbCtrl">The gb CTRL.</param>
        private void SaveQueuingNumber(GroupBox gbCtrl)
        {
            for (int i = 0; i < gbCtrl.Controls.Count; i++)
            {
                Control ctrl = gbCtrl.Controls[i];
                if (ctrl is TextBox)
                {
                    TextBox txtCtrl = ctrl as TextBox;
                    if (txtCtrl != null)
                    {
                        string queueType = txtCtrl.Name.Remove(0, 3);

                        if (queueType.Length == 3)
                        {
                            using (var ctx = new EF6.RT2020Entities())
                            {
                                var queue = ctx.SystemQueue.Where(x => x.QueuingType == queueType).FirstOrDefault();
                                if (queue == null)
                                {
                                    queue             = new EF6.SystemQueue();
                                    queue.QueueId     = Guid.NewGuid();
                                    queue.QueuingType = queueType;
                                    queue.LastNumber  = "0".PadLeft(12, '0');
                                    ctx.SystemQueue.Add(queue);
                                }

                                if (txtCtrl.Text.All(char.IsNumber))
                                //if (Common.Utility.IsNumeric(txtCtrl.Text))
                                {
                                    queue.LastNumber = txtCtrl.Text.ToString();
                                }

                                ctx.SaveChanges();
                            }
                        }
                    }
                }
            }
        }