public bool AddDiamondShoppingItem(DiamondShoppingItem item)
        {
            return(MyDBHelper.Instance.ConnectionCommandExecuteNonQuery(mycmd =>
            {
                string sqlText = "insert into diamondshoppingitem " +
                                 "(`Name`,`Type`,`Stocks`,`Remark`,`SellState`,`ValueDiamonds`,`DetailText`,`DetailImageNames` ) " +
                                 " values (@Name,@Type,@Stocks,@Remark,@SellState,@ValueDiamonds,@DetailText,@DetailImageNames )";
                mycmd.CommandText = sqlText;
                mycmd.Parameters.AddWithValue("@Name", item.Name);
                mycmd.Parameters.AddWithValue("@Type", (int)item.ItemType);
                mycmd.Parameters.AddWithValue("@Stocks", item.Stocks);
                mycmd.Parameters.AddWithValue("@Remark", item.Remark);
                mycmd.Parameters.AddWithValue("@SellState", (int)item.SellState);
                mycmd.Parameters.AddWithValue("@ValueDiamonds", item.ValueDiamonds);
                mycmd.Parameters.AddWithValue("@DetailText", item.DetailText);

                StringBuilder builderDetailImageNames = new StringBuilder();
                if (item.DetailImageNames != null)
                {
                    for (int i = 0; i < item.DetailImageNames.Length; i++)
                    {
                        builderDetailImageNames.Append(item.DetailImageNames[i]);
                        builderDetailImageNames.Append(";");
                    }
                }
                string detailImageNames = "";
                if (builderDetailImageNames.Length > 0)
                {
                    detailImageNames = builderDetailImageNames.ToString(0, builderDetailImageNames.Length - 1);
                }
                mycmd.Parameters.AddWithValue("@DetailImageNames", detailImageNames);

                mycmd.ExecuteNonQuery();
            }));
        }
Ejemplo n.º 2
0
        public int UpdateDiamondShoppingItem(DiamondShoppingItem item, byte[][] detailImagesBuffer)
        {
            string dirPath = GetShoppingItemDirPath(item.Name);

            //删除所有图片,重新保存
            if (Directory.Exists(dirPath))
            {
                Directory.Delete(dirPath, true);
            }
            Directory.CreateDirectory(dirPath);

            bool isOK = DBProvider.DiamondShoppingDBProvider.UpdateDiamondShoppingItem(item);

            if (isOK)
            {
                string titleImgFilePath = Path.Combine(dirPath, item.Name.GetHashCode().ToString() + ".jpg");
                using (FileStream stream = new FileStream(titleImgFilePath, FileMode.Create))
                {
                    stream.Write(item.IconBuffer, 0, item.IconBuffer.Length);
                }

                for (int i = 0; i < item.DetailImageNames.Length; i++)
                {
                    string detailImgFilePath = Path.Combine(dirPath, item.DetailImageNames[i] + ".jpg");
                    using (FileStream stream = new FileStream(detailImgFilePath, FileMode.Create))
                    {
                        stream.Write(detailImagesBuffer[i], 0, detailImagesBuffer[i].Length);
                    }
                }

                return(OperResult.RESULTCODE_TRUE);
            }

            return(OperResult.RESULTCODE_FALSE);
        }
Ejemplo n.º 3
0
        public byte[][] GetDiamondShoppingItemDetailImageBuffer(int diamondShoppingItemID)
        {
            DiamondShoppingItem item = GetDiamondShoppingItem(diamondShoppingItemID);

            if (item == null || item.DetailImageNames == null)
            {
                return(null);
            }

            string dirPath = GetShoppingItemDirPath(item.Name);

            if (!Directory.Exists(dirPath))
            {
                return(null);
            }

            string[] files = Directory.GetFiles(dirPath);
            if (files == null || files.Length == 0)
            {
                return(null);
            }

            List <byte[]> listImageBuffers = new List <byte[]>();

            //返回ImageBuffer的序列和item.DetailImageNames中名称的顺序完全一致!!
            foreach (var imageFileName in item.DetailImageNames)
            {
                foreach (var fileName in files)
                {
                    FileInfo fileInfo = new FileInfo(fileName);
                    if (fileInfo.Name == imageFileName + ".jpg")
                    {
                        using (FileStream stream = File.OpenRead(fileName))
                        {
                            byte[] buffer = new byte[stream.Length];
                            stream.Read(buffer, 0, buffer.Length);
                            listImageBuffers.Add(buffer);
                        }
                        break;
                    }
                }
            }

            return(listImageBuffers.ToArray());
        }
