Пример #1
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext, PortfolioService, SecurityService into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 /// <param name="portfolioService">PortfolioService class dependency injection.</param>
 /// <param name="securityService">SecurityService class dependency injection.</param>
 /// <remarks>
 /// </remarks>
 public PositionService(
     TrowooDbContext trowooDbContext,
     PortfolioService portfolioService,
     SecurityService securityService
     )
 {
     TrowooDbContext  = trowooDbContext;
     PortfolioService = portfolioService;
     SecurityService  = securityService;
 }
Пример #2
0
        /// <summary>
        /// Creates a position for a security within a portfolio.
        /// </summary>
        /// <param name="position">Position object to add.</param>
        /// <param name="portfolioId">Portfolio Id. An integer.</param>
        /// <param name="securityId">Security Id. An integer.</param>
        /// <returns>New Portfolio object.</returns>
        /// <remarks>
        /// <para>Uses Portfolio- and SecurityService classes to obtain respective entities.</para>
        /// </remarks>
        public Position Create(Position position, int portfolioId, int securityId)
        {
            var portfolio = PortfolioService.GetById(portfolioId);
            var security  = SecurityService.GetById(securityId);

            position.Security = security;
            TrowooDbContext.Positions.Add(position);
            portfolio.Positions.Add(position);
            TrowooDbContext.SaveChanges();
            return(position);
        }
Пример #3
0
        /// <summary>
        /// Updates Position (OpenedDate, Cost).
        /// </summary>
        /// <param name="position">Position object.</param>
        /// <returns>
        /// <para>Updated position object.</para>
        /// <para>Null if position is not found.</para>
        /// </returns>
        public Position Update(Position position)
        {
            var existingPosition = GetById(position.Id);

            if (existingPosition == null)
            {
                return(null);
            }
            TrowooDbContext.Entry(existingPosition).CurrentValues.SetValues(position);
            TrowooDbContext.SaveChanges();
            return(position);
        }
Пример #4
0
        /// <summary>
        /// Updates the Security for a position.
        /// </summary>
        /// <param name="id">Position Id. An integer.</param>
        /// <param name="ticker">Security ticker. A string.</param>
        /// <returns>Updated Position object.</returns>
        /// <remarks>
        /// <para>Uses SecurityService class to obtain security by ticker.</para>
        /// </remarks>
        public Position UpdateSecurityForPosition(int id, string ticker)
        {
            var position = GetById(id);
            var security = SecurityService.GetByTicker(ticker);

            if (position == null || security == null)
            {
                return(null);
            }
            position.Security = security;
            TrowooDbContext.SaveChanges();
            return(position);
        }
Пример #5
0
 /// <summary>
 /// Attempts to delete a Position with a specified id.
 /// </summary>
 /// <param name="id">Position Id. An integer.</param>
 /// <exception cref="Trowoo.Services.EntityDoesNotExistException">
 /// Throws when attempting to delete an entity in the database with <paramref name="id"/>
 /// </exception>
 public void Delete(int id)
 {
     try
     {
         TrowooDbContext.Positions.Remove(new Position {
             Id = id
         });
         TrowooDbContext.SaveChanges();
     }
     catch (DbUpdateConcurrencyException exception)
     {
         throw new EntityDoesNotExistException($"Position with id: '{id}' does not exist", exception);
     }
 }
Пример #6
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public TrailingStopService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }
Пример #7
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public LowPriceService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }
Пример #8
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public HighPriceService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }
Пример #9
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public SecurityService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }
Пример #10
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public QuoteService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }
Пример #11
0
 /// <summary>
 /// Constructor method injects the dependency of type TrowooDbContext into the class upon instantiation.
 /// </summary>
 /// <param name="trowooDbContext">Database Context dependecy injection.</param>
 public PortfolioService(TrowooDbContext trowooDbContext)
 {
     TrowooDbContext = trowooDbContext;
 }