示例#1
0
        public static IEntity ToEntity(ContractBase contract)
        {
            string     methodName = string.Format("To{0}", contract.GetType().Name.Replace("Contract", ""));
            MethodInfo method     = typeof(Converter).GetMethod(methodName);

            return(method.Invoke(null, new object[] { contract }) as IEntity);
        }
示例#2
0
 public ContractKey(ContractBase entity)
 {
     this.Entity = entity;
     if (entity != null)
     {
         this.contractCode = entity.ContractCode;
     }
 }
示例#3
0
 public static Contract ToIbMainSecurityContract(this ContractBase msContract)
 {
     return(new Contract
     {
         Symbol = msContract.Symbol,
         Currency = msContract.Currency,
         SecType = GetSecType(msContract.SecurityType),
         Exchange = msContract.Exchange
     });
 }
        public ClientTransaction BuildEntity(System.Data.IDataReader reader)
        {
            byte[]       objectData = DataHelper.GetByteArrayValue(reader[FieldNames.ObjectData]);
            ContractBase contract   = Serializer.Deserialize(objectData) as ContractBase;
            IEntity      entity     = Converter.ToEntity(contract);

            return(new ClientTransaction(reader[FieldNames.ClientTransactionId],
                                         (TransactionType)DataHelper.GetInteger(reader[FieldNames.TransactionType]),
                                         entity));
        }
示例#5
0
 //adds cash from contract to your cash reserve
 public void cashContract(ContractBase contract)
 {
     if(!contract.repeatable) contract.accepted = true;
     //float cashInflux = contract.finalPerf * contract.diff;
     float cashInflux = 0;
     if (contract.getCachedPerformance() > 1)
         cashInflux = contract.rewardMoney;
     cashInflux *= cashInflowMultiplier;
     hellBucks += cashInflux;
     reputation += contract.getCachedPerformance();
 }
示例#6
0
        public void BaseContractTest()
        {
            var bp1 = new ContractBase("a", "b");
            var bp2 = bp1.ToJson().FromJson <ContractBase>();

            Assert.Equal(bp1, bp2);
            Assert.True(bp1 == bp2);
            Assert.False(bp1 != bp2);
            Assert.True(bp1 != null);
            ContractBase bp3 = null;

            Assert.False(bp3 != null);
            Assert.True(bp3 == null);
            bp3 = new ContractBase("c", "d");
            Assert.False(bp1 == bp3);
            Assert.True(bp1 != bp3);
        }
示例#7
0
 private void SaveContractDetailsIfNeeded <T>(ContractBase contract)
 {
     if (_session.Get <T>(contract.Id) == null)
     {
         using (ITransaction transaction = _session.BeginTransaction())
         {
             _session.Save(contract);
             try
             {
                 transaction.Commit();
             }
             catch (Exception exception)
             {
                 Logger.Error("Could not write to DB", exception);
             }
         }
     }
 }
示例#8
0
        /// <summary>
        /// Request detail data for one security that is not option.
        /// The same like "RequestContinousContractData" but for 1 security.
        /// </summary>
        public async void RequestSecurityContractDetails(SecurityData securityData)
        {
            ContractBase contractBase = securityData.GetContract();

            if (contractBase.SecurityType == SecurityType.Option)
            {
                throw new Exception("This method is for securities other than options!!!");
            }

            Contract ibContract = contractBase.ToIbContract();

            _handler.AddManagedSecurity(ibContract);
            Logger.Info($"{nameof(RequestSecurityContractDetails)} " +
                        $"called, requesting {ibContract}");
            int reqId = GenerateRequestId();

            _clientSocket.reqContractDetails(reqId, ibContract);
            var contracts = await _handler.WaitForContractDetails(reqId);

            contracts.ForEach(RequestMarketData);
        }
示例#9
0
 public ContractBase RegisterContract(int requestId, ContractBase contract, ContractDetails IbContract)
 {
     lock (SecurityDataDic)
     {
         var optionContract = contract as OptionContract;
         BaseSecurityData securityData;
         if (optionContract != null)
         {
             securityData = new OptionData {
                 Account = AccountSummary.MainAccount
             };
         }
         else
         {
             securityData = new SecurityData {
                 Account = AccountSummary.MainAccount
             }
         };
         securityData.SetContract(contract);
         IbContract.UpdateSecurityData(contract);
         SecurityDataDic.Add(requestId, new SecuirtyDataWrapper(securityData));
         return(contract);
     }
 }