Ejemplo n.º 4
0
        public int AddDiamondShoppingItem(DiamondShoppingItem item, byte[][] detailImagesBuffer)
        {
            string dirPath = GetShoppingItemDirPath(item.Name);

            if (Directory.Exists(dirPath))
            {
                return(OperResult.RESULTCODE_SHOPPINGNAME_EXISTED);
            }

            //创建商品文件夹
            Directory.CreateDirectory(dirPath);

            bool isOK = DBProvider.DiamondShoppingDBProvider.AddDiamondShoppingItem(item);

            if (isOK)
            {
                //保存首页
                string titleImgFilePath = Path.Combine(dirPath, item.Name.GetHashCode().ToString() + ".jpg");
                using (FileStream stream = new FileStream(titleImgFilePath, FileMode.Create))
                {
                    stream.Write(item.IconBuffer, 0, item.IconBuffer.Length);
                }

                //保存详情图
                for (int i = 0; i < item.DetailImageNames.Length; i++)
                {
                    string detailImgFilePath = Path.Combine(dirPath, item.DetailImageNames[i] + ".jpg");
                    using (FileStream stream = new FileStream(detailImgFilePath, FileMode.Create))
                    {
                        stream.Write(detailImagesBuffer[i], 0, detailImagesBuffer[i].Length);
                    }
                }

                return(OperResult.RESULTCODE_TRUE);
            }

            return(OperResult.RESULTCODE_FALSE);
        }
Ejemplo n.º 5
0
        public int BuyDiamondShoppingItem(int userID, string userName, DiamondShoppingItem shoppingItem, PostAddress address, CustomerMySqlTransaction myTrans)
        {
            DateTime time = DateTime.Now;
            PlayerBuyDiamondShoppingItemRecord record = null;

            record = new PlayerBuyDiamondShoppingItemRecord()
            {
                OrderNumber           = OrderController.Instance.CreateOrderNumber(userName, time, AlipayTradeInType.DiamondShopping),
                UserID                = userID,
                DiamondShoppingItemID = shoppingItem.ID,
                BuyTime               = new MetaData.MyDateTime(time),
                SendAddress           = address.ToString(),
                ShoppingState         = DiamondShoppingState.Payed
            };

            bool isOK = DBProvider.DiamondShoppingDBProvider.AddPlayerBuyDiamondShoppingItemRecord(record, myTrans);

            if (isOK)
            {
                return(OperResult.RESULTCODE_TRUE);
            }
            return(OperResult.RESULTCODE_FALSE);
        }
 public DiamondShoppingItemUIModel(DiamondShoppingItem parent)
 {
     this.ParentObject = parent;
 }
Ejemplo n.º 7
0
 public void BuyDiamondShoppingItem(DiamondShoppingItem shoppingItem, PostAddress address)
 {
     this._invoker.Invoke <int>(this._context, "BuyDiamondShoppingItem", this.BuyDiamondShoppingItemCompleted, GlobalData.Token, shoppingItem, address);
 }
Ejemplo n.º 8
0
 public void AsyncBuyDiamondShoppingItem(DiamondShoppingItem shoppingItem, PostAddress address)
 {
     App.BusyToken.ShowBusyWindow("正在提交服务器...");
     GlobalData.Client.BuyDiamondShoppingItem(shoppingItem, address);
 }
