示例#1
0
        public XMoney Get(Guid id)
        {
            StringBuilder sql = new StringBuilder();

            sql.AppendLine("select cv.[value], cv.[CurrencySymbolId], cs.value as [symbol], cast(cs.display as nvarchar) as [symbolDisplay]");
            sql.AppendLine("from currencyValues cv WITH (NoLock)");
            sql.AppendLine("inner join currencysymbols cs on cs.id = cv.currencySymbolId");
            sql.AppendLine("where cv.[Id] = @Id");

            List <SqlParameter> paramList = new List <SqlParameter>();

            paramList.Add(new SqlParameter("@Id", id));

            XMoney value = null;

            using (SqlDataReader rdr = base.OpenDataReaderInLine(sql.ToString(), paramList))
            {
                if ((rdr != null) && (rdr.HasRows))
                {
                    rdr.Read();
                    value             = new XMoney();
                    value.Id          = id;
                    value.Amount      = rdr.GetDecimal(0);
                    value.SymbolId    = rdr.GetGuid(1);
                    value.SymbolAscii = rdr.GetString(2);
                    value.SymbolText  = rdr.GetString(3);
                }
            }

            return(value);
        }
示例#2
0
 public bool CurrencyValue_Save(XMoney value)
 {
     if (value.SymbolId.CompareTo(new Guid()) == 0)
     {
         throw new LogicalException("Currency symbol not specified.");
     }
     return(this.dal.CurrencyValue_Save(value));
 }
示例#3
0
        public bool CurrencyValue_Save(XMoney value)
        {
            StringBuilder sql = new StringBuilder();

            sql.AppendLine("INSERT INTO [CurrencyValues] ([Id], [CurrencySymbolId], [Value])");
            sql.AppendLine("VALUES (@Id, @SymbolId, @Value)");

            List <SqlParameter> paramList = new List <SqlParameter>();

            paramList.Add(new SqlParameter("@Id", value.Id));
            paramList.Add(new SqlParameter("@SymbolId", value.SymbolId));
            paramList.Add(new SqlParameter("@Value", value.Amount));

            return(base.ExecuteInLineSql(sql.ToString(), paramList));
        }
示例#4
0
    public bool UseMoney(int id, int num)
    {
        XMoney money = DataDBSMoney.GetDataById(id);

        if (money == null)
        {
            return(false);
        }
        if (money.Num < num)
        {
            return(false);
        }
        money.Num -= num;
        DataDBSMoney.Update(id, money);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_MONEY, id);

        return(true);
    }
示例#5
0
    public void AddMoney(int id, int num)
    {
        XMoney money = DataDBSMoney.GetDataById(id);

        if (money != null)
        {
            money.Num += num;
            DataDBSMoney.Update(id, money);
        }
        else
        {
            money     = new XMoney();
            money.Id  = id;
            money.Num = num;
            DataDBSMoney.Insert(id, money);
        }
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_MONEY, id);
    }
示例#6
0
    public bool UseMoney(int id, int num)
    {
        XMoney money = DataManager.Instance.Moneys[id];

        if (money == null)
        {
            return(false);
        }
        if (money.Num < num)
        {
            return(false);
        }
        money.Num -= num;
        DataMoney.Update(id, money);
        ZTEvent.FireEvent(EventID.CHANGE_MONEY, id);

        return(true);
    }
示例#7
0
    public void AddMoney(int id, int num)
    {
        XMoney money;

        if (DataManager.Instance.Moneys.ContainsKey(id))
        {
            money      = DataManager.Instance.Moneys[id];
            money.Num += num;
            DataMoney.Update(id, money);
        }
        else
        {
            money     = new XMoney();
            money.Id  = id;
            money.Num = num;
            DataMoney.Insert(id, money);
        }
        ZTEvent.FireEvent(EventID.CHANGE_MONEY, id);
    }
示例#8
0
    public int    GetItemCountById(int id)
    {
        DItem db = ReadCfgItem.GetDataById(id);

        if (db == null)
        {
            return(0);
        }
        int value = 0;

        switch (db.ItemType)
        {
        case EItemType.MONEY:
        {
            XMoney data = DataDBSMoney.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.ACTION:
        {
            XAction data = DataDBSAction.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.PETSOUL:
        {
            XSoul data = DataDBSSoul.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.BOX:
        case EItemType.KEY:
        case EItemType.DRUG:
        case EItemType.MAT:
            foreach (KeyValuePair <int, XItem> pair in DataDBSBagItem.Dict)
            {
                if (pair.Value.Id == id)
                {
                    value = pair.Value.Num;
                }
            }
            break;

        case EItemType.CHIP:
            foreach (KeyValuePair <int, XItem> pair in DataDBSBagChip.Dict)
            {
                if (pair.Value.Id == id)
                {
                    value = pair.Value.Num;
                }
            }
            break;

        default:
            break;
        }
        return(value);
    }
示例#9
0
    public int GetItemCountById(int id)
    {
        DBItem db = ZTConfig.Instance.GetDBItem(id);

        if (db == null)
        {
            return(0);
        }
        int value = 0;

        switch (db.ItemType)
        {
        case EItemType.MONEY:
        {
            XMoney data = DataMoney.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.ACTION:
        {
            XAction data = DataAction.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.PETSOUL:
        {
            XSoul data = DataSoul.GetDataById(id);
            value = data == null ? 0 : data.Num;
        }
        break;

        case EItemType.BOX:
        case EItemType.KEY:
        case EItemType.DRUG:
        case EItemType.MAT:
            foreach (KeyValuePair <int, XItem> pair in BagItems)
            {
                if (pair.Value.Id == id)
                {
                    value = pair.Value.Num;
                }
            }
            break;

        case EItemType.CHIP:
            foreach (KeyValuePair <int, XItem> pair in BagChips)
            {
                if (pair.Value.Id == id)
                {
                    value = pair.Value.Num;
                }
            }
            break;

        default:
            break;
        }
        return(value);
    }