示例#10
0
 private bool DeclaredByContractType(MethodReference method)
 {
     return(ContractBase.IsAssignableFrom(method.DeclaringType));
 }
示例#11
0
 public ServerTransaction(object key, TransactionType type,
                          ContractBase contract)
     : base(key, type)
 {
     this.contract = contract;
 }
示例#12
0
 //click quest, set it to active if not repeating, go to demon screen
 public void goToDemonAssignment(int contractIndex)
 {
     //call when you click a contract
     demonScreen.SetActive (true);
     requestScreen.SetActive (false);
     currentUnassignedContract = open_contracts[contractIndex];
     topRightField.text = open_contracts [contractIndex].contractName;
     Debug.Log (open_contracts[contractIndex].contractName);
 }
示例#13
0
        static void Main(string[] args)
        {
            #region Basic Preparation
            //Init Logger
            string logName = "ContractTest_" + DateTime.Now.ToString("MMddHHmmss") + ".log";
            string dir     = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs", logName);
            Logger.InitLogHelper(dir);

            string url = "http://192.168.199.222:8000/chain";
            var    ch  = new CliHelper(url, AccountManager.GetDefaultDataDir());

            //Account preparation
            List <string> accList = new List <string>();
            var           ci      = new CommandInfo("account new", "account");
            for (int i = 0; i < 50; i++)
            {
                ci.Parameter = "123";
                ci           = ch.ExecuteCommand(ci);
                if (ci.Result)
                {
                    accList.Add(ci.InfoMsg?[0].Replace("Account address:", "").Trim());
                }
            }

            //Unlock
            ci           = new CommandInfo("account unlock", "account");
            ci.Parameter = String.Format("{0} {1} {2}", accList[0], "123", "notimeout");
            ci           = ch.ExecuteCommand(ci);

            //Connect Chain
            ci = new CommandInfo("connect_chain");
            ch.ExecuteCommand(ci);
            Assert.IsTrue(ci.Result, "Connect chain got exception.");

            //Get AElf.Contracts.Token ABI
            ci.GetJsonInfo();
            TokenAbi = ci.JsonInfo["AElf.Contracts.Token"].ToObject <string>();

            //Load default Contract Abi
            ci = new CommandInfo("load_contract_abi");
            ch.RpcLoadContractAbi(ci);
            Assert.IsTrue(ci.Result, "Load contract abi got exception.");

            #endregion

            #region AElf.Token operation
            var contract = new ContractBase(ch, TokenAbi);
            contract.Account = accList[0];

            //Deploy
            //contract.DeployContract(out var txId);

            //Load
            contract.LoadContractAbi();

            //Init
            contract.ExecuteContractMethod(out var txId1, "Initialize", "elfToken", "ELF", "2000000", "2");
            contract.CheckTransactionResult(out var initCi, txId1);

            //Transfer to Account A, B, C
            contract.ExecuteContractMethod(out var txIdA, "Transfer", accList[1], "5000");
            contract.ExecuteContractMethod(out var txIdB, "Transfer", accList[2], "10000");
            contract.ExecuteContractMethod(out var txIdC, "Transfer", accList[3], "15000");

            //check result
            contract.CheckTransactionResult(out var aCi, txIdA);
            contract.CheckTransactionResult(out var bCi, txIdB);
            contract.CheckTransactionResult(out var cCi, txIdC);

            //Get balance
            contract.ExecuteContractMethod(out var txOwner, "BalanceOf", accList[0]);
            contract.ExecuteContractMethod(out var txBA, "BalanceOf", accList[1]);
            contract.ExecuteContractMethod(out var txBB, "BalanceOf", accList[2]);
            contract.ExecuteContractMethod(out var txBC, "BalanceOf", accList[3]);

            //Query Result
            contract.GetTransactionResult(txOwner, out var ciOwner);
            contract.CheckTransactionResult(out var ciA, txBA);
            contract.CheckTransactionResult(out var ciB, txBB);
            contract.CheckTransactionResult(out var ciC, txBC);

            //Convert to Value
            ciOwner.GetJsonInfo();
            string valueStr1 = ciOwner.JsonInfo["result"]["result"]["return"].ToString();
            Logger.WriteInfo($"Owner current balance: {Convert.ToInt32(valueStr1, 16)}");

            ciA.GetJsonInfo();
            string valueStrA = ciA.JsonInfo["result"]["result"]["return"].ToString();
            Logger.WriteInfo($"A current balance: {Convert.ToInt32(valueStrA, 16)}");

            ciB.GetJsonInfo();
            string valueStrB = ciB.JsonInfo["result"]["result"]["return"].ToString();
            Logger.WriteInfo($"B current balance: {Convert.ToInt32(valueStrB, 16)}");

            ciC.GetJsonInfo();
            string valueStrC = ciC.JsonInfo["result"]["result"]["return"].ToString();
            Logger.WriteInfo($"C current balance: {Convert.ToInt32(valueStrC, 16)}");

            #endregion

            #region AElf.Contract.Resource
            #endregion
        }