Ejemplo n.º 9
0
 public void UpdateDiamondShoppingItem(string actionPassword, DiamondShoppingItem item, byte[][] detailImagesBuffer)
 {
     this._invoker.Invoke <int>(this._context, "UpdateDiamondShoppingItem", this.UpdateDiamondShoppingItemCompleted, GlobalData.Token, actionPassword, item, detailImagesBuffer);
 }
 public void AsyncUpdateDiamondShoppingItem(string password, DiamondShoppingItem item)
 {
     App.BusyToken.ShowBusyWindow("正在保存钻石商品...");
     GlobalData.Client.UpdateDiamondShoppingItem(password, item, this.ListDetailImageBuffers.ToArray());
 }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                string name   = this.txtTitle.Text.Trim();
                string remark = this.txtRemark.Text.Trim();

                if (name == "")
                {
                    MyMessageBox.ShowInfo("请填写名称");
                    return;
                }
                if (remark == "")
                {
                    MyMessageBox.ShowInfo("请填写说明");
                    return;
                }
                if (this.imgIcon.Source == null || _iconBuffer == null)
                {
                    MyMessageBox.ShowInfo("请上传图标");
                    return;
                }
                if (this.numPrice.Value == 0)
                {
                    MyMessageBox.ShowInfo("请设置价格");
                    return;
                }

                if (MyMessageBox.ShowQuestionOKCancel("请确认奖项信息填写正确") != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                DiamondShoppingItem item = new DiamondShoppingItem()
                {
                    ID               = this.oldID,
                    Name             = this.txtTitle.Text.Trim(),
                    Remark           = this.txtRemark.Text.Trim(),
                    IconBuffer       = this._iconBuffer,
                    ItemType         = (DiamondsShoppingItemType)(int)this.cmbItemType.SelectedValue,
                    SellState        = (SellState)(int)this.cmbSellState.SelectedIndex,
                    ValueDiamonds    = Math.Round((decimal)this.numPrice.Value, 2),
                    DetailText       = this.txtDetailText.Text.Trim(),
                    DetailImageNames = this.ListDetailImageNames.ToArray(),
                    Stocks           = (int)this.numStockCount.Value
                };

                if (isAdd)
                {
                    this.AsyncAddDiamondShoppingItem(GlobalData.CurrentAdmin.ActionPassword, item);
                }
                else
                {
                    item.ID = this.oldID;
                    this.AsyncUpdateDiamondShoppingItem(GlobalData.CurrentAdmin.ActionPassword, item);
                }
            }
            catch (Exception exc)
            {
                MyMessageBox.ShowInfo("保存失败。原因为:" + exc.Message);
            }
        }
Ejemplo n.º 12
0
        public int BuyDiamondShoppingItem(string token, DiamondShoppingItem shoppingItem, PostAddress address)
        {
            if (RSAProvider.LoadRSA(token))
            {
                PlayerRunnable playerrunner = null;
                string         userName     = "";
                try
                {
                    if (address == null)
                    {
                        return(OperResult.RESULTCODE_NEEDPOSTADDRESS);
                    }

                    userName     = ClientManager.GetClientUserName(token);
                    playerrunner = PlayerController.Instance.GetRunnable(userName);
                    if (playerrunner == null)
                    {
                        return(OperResult.RESULTCODE_USER_NOT_EXIST);
                    }

                    int result = MyDBHelper.Instance.TransactionDataBaseOper(myTrans =>
                    {
                        int innerResult = playerrunner.BuyDiamondShoppingItem(shoppingItem, myTrans);
                        if (innerResult != OperResult.RESULTCODE_TRUE)
                        {
                            return(innerResult);
                        }

                        return(DiamondShoppingController.Instance.BuyDiamondShoppingItem(playerrunner.BasePlayer.SimpleInfo.UserID, userName, shoppingItem, address, myTrans));
                    },
                                                                             exc =>
                    {
                        if (playerrunner != null)
                        {
                            playerrunner.RefreshFortune();
                        }

                        if (exc != null)
                        {
                            LogHelper.Instance.AddErrorLog("玩家[" + userName + "]购买钻石商品[" + shoppingItem.Name + "]异常", exc);
                        }
                    });

                    if (result == OperResult.RESULTCODE_TRUE)
                    {
                        LogHelper.Instance.AddInfoLog("玩家[" + userName + "]成功购买了钻石商品[" + shoppingItem.Name + "]");
                    }

                    return(result);
                }
                catch (Exception exc)
                {
                    LogHelper.Instance.AddErrorLog("玩家[" + userName + "]购买钻石商品[" + shoppingItem.Name + "]异常. ClientIP=" + ClientManager.GetClientIP(token), exc);
                    return(OperResult.RESULTCODE_EXCEPTION);
                }
            }
            else
            {
                throw new Exception();
            }
        }