Пример #1
0
 public void SerializesToSymbolValue()
 {
     const string symbolValue = "ABC";
     const string sidSymbol = "EURUSD";
     var holding = new Holding {Symbol = new Symbol(SecurityIdentifier.GenerateForex(sidSymbol, Market.FXCM), symbolValue)};
     var serialized = JsonConvert.SerializeObject(holding, new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.All});
     Console.WriteLine(serialized);
     Assert.IsFalse(serialized.Contains(sidSymbol));
     Assert.IsTrue(serialized.Contains(symbolValue));
 }
        public void AccessParcelsByDateParcelsExistButNotAtDate()
        {
            var stock = new Stock(Guid.NewGuid());

            stock.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holding = new Holding(stock, new Date(2000, 01, 01));

            holding.AddParcel(new Date(2000, 01, 01), new Date(2000, 01, 01), 100, 1000.00m, 1200.00m, null);
            holding.AddParcel(new Date(2001, 01, 01), new Date(2001, 01, 01), 200, 2000.00m, 2200.00m, null);

            holding.Parcels(new Date(1999, 01, 01)).Should().BeEmpty();
        }
        public void GetParcelsByDateParcelsExistInRange()
        {
            var stock = new Stock(Guid.NewGuid());

            stock.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holding = new Holding(stock, new Date(2000, 01, 01));

            holding.AddParcel(new Date(2000, 01, 01), new Date(2000, 01, 01), 100, 1000.00m, 1200.00m, null);
            holding.AddParcel(new Date(2001, 01, 01), new Date(2001, 01, 01), 200, 2000.00m, 2200.00m, null);

            holding.Parcels(new DateRange(new Date(2001, 01, 01), Date.MaxValue)).Should().HaveCount(2);
        }
Пример #4
0
            public void SecondPatronCanCheckOutSecondCopyOfSameClassification()
            {
                string barcode1Copy2 = Holding.GenerateBarcode(Holding.ClassificationFromBarcode(SomeBarcode), 2);

                ScanNewMaterial(barcode1Copy2);

                var patronId2 = patronRepo.Create(new Patron());

                scanner.AcceptLibraryCard(patronId2);
                scanner.AcceptBarcode(barcode1Copy2);

                Assert.That(GetByBarcode(barcode1Copy2).HeldByPatronId, Is.EqualTo(patronId2));
            }
Пример #5
0
        /// <summary>
        /// Converts the domain model into an entity.
        /// </summary>
        /// <returns>The entity.</returns>
        /// <param name="holding">Holding.</param>
        internal static HoldingEntity ToEntity(this Holding holding)
        {
            HoldingEntity holdingEntity = new HoldingEntity
            {
                Id          = holding.Id,
                Name        = holding.Name,
                Description = holding.Description,
                Type        = holding.Type.ToString(),
                ProvinceId  = holding.ProvinceId
            };

            return(holdingEntity);
        }
Пример #6
0
        /// <summary>
        /// Converts the entity into a domain model.
        /// </summary>
        /// <returns>The domain model.</returns>
        /// <param name="holdingEntity">Holding entity.</param>
        internal static Holding ToDomainModel(this HoldingEntity holdingEntity)
        {
            Holding holding = new Holding
            {
                Id          = holdingEntity.Id,
                Name        = holdingEntity.Name,
                Description = holdingEntity.Description,
                Type        = (HoldingType)Enum.Parse(typeof(HoldingType), holdingEntity.Type),
                ProvinceId  = holdingEntity.ProvinceId
            };

            return(holding);
        }
Пример #7
0
        //Ajax Dropdrown holding,company,emporium,position,salary
        public async Task <JsonResult> AjaxHoldingComBox(string value)
        {
            Holding holdings = await dbContext.Holdings.Include(c => c.Companies)
                               .Where(x => x.Name == value).Select(y => new Holding
            {
                Companies = y.Companies,
                Id        = y.Id,
                Name      = y.Name
            }).FirstOrDefaultAsync();

            var companyName = holdings.Companies;

            return(Json(new { company = companyName, message = 202 }));
        }