示例#14
0
 //methods
 void Start()
 {
     /*Recipes.instance = new Recipes ();
     Recipes.instance.RecipeStart ();*/
     reputation = 30;
     open_contracts = new ContractBase[6];
     for(int i = 0; i < open_contracts.Length; i++) {
         open_contracts[i] = new ContractBase (1F);
     }
     HeldIngredients = new Dictionary<string, int>();
     foreach (KeyValuePair<string, Ingredients> pair in Recipes.instance.name_ingredient)
     {
         HeldIngredients.Add(pair.Key, 0);
     }
     open_contracts[5] = new GatherQuest();
     GenerateContracts();
     instance = this;
     roundManager = GetComponent<RoundManager>();
 }
示例#15
0
 private void cacheContract(ContractBase contract)
 {
     //called after assignDemon
       if(!contract.repeatable) contract.accepted = true;
     cachedContracts.Add (contract);
 }
示例#16
0
        public static void UpdateSecurityDataOld(this ContractDetails contractDetails, ContractBase securityContract)
        {
            //LiquidHours="20150427:0930-1600;20150428:0930-1600"
            //"20090507:0700-1830,1830-2330;20090508:CLOSED." "20150503:CLOSED;20150504:0930-1600"
            //TimeZoneId="EST5EDT"

            string liquidHoursStr = contractDetails.LiquidHours;

            if (string.IsNullOrEmpty(liquidHoursStr))
            {
                Debug.Assert(false, "Problem with AAPLContractDetailsData " +
                             "liquidHoursStr is null or empty!");
            }
            //For testing only:
            //liquidHoursStr = "20150624:0141-0600;20150600:0930-1600";//For Testing only
            string[] workingDays = liquidHoursStr.Split(';');

            //Eastern Standard Time
            TimeZoneInfo ist = TimeZoneInfo.FindSystemTimeZoneById("Israel Standard Time");
            //Israel Standard Time
            TimeZoneInfo est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

            string closedStr = workingDays[0].Substring(9, 6);

            //Check for the case tommorow is holiday:
            string tommorowClosed = workingDays[1].Substring(9, 6);

            bool isTommorowHoliday = tommorowClosed.Equals("CLOSED");

            var nextDayItem = 1;

            if (isTommorowHoliday)
            {
                nextDayItem = 3;                                                                              //To be changed it's bug
            }
            securityContract.NextWorkingTime = DateTime.ParseExact(workingDays[nextDayItem].Substring(0, 13), //Update securityContract object
                                                                   "yyyyMMdd:HHmm", CultureInfo.CurrentCulture, DateTimeStyles.None);

            securityContract.NextWorkingTime = TimeZoneInfo.ConvertTime//Update securityContract object
                                                   (securityContract.NextWorkingTime, est, ist);
            //handle the different time between local time and exchange time:
            bool nextDayIsToday = securityContract.NextWorkingTime.Date == DateTime.Today;

            securityContract.IsWorkingDay = ((closedStr.Equals("CLOSED") == false) || (nextDayIsToday));//Update securityContract object

            string msg;

            if (securityContract.IsWorkingDay == false)
            {
                msg = string.Format("Today is not workingDay. NextWorkingTime={0}",
                                    securityContract.NextWorkingTime);
                Logger.Info(msg);
                return;
            }

            var stringToParse = nextDayIsToday ? workingDays[1] : workingDays[0];

            securityContract.StartTradingTime = DateTime.ParseExact(stringToParse.Substring(0, 13),//Update securityContract object
                                                                    "yyyyMMdd:HHmm", CultureInfo.CurrentCulture, DateTimeStyles.None);

            securityContract.StartTradingTimeLocal = TimeZoneInfo.ConvertTime //Update securityContract object
                                                         (securityContract.StartTradingTime, est, ist);
            //For Test:  StartTradingTimeLocal = DateTime.Now.AddMinutes(1);
            string endTimeStr = stringToParse.Substring(0, 8) + " " + stringToParse.Substring(14, 4);

            securityContract.EndTradingTime = DateTime.ParseExact(endTimeStr, "yyyyMMdd HHmm", //Update securityContract object
                                                                  CultureInfo.CurrentCulture, DateTimeStyles.None);
            securityContract.EndTradingTimeLocal = TimeZoneInfo.ConvertTime                    //Update securityContract object
                                                       (securityContract.EndTradingTime, est, ist);

            //For Testing: securityContract.StartTradingTimeLocal = DateTime.Now.AddMinutes(1);
            //For Testing: securityContract.EndTradingTimeLocal = DateTime.Now.AddMinutes(3);

            msg =
                $"Today is workingDay! StartTradingTime={securityContract.StartTradingTimeLocal}, EndTradingTime:{securityContract.EndTradingTimeLocal}. ";

            Logger.Debug(msg);
        }
