예제 #1
0
        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));
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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();
        }
예제 #5
0
파일: Link.cs 프로젝트: Makzz90/VKClient_re
        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));
        }
예제 #7
0
 protected override void OnOpenNew()
 {
     Transfer = new MoneyTransfer
     {
         Date = DateTime.Now
     };
 }
예제 #8
0
        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);
            }
        }
예제 #9
0
        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);
        }
예제 #10
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);
        }
예제 #13
0
 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!");
 }
예제 #14
0
        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}");
            }
        }
예제 #15
0
        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);
        }
예제 #16
0
        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();
        }
예제 #17
0
        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);
        }
예제 #18
0
 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);
         }
     }
 }
예제 #19
0
 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}");
     }
 }
예제 #20
0
        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"));
        }
예제 #21
0
        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));
        }
예제 #23
0
        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));
        }
예제 #25
0
        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);
                    }
                }));
            }
        }
예제 #26
0
        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
                }
            }
        }
예제 #27
0
 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());
     }
 }
예제 #28
0
        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"));
        }
예제 #29
0
        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);
        }
예제 #30
0
        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());
        }