Esempio n. 1
0
        private PositionsForEditVm[] MapToVm(dynamic[] sourcePositions)
        {
            List <PositionsForEditVm> posVms = new List <PositionsForEditVm>();
            AccountDataProcessing     accountDataAccessComponent = new AccountDataProcessing(_ctx);

            for (var i = 0; i < sourcePositions.Length; i++)
            {
                var updatedPos = new PositionsForEditVm
                {
                    PositionId    = sourcePositions[i].positionId.Value,
                    Status        = sourcePositions[i].status.Value,
                    AssetClass    = sourcePositions[i].assetClass.Value,
                    Account       = sourcePositions[i].accountTypeDesc.Value,
                    AccountTypeId = accountDataAccessComponent.GetAccountTypeId(sourcePositions[i].accountTypeDesc.Value),
                    // Any change in 'PymtDue' results in true/false cast as a string -- not a boolean.
                    PymtDue = sourcePositions[i].pymtDue.Value.GetType() == typeof(string)
                                            ? bool.Parse(sourcePositions[i].pymtDue.Value)
                                            : sourcePositions[i].pymtDue.Value
                };

                posVms.Add(updatedPos);
                updatedPos = null;
            }

            return(posVms.ToArray());
        }
Esempio n. 2
0
        private List <Position> InitializePositions(List <Position> initializedPositions, string[] currentRow)
        {
            // AssetId MUST never be null & always point to a referencing Asset when creating new Position(s).
            if (assetIdForPosition == string.Empty || assetIdForPosition == null)
            {
                return(null);
            }

            // Build Position listing.
            if (initializedPositions == null)
            {
                return(null);
            }
            if (currentRow == null)
            {
                throw new ArgumentNullException("currentRow");
            }

            var      mktPrice = decimal.Parse(currentRow.ElementAt(4));
            var      acctDataAccessComponent = new AccountDataProcessing(_ctx);
            Position newPosition             = null;

            try
            {
                newPosition = new Position
                {
                    PositionId    = Guid.NewGuid().ToString(),
                    AccountTypeId = acctDataAccessComponent.GetAccountTypeId(currentRow.ElementAt(0)),
                    AssetId       = assetIdForPosition,
                    Fees          = 0M,
                    LastUpdate    = DateTime.Now,
                    PositionDate  = DateTime.Now,
                    Quantity      = int.Parse(currentRow.ElementAt(3)),
                    Status        = "A",
                    UnitCost      = decimal.Parse(currentRow.ElementAt(4))
                };
            }
            catch (Exception)
            {
                Log.Error("Error creating Position within ImportFileProcessing.InitializePositions().");
                return(null);
            }

            initializedPositions.Add(newPosition);
            return(initializedPositions);
        }
        public IQueryable <string> GetAccountTypes()
        {
            AccountDataProcessing accountTypeDataAccessComponent = new AccountDataProcessing(_context);

            return(accountTypeDataAccessComponent.GetAllAccountTypes());
        }