public void GlobalCleanup()
        {
            DatabaseInstance.DropCollection(nameof(FileMetaBase));
            DatabaseInstance.Dispose();

            File.Delete(DatabasePath);
        }
示例#2
0
        public void GlobalCleanup()
        {
            DatabaseInstance?.Checkpoint();
            DatabaseInstance?.Dispose();
            DatabaseInstance = null;

            File.Delete(DatabasePath);
        }
示例#3
0
        public void GlobalCleanup()
        {
            // Disposing logic
            DatabaseInstance.DropCollection(nameof(FileMetaBase));
            DatabaseInstance?.Checkpoint();
            DatabaseInstance?.Dispose();
            DatabaseInstance = null;

            File.Delete(DatabasePath);
        }
示例#4
0
        public void GlobalCleanup()
        {
            // Disposing logic
            DatabaseInstance.DropCollection(nameof(FileMetaBase));
            _fileMetaCollection = null;

            DatabaseInstance.DropCollection(nameof(FileMetaWithExclusion));
            _fileMetaExclusionCollection = null;

            DatabaseInstance.Dispose();

            File.Delete(DatabasePath);
        }
        public void GlobalCleanup()
        {
            baseData?.Clear();
            baseData = null;

            baseDataWithBsonIgnore?.Clear();
            baseDataWithBsonIgnore = null;

            DatabaseInstance.DropCollection(nameof(FileMetaBase));
            DatabaseInstance.DropCollection(nameof(FileMetaWithExclusion));
            DatabaseInstance.Dispose();

            File.Delete(DatabasePath);
        }
示例#6
0
        public void GlobalCleanup()
        {
            _baseData?.Clear();
            _baseData = null;

            _baseDataWithBsonIgnore?.Clear();
            _baseDataWithBsonIgnore = null;

            DatabaseInstance?.Checkpoint();
            DatabaseInstance?.Dispose();
            DatabaseInstance = null;

            File.Delete(DatabasePath);
        }
示例#7
0
 public void Dispose()
 {
     _dbInstance.Dispose();
 }