示例#17
0
        public static void UpdateSecurityData(this ContractDetails contractDetails, ContractBase securityContract)
        {
            //LiquidHours="20150427:0930-1600;20150428:0930-1600"
            //"20090507:0700-1830,1830-2330;20090508:CLOSED." "20150503:CLOSED;20150504:0930-1600"
            //TimeZoneId="EST5EDT"
            if (contractDetails.Summary.SecType.Equals("OPT"))
            {
                return;
            }
            string liquidHoursStr = contractDetails.LiquidHours;

            if (string.IsNullOrEmpty(liquidHoursStr))
            {
                Debug.Assert(false, "Problem with AAPLContractDetailsData " +
                             "liquidHoursStr is null or empty!");
            }
            //For testing only:
            //liquidHoursStr = "20150624:0141-0600;20150600:0930-1600";//For Testing only
            string[] workingDays = liquidHoursStr.Split(';');

            //Eastern Standard Time
            TimeZoneInfo ist = TimeZoneInfo.FindSystemTimeZoneById("Israel Standard Time");

            //Israel Standard Time
            TimeZoneInfo est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

            //Find next working day/time:
            var    nextWorkingDayItem = -1;
            string closedStr          = "CLOSED";

            while (closedStr == "CLOSED")
            {
                nextWorkingDayItem++;
                closedStr = workingDays[nextWorkingDayItem].Substring(9, 6);
            }
            string stringToParse = workingDays[nextWorkingDayItem];

            securityContract.NextWorkingTime = DateTime.ParseExact(
                stringToParse.Substring(0, 13), //Update securityContract object
                "yyyyMMdd:HHmm", CultureInfo.CurrentCulture, DateTimeStyles.None);

            securityContract.StartTradingTime = securityContract.NextWorkingTime;

            securityContract.StartTradingTimeLocal = TimeZoneInfo.ConvertTime //Update securityContract object
                                                         (securityContract.StartTradingTime, est, ist);

            securityContract.NextWorkingTime = TimeZoneInfo.ConvertTime //Update securityContract object
                                                   (securityContract.NextWorkingTime, est, ist);

            //handle the different time between local time and exchange time:
            securityContract.IsWorkingDay =
                securityContract.NextWorkingTime.Date == DateTime.Today; //Update securityContract object

            var endTimeStr = stringToParse.Substring(0, 8) + " " + stringToParse.Substring(14, 4);

            securityContract.EndTradingTime = DateTime.ParseExact(endTimeStr,
                                                                  "yyyyMMdd HHmm", //Update securityContract object
                                                                  CultureInfo.CurrentCulture, DateTimeStyles.None);
            securityContract.EndTradingTimeLocal = TimeZoneInfo.ConvertTime        //Update securityContract object
                                                       (securityContract.EndTradingTime, est, ist);

            var msg = securityContract.IsWorkingDay == false
                ? $"Today is not workingDay. NextWorkingTime={securityContract.NextWorkingTime}"
                : $"Today is workingDay! StartTradingTime={securityContract.StartTradingTimeLocal}, EndTradingTime:{securityContract.EndTradingTimeLocal}. ";

            Logger.Info(msg);
        }
示例#18
0
 public void GenerateContracts()
 {
     System.Random rnd = new System.Random((int)System.DateTime.Now.Ticks);
     for(int x = 0; x < 5; x++)
     {
         int difficulty = (int)Mathf.Min(5,Mathf.Max(reputation / 20 + rnd.Next(-1, 1), 1));
         open_contracts[x] = new ContractBase(difficulty);
     }
 }
 public void Visit(A a)
 {
     Contract = Mapper.Map <A, ContractA>(a);
 }
 public void Visit(B b)
 {
     Contract = Mapper.Map <B, ContractB>(b);
 }