public List <string> ValidateWithdraw(ApplicationUser user, Invest model) { if (!user.IsEnabled || user.Type != UserType.Manager || user.Id != model.UserId) { return new List <string> { ValidationMessages.AccessDenied } } ; var result = new List <string>(); var investmentProgram = context.InvestmentPrograms .Include(x => x.Periods) .ThenInclude(x => x.InvestmentRequests) .FirstOrDefault(x => x.Id == model.InvestmentProgramId); if (investmentProgram == null) { return new List <string> { $"Does not find investment program id \"{model.InvestmentProgramId}\"" } } ; if (investmentProgram.ManagerAccountId != user.Id) { return new List <string> { $"Manager can withdraw only from his own programs" } } ; var lastPeriod = investmentProgram.Periods .OrderByDescending(x => x.Number) .FirstOrDefault(); if (lastPeriod == null || lastPeriod.Status != PeriodStatus.Planned) { return new List <string> { "There are no new period for investment program" } } ; if (lastPeriod.InvestmentRequests.Any(x => x.UserId == user.Id && x.Type == InvestmentRequestType.Invest)) { return new List <string> { "Withdrawal request can't be created having pending investment request" } } ; if (model.Amount <= 0) { result.Add("Amount must be greater than zero"); } return(result); }
public OperationResult RequestForWithdraw(Invest model) { return(InvokeOperations.InvokeOperation(() => { var investor = context.Users .First(x => x.Id == model.UserId); var lastPeriod = context.Periods .Where(x => x.InvestmentProgramId == model.InvestmentProgramId) .OrderByDescending(x => x.Number) .First(); var invRequest = new InvestmentRequests { Id = Guid.NewGuid(), UserId = model.UserId, Amount = model.Amount, Date = DateTime.UtcNow, InvestmentProgramtId = model.InvestmentProgramId, Status = InvestmentRequestStatus.New, Type = InvestmentRequestType.Withdrawal, PeriodId = lastPeriod.Id }; context.Add(invRequest); context.SaveChanges(); })); }
public int LastAddedInvestlNo() { // int a = lastAdded; InvestmentGateway inGateway = new InvestmentGateway(); Invest invest = new Invest(); DBManager manager = new DBManager(); SqlConnection connection = manager.Connection(); string selectQuery = "SELECT [S.No] From Books"; SqlCommand cmd = new SqlCommand(selectQuery, connection); connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); List <int> totalId = new List <int>(); while (reader.Read()) { int aId = Convert.ToInt16(reader[0]); totalId.Add(aId); } if (totalId.Count.Equals(0)) { return(0); } else { int x = totalId.Max(); //idTextBox.Text = x.ToString(); return(x); } }
public ActionResult Caclulate(Invest invest) { try { InvestMetods investMetods = new InvestMetods(); double periodInvestMonth = investMetods.CountMonth(invest); if (periodInvestMonth < 1) { return(View("Index")); } int numOfmonth = (int)Math.Ceiling(periodInvestMonth); double procInMonth = invest.annualProcR / 12 / 100; //% invest Month double K = procInMonth * Math.Pow((1 + procInMonth), periodInvestMonth) / (Math.Pow((1 + procInMonth), periodInvestMonth) - 1); ViewBag.NumOfMonth = numOfmonth; ViewBag.PaidOfMonth = invest.investAmountX * K; ViewBag.FinishRefundDate = invest.calculation_date; return(View("Index", invest)); } catch (Exception) { return(View("Index")); } }
private AccountDto ConvertToDto(Invest.Domain.Models.Account accountModel) { var accountDto = new AccountDto(); accountDto.Id = accountModel.Id; accountDto.Name = accountModel.Name; return accountDto; }
void JD_onInvest(Invest InvestResult) { UpdateLable(lblInvestInvested, InvestResult.Amount.ToString()); UpdateLable(lblInvestPercentage, InvestResult.Percentage.ToString()); UpdateLable(lblMeInvested, InvestResult.Amount.ToString()); UpdateLable(lblMeInvestProfit, InvestResult.Profit.ToString()); UpdateLable(lblStatsINvestedOn, InvestResult.Amount.ToString()); UpdateLable(lblStatsInvestedTotal, (InvestResult.Amount + InvestResult.Offsite).ToString()); UpdateLable(lblStatsInvestProfit, InvestResult.Profit.ToString()); UpdateLable(lblStatsInvestedOff, InvestResult.Offsite.ToString()); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } Invest = await _context.Invests .Include(i => i.Member).FirstOrDefaultAsync(m => m.InvestId == id); if (Invest == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } Invest = await _context.Invests .Include(i => i.Member).FirstOrDefaultAsync(m => m.InvestId == id); if (Invest == null) { return(NotFound()); } ViewData["MemberId"] = new SelectList(_context.Members, "MemberId", "MemberName"); return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } Invest = await _context.Invests.FindAsync(id); if (Invest != null) { _context.Invests.Remove(Invest); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public OperationResult Invest(Invest model) { return(InvokeOperations.InvokeOperation(() => { var investor = context.Users .Include(x => x.Wallets) .First(x => x.Id == model.UserId); var wallet = investor.Wallets.First(x => x.Currency == Currency.GVT); var lastPeriod = context.Periods .Where(x => x.InvestmentProgramId == model.InvestmentProgramId) .OrderByDescending(x => x.Number) .First(); var tx = new WalletTransactions { Id = Guid.NewGuid(), Type = WalletTransactionsType.InvestToProgram, WalletId = wallet.Id, Amount = model.Amount, Date = DateTime.UtcNow, InvestmentProgramtId = model.InvestmentProgramId }; var invRequest = new InvestmentRequests { Id = Guid.NewGuid(), UserId = model.UserId, Amount = model.Amount, Date = DateTime.UtcNow, InvestmentProgramtId = model.InvestmentProgramId, Status = InvestmentRequestStatus.New, Type = InvestmentRequestType.Invest, PeriodId = lastPeriod.Id, WalletTransactionId = tx.Id }; wallet.Amount -= model.Amount; context.Add(invRequest); context.Add(tx); context.SaveChanges(); })); }
public IActionResult RequestForWithdraw([FromBody] Invest model) { model.UserId = CurrentUser.Id; var errors = investorValidator.ValidateWithdraw(CurrentUser, model); if (errors.Any()) { return(BadRequest(ErrorResult.GetResult(errors, ErrorCodes.ValidationError))); } var res = trustManagementService.RequestForWithdraw(model); if (!res.IsSuccess) { return(BadRequest(ErrorResult.GetResult(res.Errors))); } return(Ok()); }
private void ShowAllButton(object sender, EventArgs e) { InvestmentGateway inGateway = new InvestmentGateway(); Invest invest = new Invest(); double total; DBManager manager = new DBManager(); SqlConnection connection = manager.Connection(); string selectQuery = "SELECT Sum(Book) ,sum(Paper),sum(Ink),sum(Equipment),sum(Others) From InvestmentCost"; SqlCommand cmd = new SqlCommand(selectQuery, connection); connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string a = reader[0].ToString(); string b = reader[1].ToString(); string c = reader[2].ToString(); string d = reader[3].ToString(); string y = reader[4].ToString(); if (a.Equals("") && b.Equals("") && c.Equals("") && d.Equals("") && y.Equals("")) { MessageBox.Show("NO data found", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { showBookCostTextBox.Text = reader[0].ToString(); showpaperCostTextBox.Text = reader[1].ToString(); showInkCostTextBox.Text = reader[2].ToString(); showEquipmentCostTextBox.Text = reader[3].ToString(); showOthersCostTextBox.Text = reader[4].ToString(); total = (Convert.ToDouble(reader[0]) + Convert.ToDouble(reader[1]) + Convert.ToDouble(reader[2]) + Convert.ToDouble(reader[3]) + Convert.ToDouble(reader[4])); showToataCostTextBox.Text = total.ToString(); } } }
private void SaveButton_Click(object sender, EventArgs e) { try { Invest anInvest = new Invest(); anInvest.Id = Convert.ToInt16(idTextBox.Text); anInvest.Book = Convert.ToDouble(bookTextBox.Text); anInvest.Paper = Convert.ToDouble(paperTextBox.Text); anInvest.Ink = Convert.ToDouble(inkTextBOx.Text); anInvest.Equipment = Convert.ToDouble(equipmentTextBox.Text); anInvest.Others = Convert.ToDouble(othersTextBox.Text); anInvest.Date = dateTimePicker1.Text; lastAdded = Convert.ToInt16(idTextBox.Text); InvestmentGateway gateway = new InvestmentGateway(); string status = gateway.SaveTotalInvestment(anInvest); MessageBox.Show(status, "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); LastAddedInvestlNo(); DBManager manager = new DBManager(); SqlConnection connection = manager.Connection(); string updateQuery = "UPDATE FInvestmentCost set FBook='" + bookTextBox.Text + "',FPaper='" + paperTextBox.Text + "',FInk='" + inkTextBOx.Text + "',FEquipment='" + equipmentTextBox.Text + "',FOthers='" + othersTextBox.Text + "',FInvestment_Date='" + dateTimePicker1.Text + "' WHERE FId='" + 1 + "'"; SqlCommand updateCmd = new SqlCommand(updateQuery, connection); connection.Open(); int x = updateCmd.ExecuteNonQuery(); connection.Close(); string query = "INSert INTo InvestmentCost values('" + bookTextBox.Text + "','" + paperTextBox.Text + "','" + inkTextBOx.Text + "','" + equipmentTextBox.Text + "','" + othersTextBox.Text + "','" + dateTimePicker1.Text + "')"; SqlCommand command3 = new SqlCommand(query, connection); connection.Open(); int y = command3.ExecuteNonQuery(); last = LastAddedInvestlNo(); idTextBox.Text = last.ToString(); connection.Close(); ClearAlltextBox(); } catch (FormatException) { MessageBox.Show("Please fill every field properly.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public IActionResult Invest([FromBody] Invest model) { model.UserId = CurrentUser.Id; var errors = investorValidator.ValidateInvest(CurrentUser, model); if (errors.Any()) { return(BadRequest(ErrorResult.GetResult(errors, ErrorCodes.ValidationError))); } var res = trustManagementService.Invest(model); if (!res.IsSuccess) { return(BadRequest(ErrorResult.GetResult(res.Errors))); } var wallets = walletService.GetUserWallets(CurrentUser.Id); return(Ok(wallets.Data)); }
public void Invest() { var period = new Periods { Id = Guid.NewGuid(), InvestmentProgramId = investmentProgram.Id, Status = PeriodStatus.InProccess, Number = 1 }; var investorUser = new ApplicationUser { Id = Guid.NewGuid(), Type = UserType.Investor, IsEnabled = true, InvestorAccount = new InvestorAccounts(), Wallets = new List <Wallets> { new Wallets { Amount = 7000, Currency = Currency.GVT } }, }; context.Add(period); context.Add(investorUser); context.SaveChanges(); var invest = new Invest { UserId = investorUser.Id, InvestmentProgramId = investmentProgram.Id, Amount = 2500 }; var result = trustManagementService.Invest(invest); Assert.IsTrue(result.IsSuccess); var lastPeriod = context.Periods .Where(x => x.InvestmentProgramId == investmentProgram.Id) .OrderByDescending(x => x.Number) .FirstOrDefault(); Assert.IsNotNull(lastPeriod); var investRequest = context.InvestmentRequests .First(x => x.UserId == investorUser.Id && x.InvestmentProgramtId == investmentProgram.Id); Assert.IsNotNull(investRequest); Assert.AreEqual(investRequest.PeriodId, lastPeriod.Id); Assert.AreEqual(invest.Amount, investRequest.Amount); Assert.AreEqual(InvestmentRequestStatus.New, investRequest.Status); Assert.AreEqual(InvestmentRequestType.Invest, investRequest.Type); Assert.IsTrue(Math.Abs((DateTime.UtcNow - investRequest.Date).TotalSeconds) < 3); var tx = context.WalletTransactions .Include(x => x.Wallet) .FirstOrDefault(x => x.Wallet.UserId == investorUser.Id); Assert.IsNotNull(tx); Assert.AreEqual(invest.Amount, tx.Amount); Assert.AreEqual(WalletTransactionsType.InvestToProgram, tx.Type); Assert.IsTrue(Math.Abs((DateTime.UtcNow - tx.Date).TotalSeconds) < 3); Assert.AreEqual(4500, tx.Wallet.Amount); }
private Invest.Web.Models.TickerViewModel ConvertToViewModel(Invest.BusinessLogic.Service.Contract.Dto.TickerDto ticker) { var tickerModel = new Invest.Web.Models.TickerViewModel(); tickerModel.Active = ticker.Active; tickerModel.BCFirstDate = ticker.BCFirstDate; tickerModel.BH = ticker.BH; // public System.Data.Objects.DataClasses.EntityCollection<Buy> Buys { get; set; } tickerModel.CBSFirstDate = ticker.CBSFirstDate; tickerModel.Comments = ticker.Comments; tickerModel.component = ticker.component; tickerModel.current = ticker.current; tickerModel.DateAdded = ticker.DateAdded; tickerModel.DateModified = ticker.DateModified; tickerModel.endDate = ticker.endDate; tickerModel.FirstBuy = ticker.FirstBuy; tickerModel.Id = ticker.Id; tickerModel.InceptionDate = ticker.InceptionDate; tickerModel.LastSell = ticker.LastSell; tickerModel.MCFirstDate = ticker.MCFirstDate; tickerModel.Name = ticker.Name; tickerModel.priceDecimal = ticker.priceDecimal; // public System.Data.Objects.DataClasses.EntityCollection<Sell> Sells { get; set; } tickerModel.shareDecimal = ticker.shareDecimal; tickerModel.startDate = ticker.startDate; tickerModel.Symbol = ticker.Symbol; tickerModel.TickerBC = ticker.TickerBC; tickerModel.TickerBH = ticker.TickerBH; tickerModel.tickerGUID = ticker.tickerGUID; tickerModel.TickerYahoo = ticker.TickerYahoo; tickerModel.Type = ticker.Type ?? ""; return tickerModel; }
private BuyViewModel ConvertToViewModel(Invest.BusinessLogic.Service.Contract.Dtos.BuyDto buyDto) { var buyViewModel = new BuyViewModel(); buyViewModel.AccountId = buyDto.AccountId; buyViewModel.AddedBy = buyDto.AddedBy; buyViewModel.AmtInv = buyDto.AmtInv > 0 ? buyDto.AmtInv.ToString("F3") : ""; // buyDto.Broker = buy.Broker; // buyDto.BrokerGUID = buy.BrokerGUID; buyViewModel.BuyCommission = buyDto.BuyCommission; buyViewModel.BuyDate = buyDto.BuyDate; buyViewModel.BuyGUID = buyDto.BuyGUID; buyViewModel.BuyPrice = buyDto.BuyPrice > 0 ? buyDto.BuyPrice.ToString("F3") : ""; buyViewModel.BuyType = buyDto.BuyType; buyViewModel.Comments = buyDto.Comments; buyViewModel.DateAdded = buyDto.DateAdded; buyViewModel.DateModified = buyDto.DateModified; buyViewModel.DividendAmount = buyDto.DividendAmount > 0 ? buyDto.DividendAmount.ToString("F3") : ""; buyViewModel.Id = buyDto.Id; // buyDto.InvestmentClassification = buy.InvestmentClassification; // buyDto.InvestmentClassificationGuid = buy.InvestmentClassificationGuid; buyViewModel.ModifiedBy = buyDto.ModifiedBy; buyViewModel.NumShares = buyDto.NumShares > 0 ? buyDto.NumShares.ToString("F3") : ""; buyViewModel.orderby = buyDto.orderby; buyViewModel.OriginalBuyGUID = buyDto.OriginalBuyGUID; buyViewModel.refID = buyDto.refID; // buyDto.SubTransactionType = buy.SubTransactionType; // buyDto.SubTransactionTypeGuid = buy.SubTransactionTypeGuid; buyViewModel.Ticker = buyDto.Ticker; // public Ticker Ticker1 { get; set; } // buyDto.TickerGUID = buy.TickerGUID; buyViewModel.TickerId = buyDto.TickerId; // buyDto.TranGUID = buy.TranGUID; buyViewModel.TransactionType = buyDto.TransactionType; buyViewModel.TransactionTypeId = buyDto.TransactionTypeId.Value; return buyViewModel; }
private StatementItemDto ConvertToDto(Invest.Domain.Models.StatementItem ticker) { var statementItemDto = new StatementItemDto(); statementItemDto.AccountId = ticker.AccountId; statementItemDto.Date = ticker.Date; statementItemDto.Id = ticker.Id; statementItemDto.Name = ticker.Name; statementItemDto.Nav = ticker.Nav; statementItemDto.Shares = ticker.Shares; statementItemDto.Ticker = ticker.Ticker; statementItemDto.Value = ticker.Value; return statementItemDto; }
private TickerDto ConvertToDto(Invest.Domain.Models.AccountTicker accountTicker) { var tickerDto = new TickerDto(); tickerDto.Symbol = accountTicker.Ticker1.Symbol; tickerDto.Id = accountTicker.TickerId; tickerDto.Name = accountTicker.Ticker1.Name; tickerDto.Type = accountTicker.Ticker1.type; return tickerDto; }
private TickerDto ConvertToDto(Invest.Domain.Models.Ticker ticker) { var tickerDto = new TickerDto(); tickerDto.Active = ticker.Active; tickerDto.BCFirstDate = ticker.BCFirstDate; tickerDto.BH = ticker.BH; // public System.Data.Objects.DataClasses.EntityCollection<Buy> Buys { get; set; } tickerDto.CBSFirstDate = ticker.CBSFirstDate; tickerDto.Comments = ticker.Comments; tickerDto.component = ticker.component; tickerDto.current = ticker.current; tickerDto.DateAdded = ticker.DateAdded; tickerDto.DateModified = ticker.DateModified; tickerDto.endDate = ticker.endDate; tickerDto.FirstBuy = ticker.FirstBuy; tickerDto.Id = ticker.Id; tickerDto.InceptionDate = ticker.InceptionDate; tickerDto.LastSell = ticker.LastSell; tickerDto.MCFirstDate = ticker.MCFirstDate; tickerDto.Name = ticker.Name; tickerDto.priceDecimal = ticker.priceDecimal; // public System.Data.Objects.DataClasses.EntityCollection<Sell> Sells { get; set; } tickerDto.shareDecimal = ticker.shareDecimal; tickerDto.startDate = ticker.startDate; tickerDto.Symbol = ticker.Symbol; tickerDto.TickerBC = ticker.TickerBC; tickerDto.TickerBH = ticker.TickerBH; tickerDto.tickerGUID = ticker.tickerGUID; tickerDto.TickerYahoo = ticker.TickerYahoo; tickerDto.Type = ticker.type; return tickerDto; }