示例#8
0
        public override void ProcessNotify()
        {
            WxPayData notifyData = GetNotifyData();

            //检查支付结果中transaction_id是否存在
            if (!notifyData.IsSet("transaction_id"))
            {
                //若transaction_id不存在,则立即返回结果给微信支付后台
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", "支付结果中微信订单号不存在");
                Log.Error(this.GetType().ToString(), "The Pay result is error : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }
            string transaction_id = notifyData.GetValue("transaction_id").ToString();

            //查询订单,判断订单真实性
            if (!QueryOrder(transaction_id))
            {
                //若订单查询失败,则立即返回结果给微信支付后台
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", "订单查询失败");
                Log.Error(this.GetType().ToString(), "订单查询失败 : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }
            //查询订单成功
            else
            {
                WxPayData res = new WxPayData();
                try
                {
                    Log.Debug(this.GetType().ToString(), "订单状态 : " + notifyData.GetValue("result_code").ToString());
                    if (notifyData.GetValue("result_code").ToString() == "SUCCESS")
                    {
                        string orderNo = notifyData.GetValue("out_trade_no").ToString();
                        Log.Debug(this.GetType().ToString(), "订单号 : " + orderNo);
                        if (!string.IsNullOrWhiteSpace(orderNo))
                        {
                            using (_databaseInstance = new DatabaseInstance(_database))
                            {
                                _databaseInstance.BeginTransaction();
                                var sql   = "select * from fz_Orders where orderNo=@orderNo";
                                var order = new QueryObject <Orders>(_databaseInstance, sql, new { orderNo = orderNo }).FirstOrDefault();
                                if (order != null && order.orderState == OrderStates.awaitPay)
                                {
                                    order.orderState = OrderStates.paid;
                                    order.payTime    = DateTime.Now;
                                    _databaseInstance.Update(order, "fz_Orders");
                                    var list = orderDetialService.GetOrderNo(orderNo);
                                    if (list != null)
                                    {
                                        if (order.type == OrderTypes.ticket)
                                        {
                                            foreach (var item in list)
                                            {
                                                var admissionTicket = admissionTicketService.GetById(item.sourceId);
                                                for (var i = 0; i < item.num; i++)
                                                {
                                                    var ticket = new Tickets();
                                                    ticket.AdmissionTicketId = admissionTicket.id;
                                                    ticket.orderNo           = orderNo;
                                                    ticket.Price             = item.amount;
                                                    ticket.State             = TicketsState.NotUse;
                                                    ticket.UserId            = order.userId;
                                                    ticket.useScope          = order.useScope;
                                                    ticket.adultNum          = admissionTicket.adultNum;
                                                    ticket.BuyTime           = DateTime.Now;
                                                    ticket.childNum          = admissionTicket.childNum;
                                                    ticket.Code        = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + i.ToString() + order.userId.ToString();
                                                    ticket.ExpiredDate = DateTime.Now.Date;
                                                    _databaseInstance.Insert(ticket, "Tickets");
                                                }
                                            }
                                        }
                                        else if (order.type == OrderTypes.card)
                                        {
                                            string sqlSite  = "select * from Sites";
                                            var    site     = new QueryObject <Site>(_databaseInstance, sqlSite, null).FirstOrDefault();
                                            string cardNo   = "";
                                            int    minxCode = 1;
                                            Int32.TryParse(site.MixCode, out minxCode);
                                            int i = 1;
                                            while (true)
                                            {
                                                minxCode = minxCode + i;
                                                cardNo   = string.Format("60000000{0}", minxCode.ToString().PadLeft(8, '0'));
                                                string sqlCard = "select * from Accounts where Name=@Name";
                                                var    card    = new QueryObject <Account>(_databaseInstance, sqlCard, new { Name = cardNo }).FirstOrDefault();
                                                if (card == null)
                                                {
                                                    break;
                                                }
                                                i++;
                                            }
                                            int shopId = 0;
                                            if (!string.IsNullOrWhiteSpace(order.useScope))
                                            {
                                                string sqlShop = "select * from shops where Name=@Name";
                                                var    shop    = new QueryObject <Account>(_databaseInstance, sqlShop, new { Name = order.useScope }).FirstOrDefault();
                                                if (shop != null)
                                                {
                                                    shopId = shop.ShopId;
                                                }
                                            }
                                            var item        = list.FirstOrDefault();
                                            var accountType = _databaseInstance.GetById <AccountType>("AccountTypes", item.sourceId);
                                            var account     = new Account();
                                            account.AccountLevel  = 0;
                                            account.AccountToken  = "11111111";
                                            account.AccountTypeId = accountType.AccountTypeId;
                                            account.Amount        = 0;
                                            account.ExpiredDate   = DateTime.Now.AddMonths(accountType.ExpiredMonths);
                                            account.Frequency     = accountType.Frequency;
                                            account.FrequencyUsed = 0;
                                            account.LastDealTime  = DateTime.Now;
                                            account.Name          = cardNo;
                                            account.OpenTime      = DateTime.Now;
                                            account.OwnerId       = order.userId;
                                            account.ShopId        = shopId;
                                            account.useScope      = order.useScope;
                                            account.SaleAmount    = order.payAmount;
                                            account.TotalTimes    = accountType.Frequency;
                                            if (order.payAmount > 0 && accountType.Frequency > 0)
                                            {
                                                account.SinglePrice = Convert.ToInt32(order.payAmount / accountType.Frequency);
                                            }
                                            else
                                            {
                                                account.SinglePrice = 0;
                                            }
                                            account.State = AccountStates.Normal;
                                            _databaseInstance.Insert(account, "Accounts");
                                            site.MixCode = minxCode.ToString();
                                            _databaseInstance.Update(site, "Sites");
                                        }
                                    }
                                }
                                _databaseInstance.Commit();
                            }
                        }
                    }
                    res.SetValue("return_code", "SUCCESS");
                    res.SetValue("return_msg", "OK");
                    Log.Info(this.GetType().ToString(), "order query success : " + res.ToXml());
                    page.Response.Write(res.ToXml());
                    page.Response.End();
                }

                catch (Exception ex)
                {
                    if (!(ex is System.Threading.ThreadAbortException))
                    {
                        res.SetValue("return_code", "FAIL");
                        res.SetValue("return_msg", "订单状态修改失败");
                        Log.Error(this.GetType().ToString(), "Order query failure : " + res.ToXml() + ex);
                        page.Response.Write(res.ToXml());
                        page.Response.End();
                    }
                }
                finally
                {
                    if (_databaseInstance != null)
                    {
                        _databaseInstance.Dispose();
                    }
                }
            }
        }