/// <summary> /// Retrieve the security details, which are broker specific /// </summary> /// <param name="security"></param> /// <returns></returns> public virtual SecurityDetails GetSecurityDetails(Security security) { //Get from config var config = Config.SecurityConfig.FirstOrDefault(x => x.Ticker == security.Ticker); if (config == null) { throw new Exception("Cannot find config for ticker name " + security.Ticker); } //Check based on security type //TODO: check for correct implementation of step quantity and min quantity for brokerages switch (security.Type) { case SecurityType.Equity: return(new SecurityDetails(1, decimal.MaxValue, config.Step, config.Step, config.Digits, config.ExpenseRatio)); case SecurityType.Crypto: return(new SecurityDetails(1, decimal.MaxValue, config.Step, config.Step, config.Digits, config.ExpenseRatio)); case SecurityType.NIL: return(SecurityDetails.NIL()); } //If nothing works throw new Exception($"Unknown security type {security.Type}"); }
/// <summary> /// Get associated security details /// </summary> /// <param name="security"></param> /// <returns></returns> public override SecurityDetails GetSecurityDetails(Security security) { if (security.Type == SecurityType.Crypto) { return(base.GetSecurityDetails(security)); } else { _log.Error($"Security type {security.Type} is unsupported for broker of type {BrokerType}"); return(SecurityDetails.NIL()); } }
public PartialViewResult CreateDetails() { var securityDetailsVM = new SecurityDetails { Text = "Loaded via Create Action" }; var time = new TimeSpan(0, 0, 3); Thread.Sleep(time); return(PartialView(nameof(InsertDetails), securityDetailsVM)); }
public AuthorizationToken CreateAuthorizationToken(CreateAuthorizationTokenDto data) { var securityDetails = new SecurityDetails { UserId = data.UserId, Permissions = data.Permissions, ExpiresOn = DateTime.Now.AddHours(1) }; return(new AuthorizationToken { SecurityDetails = securityDetails, EncryptedAuthorizationToken = EncryptSecurityDetails(securityDetails) }); }
public IActionResult InsertDetails(SecurityEntry securityEntry) { if (!ModelState.IsValid) { return(NotFound()); } var securityDetailsVM = new SecurityDetails { Text = "Loaded via Search Action" }; //var time = new TimeSpan(0, 0, 1); //Thread.Sleep(time); return(PartialView(securityDetailsVM)); }
public static async Task ProcessSecurityAsync( [QueueTrigger(OperationConstants.SecurityQueueName, Connection = "StorageConnectionString")] SecurityDetails data, [DataRepository( CosmosDbEndpoint = "CosmosDbEndpoint", DataType = typeof(Alert), KeyVaultEndpoint = "KeyVaultEndpoint")] IDocumentRepository <Alert> securityAlertRepository, [DataRepository( CosmosDbEndpoint = "CosmosDbEndpoint", DataType = typeof(SecureScore), KeyVaultEndpoint = "KeyVaultEndpoint")] IDocumentRepository <SecureScore> secureScoreRepository, [SecureScore( ApplicationId = "{AppEndpoint.ApplicationId}", CustomerId = "{Customer.Id}", KeyVaultEndpoint = "KeyVaultEndpoint", Period = 1, Resource = "{AppEndpoint.ServiceAddress}", SecretName = "{AppEndpoint.ApplicationSecretId}")] List <SecureScore> scores, [SecurityAlerts( ApplicationId = "{AppEndpoint.ApplicationId}", CustomerId = "{Customer.Id}", KeyVaultEndpoint = "KeyVaultEndpoint", Resource = "{AppEndpoint.ServiceAddress}", SecretName = "{AppEndpoint.ApplicationSecretId}")] List <Alert> alerts, TraceWriter log) { log.Info($"Attempting to process data for {data.Customer.Id}"); if (data.Customer.ProcessException != null) { log.Warning($"Unable to process {data.Customer.Id} please check the customer's last exception for more information."); return; } if (scores?.Count > 0) { log.Info($"Importing {scores.Count} Secure Score entries for {data.Customer.Id}"); await secureScoreRepository.AddOrUpdateAsync(scores).ConfigureAwait(false); } if (alerts?.Count > 0) { log.Info($"Importing {alerts.Count} security alert entries for {data.Customer.Id}"); await securityAlertRepository.AddOrUpdateAsync(alerts).ConfigureAwait(false); } log.Info($"Successfully process data for {data.Customer.Id}"); }
public IEnumerable <SecurityDetails> UpdateSecurityDetails([FromBody] SecurityDetails securityDetails, string UserId, string SecurityDetailsId) { return(objSecurityDetails.UpdateSecurityDetails(securityDetails, UserId, SecurityDetailsId)); }
public IEnumerable <SecurityDetails> AddSecurityDetails([FromBody] SecurityDetails securityDetails, string UserId) { return(objSecurityDetails.AddSecurityDetails(securityDetails, UserId)); }
public string EncryptSecurityDetails(SecurityDetails securityDetails) { var securityDetailsJson = JsonConvert.SerializeObject(securityDetails); return(Convert.ToBase64String(DataProtector.Protect(System.Text.Encoding.UTF8.GetBytes(securityDetailsJson)))); }