Example #1
0
        /// <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}");
        }
Example #2
0
 /// <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());
     }
 }
Example #3
0
        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)
            });
        }
Example #5
0
        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}");
        }
Example #7
0
 public IEnumerable <SecurityDetails> UpdateSecurityDetails([FromBody] SecurityDetails securityDetails, string UserId, string SecurityDetailsId)
 {
     return(objSecurityDetails.UpdateSecurityDetails(securityDetails, UserId, SecurityDetailsId));
 }
Example #8
0
 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))));
        }