public async Task <SimpleTradeInfo> InitiateTrade(string inputCoinType, decimal?amount) { _logger.LogInformation($"[InitiateTrade] Starting InitiateTrade with inputCoinType: {inputCoinType} and amount: {amount}"); var now = DateTime.UtcNow; var memoGuid = Guid.NewGuid().ToString(); var r1 = await _blockTradeService.InitiateTrade(inputCoinType, _mappingTradingExchange[inputCoinType], "tst-ll-reception", memoGuid); _logger.LogInformation($"[InitiateTrade] Blocktrade reply: {JsonConvert.SerializeObject(r1, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })}"); var objTrans = new Transactions(); //if (amount.HasValue) //{ // objTrans.Amount = amount.Value; //} objTrans.Cryptoconfirmed = false; objTrans.Cryptoaddress = r1.InputAddress; objTrans.Cryptocurrency = r1.InputCoinType; objTrans.Memobc = memoGuid; objTrans.Modifiedby = "System"; objTrans.Createdby = "System"; objTrans.Createdon = now; objTrans.Modifiedon = now; await _transRepository.AddAsync(objTrans); var error1 = _unitOfWork.CommitHandled(); if (!error1) { _logger.LogError($"Can't Add Transaction ! {JsonConvert.SerializeObject(error1, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })} "); } _logger.LogInformation($"[InitiateTrade] Transaction created in DB: {JsonConvert.SerializeObject(objTrans, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })}"); var guidString = Guid.NewGuid().ToString(); await _commonMessageService.SendMessage <ActionEventDefinition>("llc-event-broadcast", guidString, new ActionEventDefinition() { ActionName = "InitiateTradeTriggered", Message = string.Format($"New participation initiated => {objTrans.Transactionid} => {r1.InputAddress}"), Timestamp = DateTime.UtcNow, Success = true, Reason = "Subscription" }); return(r1); }
public async Task <Genericattribute> CreateOrGetAttribute( string type, string value, object typeObject = null, object valueObject = null, int typeSort = 0, int valueSort = 0, int?categoryId = null) { Check.Require(!string.IsNullOrWhiteSpace(type), "type must be supplied."); Check.Require(!string.IsNullOrWhiteSpace(value), "value must be supplied."); var utcNow = DateTime.UtcNow; var tupleTypeValue = await CreateOrGetTupleTypeValue(type, value, typeObject, valueObject, typeSort, valueSort, categoryId); var findAttribute = _attributeRepository.DbSet.FirstOrDefault(x => x.Genericattributetypeid == tupleTypeValue.Item1.Genericattributetypeid && x.Genericattributevalueid == tupleTypeValue.Item2.Genericattributevalueid); if (findAttribute != null) { return(findAttribute); } var attribute = new Genericattribute(); attribute.Genericattributetypeid = tupleTypeValue.Item1.Genericattributetypeid; attribute.Genericattributevalueid = tupleTypeValue.Item2.Genericattributevalueid; attribute.Typestring = type; attribute.Valuestring = value; attribute.Createdon = utcNow; attribute.Modifiedon = utcNow; attribute.Createdby = "System"; attribute.Modifiedby = "System"; JsonSerializerSettings settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All, }; settings.Converters.Insert(0, new PrimitiveJsonConverter()); if (typeObject != null) { attribute.Typelabelstring = JsonConvert.SerializeObject(typeObject, settings); } else { attribute.Typelabelstring = EncodeLabel(type); } if (valueObject != null) { attribute.Valuelabelstring = JsonConvert.SerializeObject(valueObject, settings); } else { attribute.Valuelabelstring = EncodeLabel(value); } await _attributeRepository.AddAsync(attribute); var error1 = _unitOfWork.CommitHandled(); if (!error1) { _logger.LogError($"Can't Attribute ! {JsonConvert.SerializeObject(attribute, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })} "); } return(attribute); }