public static void MoneyTransfer(MoneyTransferVM moneyTransfer, ShopContext shopContext) { var prevInfoMoney = new InfoMoney() { Sum = -moneyTransfer.Sum, PaymentType = moneyTransfer.PrevMoneyWorkerType == 3 || moneyTransfer.NextMoneyWorkerType == 3 //Проверка на магазин ? PaymentType.Cash : PaymentType.Cashless, MoneyOperationType = MoneyOperationType.Transfer, MoneyWorkerId = moneyTransfer.PrevMoneyWorkerID, Date = DateTime.Now.AddHours(3), }; var nextInfoMoney = new InfoMoney() { Sum = moneyTransfer.Sum, PaymentType = moneyTransfer.PrevMoneyWorkerType == 3 || moneyTransfer.NextMoneyWorkerType == 3 //Проверка на магазин ? PaymentType.Cash : PaymentType.Cashless, MoneyOperationType = MoneyOperationType.Transfer, MoneyWorkerId = moneyTransfer.NextMoneyWorkerID, Date = DateTime.Now.AddHours(3), }; var moneyTransferAdd = new MoneyTransfer() { PrevInfoMoney = prevInfoMoney, NextInfoMoney = nextInfoMoney, }; shopContext.MoneyTransfers.Add(moneyTransferAdd); shopContext.SaveChanges(); }
public IActionResult PostMoneyTransfer([FromBody] MoneyTransferPostResourceModel moneyTransfer) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var moneyTransferToInsert = new MoneyTransfer { IdeaId = moneyTransfer.IdeaId, SenderAccountId = moneyTransfer.SenderAccountId, TransferredSum = moneyTransfer.TransferredSum, DateOfTransfer = DateTime.Now }; unitOfWork.MoneyTransferRepository.Insert(moneyTransferToInsert); var ideaInnerMoneyAccount = unitOfWork.IdeaRepository.Get(filter: i => i.Id == moneyTransferToInsert.IdeaId, includeProperties: "InnerAccountForTransfers") .FirstOrDefault()?.InnerAccountForTransfers; var senderAccount = unitOfWork.BankAccountRepository.Get(a => a.Id == moneyTransferToInsert.SenderAccountId).FirstOrDefault(); var csOwnerId = unitOfWork.CSOwnerRepository.Get().FirstOrDefault().Id; var receiver = unitOfWork.BankAccountRepository.Get(filter: a => a.AccountOwnerId == csOwnerId.ToString()).FirstOrDefault(); csPaymentSystem.ProcessPaymentWhileInCollectingMoneyState(unitOfWork, senderAccount, receiver, moneyTransferToInsert.TransferredSum, ideaInnerMoneyAccount); unitOfWork.Complete(); return(CreatedAtAction("GetMoneyTransfer", new { id = moneyTransferToInsert.Id }, moneyTransferToInsert)); }
public async Task <bool> SendMoneyToSteam(string login, string amount) { amount = amount.Replace(',', '.'); var request = new MoneyTransfer { Id = (1000 * DateTimeOffset.Now.ToUnixTimeSeconds()).ToString(), Sum = new Sum { Amount = amount, Currency = "643" }, PaymentMethod = new PaymentMethod { Type = "Account", AccountId = "643" }, Fields = new Fields { Account = login } }; _webClient.Headers["Authorization"] = $"Bearer {_token}"; _webClient.Headers["Content-Type"] = "application/json"; _webClient.Headers["Accept"] = "application/json"; var url = BuildUrl("sinap/api/v2/terms/25549/payments"); try { var response = await _webClient.UploadStringTaskAsync(url, JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); return(response.Contains("Accepted")); } catch { return(false); } }
public MoneyTransferListItemViewModel(MoneyTransfer fo, int currentUserId) { Id = fo.Id; ProjectId = fo.ProjectId; Sender = fo.Sender; Receiver = fo.Receiver; MarkingMaster = fo.CreatedBy; OperationDate = fo.OperationDate.UtcDateTime; State = (MoneyTransferStateViewModel)fo.ResultState; Money = fo.Amount; MarkingMaster = fo.CreatedBy; var isPendingSender = State == MoneyTransferStateViewModel.PendingForSender || State == MoneyTransferStateViewModel.PendingForBoth; var isPendingReceiver = State == MoneyTransferStateViewModel.PendingForReceiver || State == MoneyTransferStateViewModel.PendingForBoth; var isPendingAny = isPendingReceiver || isPendingSender; HasApproveAccess = (fo.Project.HasMasterAccess(currentUserId, acl => acl.CanManageMoney) && isPendingAny) || (currentUserId == Sender.UserId && isPendingSender) || (currentUserId == Receiver.UserId && isPendingReceiver); Comment = fo.TransferText.Text.ToHtmlString(); }
public void Read(BinaryReader reader) { int num1 = reader.ReadInt32(); this.url = reader.ReadString(); this.title = reader.ReadString(); this.description = reader.ReadString(); this.photo_100 = reader.ReadString(); int num2 = 2; if (num1 >= num2) { this.image_big = reader.ReadString(); this.image_src = reader.ReadString(); } int num3 = 3; if (num1 >= num3) { this.caption = reader.ReadString(); this.photo = reader.ReadGeneric <Photo>(); this.product = reader.ReadGeneric <LinkProduct>(); this.button = reader.ReadGeneric <LinkButton>(); this.application = reader.ReadGeneric <LinkApplication>(); this.rating = reader.ReadGeneric <LinkRating>(); } int num4 = 4; if (num1 < num4) { return; } this.money_transfer = reader.ReadGeneric <MoneyTransfer>(); }
public async Task <IActionResult> Edit(int id, [Bind("ID,BankingAccountID,Type,CurrencyID,RecipientName,RecipientIBAN,RecipientCountry,RecipientAddress,Reason,AdditionalReason,Amount,TransferDate")] MoneyTransfer moneyTransfer) { if (id != moneyTransfer.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(moneyTransfer); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MoneyTransferExists(moneyTransfer.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["BankingAccountID"] = new SelectList(_context.BankingAccount, "ID", "ID", moneyTransfer.BankingAccountID); ViewData["CurrencyID"] = new SelectList(_context.Currency, "ID", "CurrencyInfo", moneyTransfer.CurrencyID); return(View(moneyTransfer)); }
protected override void OnOpenNew() { Transfer = new MoneyTransfer { Date = DateTime.Now }; }
public async Task <bool> SendMoneyToWallet(string phone, decimal amount, string comment = null) { var request = new MoneyTransfer { Id = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString(), Sum = new Sum { Amount = amount.ToString(CultureInfo.InvariantCulture), Currency = "643" }, Source = "account_643", PaymentMethod = new PaymentMethod { Type = "Account", AccountId = "643" }, Comment = comment, Fields = new Fields { Account = "+" + phone } }; _webClient.Headers["Authorization"] = $"Bearer {_token}"; _webClient.Headers["Content-Type"] = "application/json"; var url = BuildUrl("sinap/terms/99/payments"); try { var response = await _webClient.UploadStringTaskAsync(url, JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); return(response.Contains("Accepted")); } catch { return(false); } }
private int GetGender() { User user = null; if (this._notification.ParsedFeedback is List <FeedbackUser> ) { List <FeedbackUser> list = this._notification.ParsedFeedback as List <FeedbackUser>; if (list.Count > 1) { return(2); } user = (User)Enumerable.FirstOrDefault <User>(this._users, (Func <User, bool>)(u => u.uid == list[0].owner_id)); } else if (this._notification.ParsedFeedback is Comment) { user = (User)Enumerable.FirstOrDefault <User>(this._users, (Func <User, bool>)(u => u.uid == (this._notification.ParsedFeedback as Comment).from_id)); } else if (this._notification.ParsedFeedback is List <FeedbackCopyInfo> ) { List <FeedbackCopyInfo> list = this._notification.ParsedFeedback as List <FeedbackCopyInfo>; if (list.Count > 1) { return(2); } user = (User)Enumerable.FirstOrDefault <User>(this._users, (Func <User, bool>)(u => u.uid == list[0].owner_id)); } else if (this._notification.ParsedFeedback is MoneyTransfer) { MoneyTransfer moneyTransfer = (MoneyTransfer)this._notification.ParsedFeedback; user = moneyTransfer.IsOutbox ? (User)Enumerable.FirstOrDefault <User>(this._users, (Func <User, bool>)(u => u.uid == moneyTransfer.to_id)) : (User)Enumerable.FirstOrDefault <User>(this._users, (Func <User, bool>)(u => u.uid == moneyTransfer.from_id)); } Logger.Instance.Assert(user != null, "User is null in GetGender"); return(user != null && user.sex == 1 ? 1 : 0); }
public void Create_Successful_Transfer() { //Arrange var toUser = new UserDto { Id = 1 }; var fromUser = new UserDto { Id = 2 }; var moneyTransferDto = new MoneyTransferDto { CashAmount = 100M, CreatedOn = DateTime.Now, From = fromUser, Id = 1, Name = "Test", To = toUser }; _bankAccountServiceMock.Setup(s => s.TakeCash(It.Is <decimal>(m => m.Equals(moneyTransferDto.CashAmount)), It.Is <int>(i => i.Equals(moneyTransferDto.From.Id)))).Returns(true); _bankAccountServiceMock.Setup(s => s.GiveCash(It.Is <decimal>(m => m.Equals(moneyTransferDto.CashAmount)), It.Is <int>(i => i.Equals(moneyTransferDto.To.Id)))).Returns(true); var moneyTransfer = new MoneyTransfer(); _moneyTransferRepositoryMock.Setup(s => s.Create(It.Is <MoneyTransfer>(m => m.ToId == toUser.Id && m.CashAmount == moneyTransferDto.CashAmount && m.FromId == fromUser.Id))); var service = InstantiateService(); //Act var result = service.Transfer(moneyTransferDto); //Assert _bankAccountServiceMock.VerifyAll(); _moneyTransferRepositoryMock.VerifyAll(); Assert.IsTrue(result.Success); Assert.AreEqual("Transfer has been successful", result.Message); }
public async Task <IActionResult> Edit(int id, [Bind("Id,TransferAmount,TransferDateTime,MoneySenderId,MoneyReceiverId,ProviderId")] MoneyTransfer moneyTransfer) { if (id != moneyTransfer.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(moneyTransfer); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MoneyTransferExists(moneyTransfer.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["MoneyReceiverId"] = new SelectList(_context.MoneyReceiver, "Id", "Id", moneyTransfer.MoneyReceiverId); ViewData["MoneySenderId"] = new SelectList(_context.MoneySender, "Id", "Id", moneyTransfer.MoneySenderId); ViewData["ProviderId"] = new SelectList(_context.Set <Provider>(), "Id", "Id", moneyTransfer.ProviderId); return(View(moneyTransfer)); }
public void Make() { MoneyTransfer moneyTransfer = new MoneyTransfer(); List <Debtor> result = moneyTransfer.Make(mTTest.GetSample1List()); List <Debtor> control = debtorTest.GetResult1List(); CollectionAssert.AreEqual(control, result); }
public String MoveMoney([FromBody] MoneyTransfer moneyTransfer) { if (AccountService.Move(moneyTransfer.Sender, moneyTransfer.Receiver, moneyTransfer.amount)) { return("The amount has been successfuly moved"); } return("Invalid!\nPlease make sure that the sender/receiver exist and are not the same!"); }
public void Simple_transaction() { using (var connector = new Connector(_clientConfig)) { connector.DeclareCollection <Account>(); connector.DeclareCollection <MoneyTransfer>(); var accounts = connector.DataSource <Account>(); var accountIds = connector.GenerateUniqueIds("account_id", 2); var srcAccount = new Account { Id = accountIds[0], Balance = 1000 }; var dstAccount = new Account { Id = accountIds[1], Balance = 0 }; accounts.Put(srcAccount); accounts.Put(dstAccount); // check the sum of two balances is always 1000 var myAccounts = accounts.ToList(); Assert.AreEqual(2, myAccounts.Count); var sum = myAccounts.Sum(acc => acc.Balance); Assert.AreEqual(1000, sum); srcAccount.Balance -= 10; dstAccount.Balance += 10; var transfer = new MoneyTransfer { Amount = 10, Date = DateTime.Today, SourceAccount = myAccounts[0].Id, DestinationAccount = myAccounts[1].Id }; var transaction = connector.BeginTransaction(); transaction.Put(srcAccount); transaction.Put(dstAccount); transaction.Put(transfer); transaction.Commit(); // check the some of two balances is always 1000 myAccounts = accounts.ToList(); Assert.AreEqual(2, myAccounts.Count); sum = myAccounts.Sum(acc => acc.Balance); Assert.AreEqual(1000, sum); Assert.IsFalse(myAccounts.Any(acc => acc.Balance == 0)); Console.WriteLine($"balance1={myAccounts[0].Balance} balance2={myAccounts[1].Balance}"); } }
private MoneyTransfer ConvertDataRowToMoneyTransfer(DataRow row) { var moneyTransfer = new MoneyTransfer(); moneyTransfer.Id = row["trans_id"] == DBNull.Value ? -1 : int.Parse(row["trans_id"].ToString()); var partAccount = row["part_acc"] == DBNull.Value ? -1 : int.Parse(row["part_acc"].ToString()); var creatorAccount = row["creator_acc"] == DBNull.Value ? -1 : int.Parse(row["creator_acc"].ToString()); var partRoleId = row["part_role_id"] == DBNull.Value ? -1 : int.Parse(row["part_role_id"].ToString()); var creatorRoleId = row["creator_role_id"] == DBNull.Value ? -1 : int.Parse(row["creator_role_id"].ToString()); var partBalance = row["part_bal"] == DBNull.Value ? -1 : double.Parse(row["part_bal"].ToString()); var creatorBalance = row["creator_bal"] == DBNull.Value ? 0 : double.Parse(row["creator_bal"].ToString()); var payType = row["pay_type"] == DBNull.Value ? string.Empty : row["pay_type"].ToString(); moneyTransfer.PayType = new CommonCodeRepo(db).GetCodesById(payType, "pay.type"); moneyTransfer.PayNo = row["pay_no"] == DBNull.Value ? string.Empty : row["pay_no"].ToString(); moneyTransfer.PayBank = row["bank_name"] == DBNull.Value ? string.Empty : row["bank_name"].ToString(); moneyTransfer.PayDate = row["pay_date"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(row["pay_date"].ToString()); moneyTransfer.CreatedOn = row["createdon"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(row["createdon"].ToString()); var accessChannel = row["access_channel"] == DBNull.Value ? string.Empty : row["access_channel"].ToString(); moneyTransfer.AccessChannel = new CommonCodeRepo(db).GetCodesById(accessChannel, "access.channel"); moneyTransfer.Amount = row["amount"] == DBNull.Value ? 0 : double.Parse(row["amount"].ToString()); moneyTransfer.TaxPercent = row["tax_per"] == DBNull.Value ? 0 : double.Parse(row["tax_per"].ToString()); moneyTransfer.TaxAmount = row["tax_amt"] == DBNull.Value ? 0 : double.Parse(row["tax_amt"].ToString()); moneyTransfer.BonusPercent = row["bonus_per"] == DBNull.Value ? 0 : double.Parse(row["bonus_per"].ToString()); moneyTransfer.BounsAmount = row["bonus_amt"] == DBNull.Value ? 0 : double.Parse(row["bonus_amt"].ToString()); moneyTransfer.BounsTaxPercent = row["bonus_tax"] == DBNull.Value ? 0 : double.Parse(row["bonus_tax"].ToString()); moneyTransfer.BounsTaxAmount = row["bonus_tax_amt"] == DBNull.Value ? 0 : double.Parse(row["bonus_tax_amt"].ToString()); moneyTransfer.ReceivedAmount = row["received_amt"] == DBNull.Value ? 0 : double.Parse(row["received_amt"].ToString()); moneyTransfer.NetAmount = row["net_amount"] == DBNull.Value ? 0 : double.Parse(row["net_amount"].ToString()); moneyTransfer.BillNo = row["bill_no"] == DBNull.Value ? string.Empty : row["bill_no"].ToString(); moneyTransfer.RequestNo = row["request_no"] == DBNull.Value ? string.Empty : row["request_no"].ToString(); moneyTransfer.RequestAmount = row["request_amt"] == DBNull.Value ? 0 : double.Parse(row["request_amt"].ToString()); moneyTransfer.Note = row["note"] == DBNull.Value ? string.Empty : row["note"].ToString(); moneyTransfer.Adjusted = row["adjusted"] == DBNull.Value ? false : row["adjusted"].ToString() == "1" ? true : false; moneyTransfer.AdjustmentNo = row["adjust_id"] == DBNull.Value ? 0 : int.Parse(row["adjust_id"].ToString()); moneyTransfer.ApiTransaction = row["api_trans"] == DBNull.Value ? 0 : long.Parse(row["api_trans"].ToString()); moneyTransfer.FixedFactor = row["fixed_factor"] == DBNull.Value ? 0 : double.Parse(row["fixed_factor"].ToString()); moneyTransfer.Partner = partnerManager.GetPartnerByAccount(partAccount); if (moneyTransfer.Partner != null) { moneyTransfer.Partner.Role = new RoleRepo(db, partnerActivityRepo).GetRole(partRoleId); moneyTransfer.Partner.Balance = partBalance; moneyTransfer.Partner.Id = row["part_id"] == DBNull.Value ? string.Empty : row["part_id"].ToString(); } moneyTransfer.CreatedBy = partnerManager.GetPartnerByAccount(creatorAccount); if (moneyTransfer.CreatedBy != null) { moneyTransfer.CreatedBy.Role = new RoleRepo(db, partnerActivityRepo).GetRole(creatorRoleId); moneyTransfer.CreatedBy.Balance = creatorBalance; moneyTransfer.CreatedBy.Id = row["createdby"] == DBNull.Value ? string.Empty : row["createdby"].ToString(); } return(moneyTransfer); }
public void Sequential_consistent_reads_and_transactions() { using var connector = new Connector(_clientConfig); connector.DeclareCollection <Account>(); connector.DeclareCollection <MoneyTransfer>(); var accounts = connector.DataSource <Account>(); var accountIds = connector.GenerateUniqueIds("account_id", 2); accounts.Put(new Account { Id = accountIds[0], Balance = 1000 }); accounts.Put(new Account { Id = accountIds[1], Balance = 0 }); // ReSharper disable once AccessToDisposedClosure connector.ConsistentRead <MoneyTransfer, Account>(ctx => { var myAccounts = ctx.Collection <Account>().ToList(); Assert.AreEqual(2, myAccounts.Count); // with consistent reed we do not see the updates during a transaction. The sum of the accounts balance should always be 1000 Assert.AreEqual(1000, myAccounts.Sum(acc => acc.Balance)); var transfers = ctx.Collection <MoneyTransfer>(); var unused = transfers.Where(t => t.SourceAccount == myAccounts[0].Id).ToList(); }); var all = accounts.ToList(); var transfer = new MoneyTransfer { Amount = 10, Date = DateTime.Today, SourceAccount = all[0].Id, DestinationAccount = all[1].Id }; all[0].Balance -= 10; all[1].Balance += 10; var transaction = connector.BeginTransaction(); transaction.Put(all[0]); transaction.Put(all[1]); transaction.Put(transfer); transaction.Commit(); }
private void Transfer_OnClicked(object sender, System.Windows.Input.GestureEventArgs e) { MoneyTransferViewModel dataContext = ((FrameworkElement)((RoutedEventArgs)e).OriginalSource).DataContext as MoneyTransferViewModel; MoneyTransfer moneyTransfer = dataContext != null ? dataContext.Transfer : null; if (moneyTransfer == null) { return; } TransferCardView.Show(moneyTransfer.id, moneyTransfer.from_id, moneyTransfer.to_id); }
private void ActionButton_OnClicked(object sender, System.Windows.Input.GestureEventArgs e) { if (this._link.money_transfer == null) { LinkButton button = this._link.button; string url = (button != null ? button.url : null) ?? this._link.url; if (string.IsNullOrEmpty(url)) { return; } e.Handled = true; LinkButtonAction action = button.action; LinkButtonAction linkButtonAction1 = action; if ((linkButtonAction1 != null ? (linkButtonAction1.Type == LinkButtonActionType.JoinGroupAndOpenUrl ? 1 : 0) : 0) != 0) { GroupsService.Current.Join(action.group_id, false, (Action <BackendResult <OwnCounters, ResultCode> >)(result => { if (result.ResultCode != ResultCode.Succeeded) { return; } Execute.ExecuteOnUIThread((Action)(() => Navigator.Current.NavigateToWebUri(url, action.IsExternal, false))); }), null); } else { INavigator current = Navigator.Current; string uri = url; LinkButtonAction linkButtonAction2 = action; int num1 = linkButtonAction2 != null ? (linkButtonAction2.IsExternal ? 1 : 0) : 0; int num2 = 0; current.NavigateToWebUri(uri, num1 != 0, num2 != 0); } } else { e.Handled = true; if (this.CanShowCard) { MoneyTransfer moneyTransfer = this._link.money_transfer; TransferCardView.Show(moneyTransfer.id, moneyTransfer.from_id, moneyTransfer.to_id); } else { string uri = "https://m.vk.com/landings/moneysend"; string lang = LangHelper.GetLang(); if (!string.IsNullOrEmpty(lang)) { uri += string.Format("?lang={0}", lang); } Navigator.Current.NavigateToWebViewPage(uri, true); } } }
public async Task TransferMinuies(IGuildUser target, ulong amount) { try { MoneyTransfer.UserToUser(Context.User.Id, target.Id, amount); await ReplyAsync($"{Context.User.Username} has given {target.Username} {amount}."); } catch (InvalidOperationException e) { await ReplyAsync($"{e.Message}"); } }
public ActionResult Transfer(Guid sourceId, Guid sinkId, decimal amount) { var source = repo.Get <Account>(sourceId); var sink = repo.Get <Account>(sinkId); var moneyTransfer = new MoneyTransfer(source, sink, amount); repo.Update(source); repo.Update(sink); TempData["Message"] = "Transfer successful."; return(RedirectToAction("Index")); }
private UCItem CreateSnippetItem(MoneyTransfer moneyTransfer, double topMargin) { NumberFormatInfo numberFormatInfo = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone(); numberFormatInfo.NumberGroupSeparator = " "; int number = this._moneyTransfer.amount.amount / 100; string str = UIStringFormatterHelper.FormatNumberOfSomething(number, CommonResources.OneRoubleForm, CommonResources.TwoFourRoublesForm, CommonResources.FiveRoublesForm, false, null, false); return(this.CreateSnippetItem(new Link() { title = string.Format("{0} {1}", number.ToString("#,#", (IFormatProvider)numberFormatInfo), str), caption = CommonResources.MoneyTransfer, money_transfer = moneyTransfer }, topMargin)); }
public async Task <IActionResult> Create([Bind("ID,BankingAccountID,Type,CurrencyID,RecipientName,RecipientIBAN,RecipientCountry,RecipientAddress,Reason,AdditionalReason,Amount,TransferDate")] MoneyTransfer moneyTransfer) { if (ModelState.IsValid) { _context.Add(moneyTransfer); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["BankingAccountID"] = new SelectList(_context.BankingAccount, "ID", "ID", moneyTransfer.BankingAccountID); ViewData["CurrencyID"] = new SelectList(_context.Currency, "ID", "CurrencyInfo", moneyTransfer.CurrencyID); return(View(moneyTransfer)); }
public async Task TestMethod() { var anna = Guid.NewGuid(); var john = Guid.NewGuid(); var amount = 100; var moneyTransfer = new MoneyTransfer(amount, anna, john, "Money laudry", "Do not tell anyone"); // I can create the derived object using with keyword. It will create a clone of the object with some properties getting new values. var wrongMoneyTransfer = moneyTransfer with { Amount = -100 }; }
public async Task <IActionResult> Create([Bind("Id,TransferAmount,TransferDateTime,MoneySenderId,MoneyReceiverId,ProviderId")] MoneyTransfer moneyTransfer) { if (ModelState.IsValid) { _context.Add(moneyTransfer); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["MoneyReceiverId"] = new SelectList(_context.MoneyReceiver, "Id", "Id", moneyTransfer.MoneyReceiverId); ViewData["MoneySenderId"] = new SelectList(_context.MoneySender, "Id", "Id", moneyTransfer.MoneySenderId); ViewData["ProviderId"] = new SelectList(_context.Set <Provider>(), "Id", "Id", moneyTransfer.ProviderId); return(View(moneyTransfer)); }
public void AcceptTransfer() { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type // MoneyTransferViewModel.<>c__DisplayClass61_1 cDisplayClass611_1 = new MoneyTransferViewModel.<>c__DisplayClass61_1(); // ISSUE: reference to a compiler-generated field // cDisplayClass611_1.<>4__this = this; if (this.Transfer == null) { return; } // ISSUE: reference to a compiler-generated field string acceptUrl = this.Transfer.accept_url; // ISSUE: reference to a compiler-generated field if (!string.IsNullOrEmpty(acceptUrl)) { // ISSUE: reference to a compiler-generated field this.AcceptTransfer(acceptUrl); } else { FullscreenLoader loader = new FullscreenLoader(); loader.Show(null, true); MoneyTransfersService.CheckTransfer(this.Transfer.id, this.Transfer.from_id, this.Transfer.to_id, (Action <BackendResult <MoneyTransfer, ResultCode> >)(result => { loader.Hide(false); ResultCode resultCode = result.ResultCode; if (resultCode == ResultCode.Succeeded) { // ISSUE: variable of a compiler-generated type // MoneyTransferViewModel.<>c__DisplayClass61_1 cDisplayClass611_2 = cDisplayClass611_1; MoneyTransfer resultData = result.ResultData; string str = resultData != null ? resultData.accept_url : null; // ISSUE: reference to a compiler-generated field acceptUrl = str; if (string.IsNullOrEmpty(acceptUrl)) { return; } this.AcceptTransfer(acceptUrl); } else { GenericInfoUC.ShowBasedOnResult(resultCode, "", null); } })); } }
public void No_deadlock_if_same_objects_are_updated_in_parallel_by_one_client() { using (var connector = new Connector(_clientConfig)) { connector.DeclareCollection <Account>(); var accounts = connector.DataSource <Account>(); var accountIds = connector.GenerateUniqueIds("account_id", 2); accounts.Put(new Account { Id = accountIds[0], Balance = 1000 }); accounts.Put(new Account { Id = accountIds[1], Balance = 0 }); var myAccounts = accounts.ToList(); try { Parallel.For(0, 100, i => { var transfer = new MoneyTransfer { Amount = 10, Date = DateTime.Today, SourceAccount = myAccounts[0].Id, DestinationAccount = myAccounts[1].Id }; myAccounts[0].Balance -= 10; myAccounts[1].Balance += 10; var transaction = connector.BeginTransaction(); transaction.Put(myAccounts[0]); transaction.Put(myAccounts[1]); transaction.Put(transfer); transaction.Commit(); }); } catch (Exception e) { Console.WriteLine(e); // a transaction can fail. We are testing that there is no deadlock } } }
static void Main(string[] args) { try { var list = new List <LedgerEntry>(); list.Add(new LedgerEntry("start", 0m)); list.Add(new LedgerEntry("first deposit", 1000m)); var source = new Account <List <LedgerEntry> >(list); var destination = new Account <List <LedgerEntry> >(new List <LedgerEntry>()); var context = new MoneyTransfer <Account <List <LedgerEntry> >, Account <List <LedgerEntry> > >(source, destination, 245m); context.Transfer(); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } MoneyTransfer = await _context.MoneyTransfer.FindAsync(id); if (MoneyTransfer != null) { _context.MoneyTransfer.Remove(MoneyTransfer); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public ResultDto Transfer(MoneyTransferDto moneyTransferDto) { ResultDto resultDto = new ResultDto() { Success = false }; if (moneyTransferDto.From.Id != moneyTransferDto.To.Id) { var successTransferFrom = _bankAccountService.TakeCash(moneyTransferDto.CashAmount, moneyTransferDto.From.Id); if (successTransferFrom) { var successTransferTo = _bankAccountService.GiveCash(moneyTransferDto.CashAmount, moneyTransferDto.To.Id); if (successTransferTo) { var moneyTransfer = new MoneyTransfer() { CashAmount = moneyTransferDto.CashAmount, CreatedOn = DateTime.Now, FromId = moneyTransferDto.From.Id, ToId = moneyTransferDto.To.Id, Name = moneyTransferDto.Name }; _moneyTransferRepository.Create(moneyTransfer); resultDto.Success = true; resultDto.Message = "Transfer has been successful"; } else { resultDto.Message = "Error occurs when trying to transfer money from customer. Make sure you've provided valid account number"; } } else { resultDto.Message = "Error occurs when trying to transfer money from customer. Make sure you have enough money."; } } else { resultDto.Message = "You cannot transfer money to yourself!"; } return(resultDto); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } MoneyTransfer = await _context.MoneyTransfer .Include(m => m.MoneyReceiver) .Include(m => m.MoneySender) .Include(m => m.Provider).FirstOrDefaultAsync(m => m.Id == id); if (MoneyTransfer == null) { return(NotFound()); } return(Page()); }