Пример #8
0
        // GET: Holdings/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Holding holding = db.Holdings.Find(id);

            if (holding == null)
            {
                return(HttpNotFound());
            }
            return(View(holding));
        }
Пример #9
0
        public void Hold(params Entity[] entities)
        {
            if (Holding == null)
            {
                Holding = new List <Entity>();
            }

            Holding.AddRange(entities);

            foreach (var ent in entities)
            {
                ent.Parent = this;
            }
        }
Пример #10
0
        public Holding AddHolding(int accountID, int insID, int lotCount)
        {
            Holding holding = new Holding()
            {
                HoldingID = _holdingID++,
                AccountID = accountID,
                InsID     = insID,
                LotCount  = lotCount
            };

            _holdings.Add(holding);

            return(holding);
        }
    public void OnHoldingEnds(Holding holding)
    {
        Body       body       = holding.Body;
        GameObject gameObject = null;

        if (body != null && body.IsValid())
        {
            gameObject = UnityUtil.BodyMapper.FirstOrDefault(x => x.Value.BodyId.ptr == body.BodyId.ptr).Key;
        }
        if (gameObject)
        {
            gameObject.GetComponent <Renderer>().material = freeMaterial;
        }
    }
Пример #12
0
 public void GuardarHolding(Holding entidad)
 {
     try
     {
         using (BusinessOrganizacion negocio = new BusinessOrganizacion())
         {
             negocio.GuardarHolding(entidad);
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Пример #13
0
        public void CheckInAnswersZeroDaysLateWhenReturnedBeforeDueDate()
        {
            var holding = new Holding {
                Classification = "X", BranchId = 1, CopyNumber = 1
            };

            holding.CheckOut(DateTime.Now, PatronId, CheckoutPolicies.BookCheckoutPolicy);

            var date     = holding.DueDate.Value.AddDays(-1);
            int branchId = 2;

            holding.CheckIn(date, branchId);
            Assert.Equal(0, holding.DaysLate());
        }
Пример #14
0
        public void DaysLateCalculatedWhenReturnedAfterDueDate()
        {
            var holding = new Holding {
                Classification = "X", BranchId = 1, CopyNumber = 1
            };

            holding.CheckOut(DateTime.Now, PatronId, CheckoutPolicies.BookCheckoutPolicy);

            var date     = holding.DueDate.Value.AddDays(2);
            var branchId = 2;

            holding.CheckIn(date, branchId);
            Assert.Equal(2, holding.DaysLate());
        }
Пример #15
0
        public Holding CreateHolding(int accountID, int insID, int lotCount)
        {
            Holding holding = new Holding()
            {
                HoldingID = _nextHoldingID++,
                AccountID = accountID,
                InsID     = insID,
                LotCount  = lotCount
            };

            _id_holdings.Add(holding.HoldingID, holding);

            return(holding);
        }
 public Holding CreateHolding(Holding holding)
 {
     try
     {
         _ctx.Add(holding);
         _ctx.SaveChanges();
         return(holding);
     }
     catch (Exception ex)
     {
         _logger.LogError($"Error creating holding for user {holding?.UserId}", ex);
         throw;
     }
 }
Пример #17
0
        public void CheckInAnswersZeroDaysLateWhenReturnedOnDueDate()
        {
            var holding = new Holding {
                Classification = "X", BranchId = 1, CopyNumber = 1
            };

            holding.CheckOut(DateTime.Now, PatronId, CheckoutPolicies.BookCheckoutPolicy);

            var dueDate = holding.DueDate.Value;
            int brId    = 2;

            holding.CheckIn(dueDate, brId);
            Assert.That(holding.DaysLate(), Is.EqualTo(0));
        }
Пример #18
0
        public void AddHolding(AllocationType allocType, string symbol, decimal price, decimal quanity)
        {
            Holding holding = new Holding(this)
                    {
                        AllocType = allocType,
                        Symbol = symbol,
                        Price = price,
                        Quantity = quanity,
                    };

            m_TotalValue += holding.Value;

            Holdings.Add(holding);
        }
        public void AddParcelExistingHoldings()
        {
            var stock = new Stock(Guid.NewGuid());

            stock.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holding = new Holding(stock, new Date(2000, 01, 01));

            holding.AddParcel(new Date(2000, 01, 01), new Date(2000, 01, 01), 100, 1000.00m, 1200.00m, null);
            holding.AddParcel(new Date(2001, 01, 01), new Date(2001, 01, 01), 200, 2000.00m, 2200.00m, null);

            var properties = holding[new Date(2001, 01, 01)];

            properties.Should().Be(new HoldingProperties(300, 3000.00m, 3400.00m));
        }
        public void DeleteHolding(Holding holding)
        {
            var existingHolding = GetHolding(holding);

            try
            {
                _ctx.Holdings.Remove(existingHolding);
                _ctx.SaveChanges();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error deleting holding for user {holding?.UserId}", ex);
                throw;
            }
        }
Пример #21
0
        public void SerializesToSymbolValue()
        {
            const string symbolValue = "ABC";
            const string sidSymbol   = "EURUSD";
            var          holding     = new Holding {
                Symbol = new Symbol(SecurityIdentifier.GenerateForex(sidSymbol, Market.FXCM), symbolValue)
            };
            var serialized = JsonConvert.SerializeObject(holding, new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            });

            Console.WriteLine(serialized);
            Assert.IsFalse(serialized.Contains(sidSymbol));
            Assert.IsTrue(serialized.Contains(symbolValue));
        }
Пример #22
0
        /// <summary>
        /// Insert new Holding object into db
        /// </summary>
        /// <param name="holding">Holding object (HoldingID = 0)</param>
        /// <returns>retuan new Id and set HoldingID to new value</returns>
        public int InsertHolding(CommonData.Holding holding)
        {
            Holding db_holding = new Holding()
            {
                HoldingID = holding.HoldingID,
                InsID     = holding.InsID,
                LotCount  = holding.LotCount,
                AccountID = holding.AccountID
            };

            _da.DbContext.Insert(db_holding);
            holding.HoldingID = db_holding.HoldingID;

            return(holding.HoldingID);
        }
        public void SecondPatronCanCheckOutSecondCopyOfSameClassification()
        {
            var barcode1Copy2 = Holding.GenerateBarcode(Holding.ClassificationFromBarcode(SomeBarcode), 2);

            scanner.ScanNewMaterial(barcode1Copy2, classificationServiceMock);

            var patronId2 = patronsService.Create(new Patron {
                Name = ""
            });

            scanner.AcceptLibraryCard(patronId2);
            scanner.AcceptBarcode(barcode1Copy2);

            Assert.Equal(patronId2, holdingsService.FindByBarcode(barcode1Copy2).HeldByPatronId);
        }
Пример #24
0
        public static Holding ToResponse(this Domain.Portfolios.IReadOnlyHolding holding, Date date)
        {
            var properties = holding.Properties.ClosestTo(date);

            var response = new Holding()
            {
                Stock    = holding.Stock.ToSummaryResponse(date),
                Units    = properties.Units,
                Value    = properties.Units * holding.Stock.GetPrice(date),
                Cost     = properties.Amount,
                CostBase = properties.CostBase
            };

            return(response);
        }
    public void OnHoldingStarts(Holding holding)
    {
        Body       body       = holding.Body;
        GameObject gameObject = null;

        if (body != null && body.IsValid())
        {
            gameObject = UnityUtil.BodyMapper.FirstOrDefault(x => x.Value.BodyId.ptr == body.BodyId.ptr).Key;
        }
        //Debug.Log("holding started " + gameObject);
        if (gameObject)
        {
            gameObject.GetComponent <Renderer>().material = heldMaterial;
        }
    }
        public void DisposeOfParcelPartialSale()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var stock = new Stock(Guid.NewGuid());

            stock.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var          eventSink = mockRepository.Create <ICgtEventSink>();
            CgtEventArgs cgtEvent  = null;

            eventSink.Setup(x => x.OnCgtEventOccured(It.IsAny <Holding>(), It.IsAny <CgtEventArgs>()))
            .Callback <object, CgtEventArgs>((o, e) => cgtEvent = e)
            .Verifiable();

            var holding = new Holding(stock, new Date(2000, 01, 01));

            holding.CgtEventOccurred += eventSink.Object.OnCgtEventOccured;

            var parcel = holding.AddParcel(new Date(2000, 01, 01), new Date(2000, 01, 01), 100, 1000.00m, 1200.00m, null);

            holding.AddParcel(new Date(2000, 01, 01), new Date(2000, 01, 01), 200, 2000.00m, 2200.00m, null);

            var transaction = new Disposal();

            holding.DisposeOfParcel(parcel.Id, new Date(2001, 01, 01), 99, 500.00m, 10.00m, CgtMethod.Discount, transaction);

            using (new AssertionScope())
            {
                holding[new Date(2000, 12, 31)].Should().Be(new HoldingProperties(300, 3000.00m, 3400.00m));
                holding[new Date(2001, 01, 01)].Should().Be(new HoldingProperties(201, 2010.00m, 2212.00m));

                parcel.Properties[new Date(2000, 12, 31)].Should().Be(new ParcelProperties(100, 1000.00m, 1200.00m));
                parcel.Properties[new Date(2001, 01, 01)].Should().Be(new ParcelProperties(1, 10.00m, 12.00m));

                cgtEvent.Should().BeEquivalentTo(new
                {
                    EventDate      = new Date(2001, 01, 01),
                    Stock          = stock,
                    AmountReceived = 500.00m,
                    CapitalGain    = 10.00m,
                    CgtMethod      = CgtMethod.Discount,
                    Transaction    = transaction
                });
            }

            mockRepository.Verify();
        }
Пример #27
0
        public async Task <IActionResult> Edit(Holding holding, int?id)
        {
            if (ModelState.IsValid)
            {
                var currentHolding = await _dbContext.Holdings.Where(h => h.Id == id).FirstOrDefaultAsync();

                if (currentHolding != null)
                {
                    currentHolding.Name = holding.Name;
                }
                await _dbContext.SaveChangesAsync();

                return(RedirectToAction("Index", "Holding"));
            }
            return(View());
        }
Пример #28
0
    /// <summary>
    /// Update userHoldings by new holding object
    /// </summary>
    /// <param name="newHolding">Holding object to update by</param>
    public void UpdateOverallGain(Holding newHolding, bool serializeAfterFinish = true)
    {
        Holding holding = _userHoldings.Keys.FirstOrDefault(uh => uh.Ticker == newHolding.Ticker || uh.Name == newHolding.Name);

        if (holding != null)
        {
            if (holding.LastOverallGainUpdate < newHolding.Timestamp)
            {
                holding.LastOverallGainUpdate = newHolding.Timestamp;
                holding.OverallGain          += GetUserHoldingAmount(holding) * (newHolding.Close - holding.Close);
                holding.Close = newHolding.Close;

                ForceSerialize(holding, serializeAfterFinish);
            }
        }
    }
Пример #29
0
        public async Task <IActionResult> CreateHolding(Holding holding)
        {
            if (ModelState.IsValid)
            {
                Holding p = holding;
                await _payrollDb.Holdings.AddAsync(p);

                await _payrollDb.SaveChangesAsync();

                return(RedirectToAction(nameof(ListHolding)));
            }
            else
            {
                return(View());
            }
        }
        public async Task <ActionResult> AddHolding(Holding holding)
        {
            if (ModelState.IsValid)
            {
                Holding holdin = new Holding
                {
                    Name = holding.Name
                };
                await payrollDb.Holdings.AddAsync(holdin);

                await payrollDb.SaveChangesAsync();

                ViewBag.Holding = await payrollDb.Holdings.ToListAsync();
            }
            return(View());
        }
Пример #31
0
        public void TwoPatronsDifferentCopySameBook()
        {
            scanner.AddNewMaterial(Isbn1);

            scanner.AcceptLibraryCard(patronId1);
            scanner.AcceptBarcode(barcode1);
            scanner.CompleteCheckout();

            scanner.AcceptLibraryCard(patronId2);
            string barcode1Copy2 = Holding.GenerateBarcode(Classification1, 2);

            scanner.AcceptBarcode(barcode1Copy2);
            scanner.CompleteCheckout();

            AssertHeldBy(barcode1Copy2, patronId2);
        }
Пример #32
0
 internal ScenarioAccordingToTrend(Holding holding)
 {
     InitializeComponent();
     price               = chart.Series[priceChart];
     revenue             = chart.Series[revenueChart];
     sShort              = chart.Series[shortChart];
     sLong               = chart.Series[longChart];
     trend               = chart.Series[trendChart];
     profit              = chart.Series[profitChart];
     holding.SendStocks += OnReceiveChart;
     this.holding        = holding;
     CenterToScreen();
     code        = holding.Code;
     Text        = string.Empty;
     WindowState = FormWindowState.Maximized;
 }
 public void EditHoldingsAsync(string portfolioID, Holding[] holdings, object userArgs)
 {
     if (this.IsLoggedIn)
     {
         WebFormUpload upl = new WebFormUpload();
         upl.AsyncUploadCompleted += this.EditHoldings_DownloadCompleted;
         upl.UploadAsync(this.GetEditHoldingsDownloadSettings(portfolioID, holdings), new EditHoldingsAyncArgs(userArgs) { Info = portfolioID });
     }
     else { throw new NotSupportedException("The user is not logged in."); }
 }
 public void EditHoldings(string portfolioID, Holding[] holdings)
 {
     if (this.IsLoggedIn)
     {
         WebFormUpload upl = new WebFormUpload();
         upl.Upload(this.GetEditHoldingsDownloadSettings(portfolioID, holdings));
     }
     else { throw new NotSupportedException("The user is not logged in."); }
 }
 private WebFormDownloadSettings GetEditHoldingsDownloadSettings(string portfolioID, Holding[] holdings)
 {
     List<KeyValuePair<string, string>> lst = new List<KeyValuePair<string, string>>();
     System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
     lst.Add(new KeyValuePair<string, string>("yfi_pf_action", "add_holdings"));
     lst.Add(new KeyValuePair<string, string>(".yfisrc", "/"));
     lst.Add(new KeyValuePair<string, string>(".yfidone", ""));
     lst.Add(new KeyValuePair<string, string>(".yficurr", ""));
     lst.Add(new KeyValuePair<string, string>(".yficrumb", ""));
     foreach (Holding holding in holdings)
     {
         lst.Add(new KeyValuePair<string, string>("yfi_pf_symbol[]", holding.ID));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_lot[]", holding.Lot.ToString()));
         lst.Add(new KeyValuePair<string, string>("date[]", ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_trade_date_day[]", holding.TradeDate.HasValue ? holding.TradeDate.Value.Day.ToString() : DateTime.Today.Day.ToString()));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_trade_date_month[]", holding.TradeDate.HasValue ? holding.TradeDate.Value.Month.ToString() : DateTime.Today.Month.ToString()));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_trade_date_year[]", holding.TradeDate.HasValue ? holding.TradeDate.Value.Year.ToString() : DateTime.Today.Year.ToString()));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_shares_owned[]", holding.Shares != 0 ? holding.Shares.ToString() : ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_price_paid[]", holding.PricePaid != 0 ? holding.PricePaid.ToString(ci) : ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_commission[]", holding.Commission != 0 ? holding.Commission.ToString(ci) : ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_low_limit[]", holding.LowLimit != 0 ? holding.LowLimit.ToString(ci) : ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_high_limit[]", holding.HighLimit != 0 ? holding.HighLimit.ToString(ci) : ""));
         lst.Add(new KeyValuePair<string, string>("yfi_pf_comment[]", holding.Notes != string.Empty ? holding.Notes : ""));
     }
     lst.Add(new KeyValuePair<string, string>("save", "Save"));
     string urlPart = "/portfolio/" + portfolioID + "/holdings";
     WebFormDownloadSettings settings = new WebFormDownloadSettings();
     settings.Account = this;
     settings.Url = "http://finance.yahoo.com" + urlPart + "/edit";
     settings.RefererUrlPart = urlPart + "/update";
     settings.AdditionalWebForms = lst;
     settings.SearchForWebForms = null;
     settings.FormActionPattern = "";
     settings.DownloadResponse = true;
     return settings;
 }
Пример #36
0
 public bool TryGetValue(Symbol symbol, out Holding holding)
 {
     return _holdings.TryGetValue(symbol, out holding);
 }