示例#1
0
        private void ButtonModify_Click(object sender, EventArgs e)
        {
            DataGridViewSelectedRowCollection rowSelected = dataGridView1.SelectedRows;

            switch (rowSelected.Count)
            {
            case 0:
                this.Enabled = false;
                Dialog dialog = new Dialog("No one elemented has been selected");
                dialog.ShowDialog();
                this.Enabled = true;
                break;

            case 1:

                TransactionView transactionSelected = (TransactionView)rowSelected[0].DataBoundItem;

                this.Enabled = false;

                TransactionSettings settings = new TransactionSettings(transactionSelected);
                settings.OnExecutionResult += ModifyTransaction;
                settings.ShowDialog();
                this.Enabled = true;

                break;

            default:
                this.Enabled = false;
                Dialog dialog2 = new Dialog("Only 1 item must be selected");
                dialog2.ShowDialog();
                this.Enabled = true;
                break;
            }
        }
示例#2
0
        protected IView getView(String name)
        {
            IView view = null;

            switch (name)
            {
            case "transactions":
                view = new TransactionView(mViewHelper);
                break;

            case "investors":
                view = new InvestorView(mViewHelper);
                break;

            case "composite":
                view = new CompositeView(mViewHelper);
                break;

            case "login":
                view = new LoginView(mViewHelper);
                break;

            default:
                break;
            }

            return(view);
        }
示例#3
0
        public override void OnControlLoad(object sender, EventArgs e)
        {
            using (TransactionView view = new TransactionView())
            {
                view.DisplayAddButton   = true;
                view.DisplayFlagButton  = true;
                view.DisplayPrintButton = true;
                view.AddNewPath         = "Entry/JournalVoucher.mix";
                view.GridViewCssClass   = "ui table nowrap";
                view.Text = Titles.JournalVoucher;

                //Default Values
                view.DateFromFromFrequencyType = FrequencyType.FiscalYearStartDate;
                view.DateToFrequencyType       = FrequencyType.FiscalYearEndDate;

                view.Book       = "Journal";
                view.PostedBy   = CurrentUser.GetSignInView().UserName;
                view.OfficeName = CurrentUser.GetSignInView().OfficeName;
                view.Status     = "Approved";

                view.UserId   = CurrentUser.GetSignInView().UserId.ToInt();
                view.OfficeId = CurrentUser.GetSignInView().OfficeId.ToInt();

                this.Controls.Add(view);
            }
        }
示例#4
0
        public MainForm(string username_, DateTime loginTime_)
        {
            //username = username_;
            //loginTime = loginTime_;

            username = "******";
            loginTime = DateTime.Now;

            InitializeComponent();

            homeForm = new Home();
            homeForm.TopLevel = false;
            this.pnlHome.Controls.Add(homeForm);
            homeForm.Show();

            accountManageForm = new AccountManage();
            accountManageForm.TopLevel = false;
            this.pnlAccountManager.Controls.Add(accountManageForm);
            accountManageForm.Show();

            settingManageForm = new SettingManage();
            settingManageForm.TopLevel = false;
            this.pnlSettingManage.Controls.Add(settingManageForm);
            settingManageForm.Show();

            transactionViewForm = new TransactionView();
            transactionViewForm.TopLevel = false;
            this.pnlTransactionView.Controls.Add(transactionViewForm);
            transactionViewForm.Show();
        }
        public override void OnControlLoad(object sender, EventArgs e)
        {
            using (TransactionView view = new TransactionView())
            {
                view.DisplayFlagButton    = true;
                view.DisplayApproveButton = true;
                view.DisplayRejectButton  = true;
                view.DisplayPrintButton   = true;

                view.GridViewCssClass = "ui table nowrap";
                view.Text             = Titles.VoucherVerification;

                //Default Values
                view.DateFromFromFrequency = Frequency.Today;
                view.DateToFrequency       = Frequency.Today;
                view.Status = "Unverified";

                view.OfficeName = SessionHelper.GetOfficeName();

                this.Controls.Add(view);
            }

            this.AddModal();
            base.OnControlLoad(sender, e);
        }
        protected void TransferOOBTransactionButton_Click(object sender, System.EventArgs e)
        {
            if (!String.IsNullOrEmpty(((TextBox)TransactionView.FindControl("AmountBox")).Text.ToString()))
            {
                if (oobTransactionInitiated)
                {
                    ResponseLabel.Text = "Transaction " + oobTransactionId + " already in progress, please cancel of authorize!";
                }
                else
                {
                    vipCredentialClient = new vipCredentialSvcClient();
                    string[] fromAcct = ((DropDownList)TransactionView.FindControl("FromAccountList")).SelectedValue.ToString().Split(new char[] { '*' });
                    string[] toAcct   = ((DropDownList)TransactionView.FindControl("ToAccountList")).SelectedValue.ToString().Split(new char[] { '*' });

                    showMessage = showMessage.Replace("_fromAccount_", fromAcct[1]);
                    showMessage = showMessage.Replace("_toAccount_", toAcct[1]);
                    showMessage = showMessage.Replace("_amountValue_", ((TextBox)TransactionView.FindControl("AmountBox")).Text);

                    smsSendMessage = smsSendMessage.Replace("_fromAccount_", fromAcct[1]);
                    smsSendMessage = smsSendMessage.Replace("_toAccount_", toAcct[1]);
                    smsSendMessage = smsSendMessage.Replace("_amountValue_", ((TextBox)TransactionView.FindControl("AmountBox")).Text);


                    if (((RadioButton)TransactionView.FindControl("SMSInPageRadioButton")).Checked)
                    {
                        oobTransactionId = vipCredentialClient.sendTxnOTP(smsNumber, "SMS", smsSendMessage);
                    }
                    else if (((RadioButton)TransactionView.FindControl("VoiceInPageRadioButton")).Checked)
                    {
                        oobTransactionId = vipCredentialClient.sendTxnOTP(smsNumber, "Voice", smsSendMessage);
                    }

                    else
                    {
                        oobTransactionId = "on_phone_not_implemented";
                    }

                    ResponseLabel.Text = "Transaction " + oobTransactionId + " in progress, authorization required!";

                    oobTransactionInitiated = true;
                }

                //clean-up the amount
                ((TextBox)TransactionView.FindControl("AmountBox")).Text = "";
                displayOOBDetails(false);
            }
            else
            {
                if (oobTransactionInitiated)
                {
                    ResponseLabel.Text = "Transaction " + oobTransactionId + " already in progress, please cancel of authorize!";
                    displayOOBDetails(false);
                }
                else
                {
                    ResponseLabel.Text = "There is no active transaction";
                    displayOOBDetails(true);
                }
            }
        }
示例#7
0
        private void UpdateTransactionView(TransactionView transactionView)
        {
            Func <TransactionView, bool> idFilter = (TransactionView transactionAux) => {
                switch (transactionAux.Source)
                {
                case TransactionDTO.SourceGeneration.DataBase:
                    return(transactionAux.ID == transactionView.ID);

                case TransactionDTO.SourceGeneration.NewTransaction:
                    return(transactionAux.Internal_ID == transactionView.Internal_ID);

                default:
                    throw new Exception("Transaction source not defined");
                }
            };

            TransactionView result = transactionDataSource.Where(idFilter)
                                     .SingleOrDefault();

            //Update
            if (result != null)
            {
                transactionDataSource.RemoveAll(new Predicate <TransactionView>(idFilter));
            }

            if (!transactionView.IsDeleted)
            {
                transactionDataSource.Add(transactionView);
            }

            //Refresh data source
            bindginDataSource.ResetBindings(metadataChanged: false);
        }
            public void DoAction()
            {
                TransactionView transactionView = new TransactionView();

                transactionView.DataContext = new TransactionViewModel(_viewModel._unitOfWork);
                transactionView.ShowDialog();
            }
示例#9
0
        public JsonResult TransactionUpsert(TransactionView transactionView)
        {
            if (transactionView == null)
            {
                return new JsonResult {
                           Data = new { status = 400 }
                }
            }
            ;

            if ((transactionView.Payment.HasValue && transactionView.Deposit.HasValue) ||
                (!transactionView.Payment.HasValue && !transactionView.Deposit.HasValue))
            {
                return new JsonResult {
                           Data = new { status = 400 }
                }
            }
            ;

            List <string> validationErrors = new List <string>();
            var           data             = Upsert(transactionView, out validationErrors);

            return(new JsonResult {
                Data = new { status = data != null ? 200 : 500, errors = validationErrors }
            });
        }
        // GET: Transaction/Details/5
        public IActionResult Details(int id)
        {
            var transaction = _transactionService.GetById(id);

            if (transaction == null)
            {
                return(NotFound());
            }


            var modelDetail = new TransactionView
            {
                TransactionId     = transaction.TransactionId,
                ApplicationUser   = transaction.ApplicationUser,
                ApplicationUserId = transaction.ApplicationUserId,
                LoyaltyCard       = transaction.LoyaltyCard,
                Date = transaction.Date,
                PaymentConfirmationRequested = transaction.PaymentConfirmationRequested,
            };

            if (transaction.PaymentType == 0)
            {
                modelDetail.NameOfPayment = "Gotówka";
            }
            else
            {
                modelDetail.NameOfPayment = "Karta";
            }

            modelDetail.ProductsLists = _productsListService.GetProductsListsByTransactionId(id);

            return(View(modelDetail));
        }
        public override void OnControlLoad(object sender, EventArgs e)
        {
            using (TransactionView view = new TransactionView())
            {
                view.DisplayFlagButton    = true;
                view.DisplayApproveButton = true;
                view.DisplayRejectButton  = true;
                view.DisplayPrintButton   = true;

                view.GridViewCssClass = "ui table nowrap";
                view.Text             = Titles.VoucherVerification;

                //Default Values
                view.DateFromFromFrequencyType = FrequencyType.Today;
                view.DateToFrequencyType       = FrequencyType.Today;
                view.Status = "Unverified";

                view.OfficeName = AppUsers.GetCurrent().View.OfficeName;

                view.UserId   = AppUsers.GetCurrent().View.UserId.ToInt();
                view.OfficeId = AppUsers.GetCurrent().View.OfficeId.ToInt();
                view.Catalog  = AppUsers.GetCurrentUserDB();

                this.Controls.Add(view);
            }

            this.AddModal();
        }
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel(YumiContext context)
        {
            _context = context;

            MessengerInstance.Register <NavigateTo>(this, NavigateToContent);
            TopBarView  = new TopBarView();
            SideBarView = new SideBarView();
            MainView    = new TransactionView();
        }
示例#13
0
        private void DeleteTransaction(TransactionDTO transactionResult)
        {
            transactionManager.DeleteTransaction(transactionResult);

            TransactionView transactionView = CastObject.TransactionToTransactionView(transactionResult);

            transactionView.IsDeleted = true;

            UpdateTransactionView(transactionView);
        }
示例#14
0
        private void Button_Delete(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
            {
                TransactionView transactionSelected = (TransactionView)row.DataBoundItem;

                TransactionDTO transaction = CastObject.TransactionViewToTransaction(transactionSelected);

                DeleteTransaction(transaction);
            }
        }
示例#15
0
        public TransactionSettings(TransactionView transactionView) : this()
        {
            this.textBoxSpendType.Text = transactionView.Type;
            this.text_amount.Text      = Normalizer.NormalizeAmount(transactionView.Amount);
            this.dateTimeSpend.Value   = transactionView.Date;
            this.transactionCodeSelector.SelectedText = transactionView.Code;
            this.text_description.Text = transactionView.Description;
            this.transactionID         = transactionView.ID;

            this.internalTransactionID = transactionView.Internal_ID;
            this.generationSource      = transactionView.Source;
        }
示例#16
0
        private void SelectAcc_SelectedIndexChanged(object sender, EventArgs e)
        {
            //clear combo boxes first
            SelectBook.Items.Clear();
            SelectBook.ResetText();
            TransactionView.Items.Clear();
            TransactionView.ResetText();

            LoadBooks(Int32.Parse(SelectAcc.Text.Substring(0, 4)));

            SelectBook.Enabled  = true;
            btn_Process.Enabled = false;
        }
示例#17
0
 private void adjustAmountIfUserIsTransactionSender(TransactionView transaction, string id)
 {
     if (transaction.SenderAccount.ID == id)
     {
         transaction.Amount = -transaction.Amount;
         var receiver   = transaction.SenderAccount;
         var receiverId = transaction.SenderAccountId;
         transaction.SenderAccount     = transaction.ReceiverAccount;
         transaction.ReceiverAccount   = receiver;
         transaction.SenderAccountId   = transaction.ReceiverAccountId;
         transaction.ReceiverAccountId = receiverId;
     }
 }
示例#18
0
        // GET: Transactions/Edit/5
        public ActionResult Edit(Guid?id)
        {
            //TODO:Add validation for payment if there's still a balance in fund or register account.

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Transaction transaction = db.Transactions.Include("TransactionLines")
                                      .Where(x => x.Id == id).FirstOrDefault();

            if (transaction == null)
            {
                return(HttpNotFound());
            }

            var tranLines = transaction.TransactionLines;

            var transview = new TransactionView();

            transview.Id = transaction.Id;
            transview.TransactionDate   = transaction.TransactionDate;
            transview.Payee             = transaction.Payee;
            transview.Comment           = transaction.Comment;
            transview.AccountRegistryId = transaction.AccountRegisterId;
            transview.Splits            = transaction.TransactionLines
                                          .Where(y => y.AccountId != transaction.AccountRegisterId)
                                          .Select(x => new Split()
            {
                Id                 = x.Id,
                SplitAccountId     = x.AccountId,
                SplitAccountFundId = x.FundId,
                SplitAmount        = x.Amount > 0 ? x.Amount :  x.Amount * -1
            }).ToList();



            var amount = tranLines.Where(x => x.AccountId == transaction.AccountRegisterId).Sum(s => s.Amount);

            if (amount > 0)
            {
                transview.Deposit = amount;
            }
            else
            {
                transview.Payment = amount * -1;                  //diplay as positive
            }
            transview.AccountOptions = db.AccountCharts.ToList(); //populate reference options

            return(View(transview));
        }
示例#19
0
        public TransactionView GetTransactionViewModel(Transaction Transaction)
        {
            var transactionView = new TransactionView()
            {
                Id    = Transaction.Id,
                Date  = Transaction.Date,
                Summa = Transaction.Summa,
                Type  = Transaction.Type,
                AccountInfoInitiator = Transaction.AccountInitiator.User.UserName,
                AccountInfoRecipient = Transaction.AccountRecipient.User.UserName
            };

            return(transactionView);
        }
示例#20
0
        public object NewTransaction(Store s)
        {
            var viewModel       = new TransactionViewModel(s, Configuration.Prefixes);
            var transactionView = new TransactionView {
                DataContext = viewModel
            };
            var tabItemViewModel = new TabItemViewModel(Strings.TransactionTabDefaultTitle, transactionView);

            tabItemViewModel.Toolbars.Add("StoreSelectorToolbar");
            tabItemViewModel.Toolbars.Add("TransactionToolbar");
            TabItems.Add(tabItemViewModel);
            Messenger.Default.Send(new SelectTabMessage(tabItemViewModel));
            return(null);
        }
 private void displayOOBDetails(bool cleanFlag)
 {
     if (!cleanFlag)
     {
         ((Label)TransactionView.FindControl("OOBTransactionDetailsLabel")).Text     = showMessage;
         ((Label)TransactionView.FindControl("OOBTransactIdTextLabel")).Text         = oobIdMessage;
         ((Label)TransactionView.FindControl("OOBTransactIdLabel")).Text             = oobTransactionId;
         ((Button)TransactionView.FindControl("CancelOOBTransactionButton")).Visible = true;
     }
     else
     {
         ((Label)TransactionView.FindControl("OOBTransactionDetailsLabel")).Text     = "";
         ((Label)TransactionView.FindControl("OOBTransactIdTextLabel")).Text         = "";
         ((Label)TransactionView.FindControl("OOBTransactIdLabel")).Text             = "";
         ((Button)TransactionView.FindControl("CancelOOBTransactionButton")).Visible = false;
     }
 }
示例#22
0
        public async Task <IActionResult> Create([Bind(properties)] TransactionView model)
        {
            bool receiverExists = await checkIfReceiverAccountExists(model.ReceiverAccountId);

            if (receiverExists)
            {
                var receiverObject = await accounts.GetObject(model.ReceiverAccountId);

                var senderObject = await accounts.GetObject(model.SenderAccountId);

                bool senderIsOk =
                    validateSender(senderObject,
                                   model.Amount);                                            //check if has enough balance and active card
                bool receiverIsOk = validateReceiverAndSender(receiverObject, senderObject); //c

                if (senderIsOk && receiverIsOk)
                {
                    //receiverBalance
                    receiverObject.Data.Balance = receiverObject.Data.Balance + model.Amount;

                    //senderBalance
                    senderObject.Data.Balance = senderObject.Data.Balance - model.Amount;

                    //Transaction
                    model.ID = Guid.NewGuid().ToString();
                    var transaction = TransactionFactory.CreateTransaction(model.ID, model.Amount,
                                                                           model.Explanation, model.SenderAccountId, model.ReceiverAccountId,
                                                                           DateTime.Now, model.ValidTo);

                    await accounts.UpdateObject(senderObject);

                    await accounts.UpdateObject(receiverObject);

                    await transactions.AddObject(transaction);
                    await generateTransactionNotification(transaction);

                    TempData["Status"] =
                        "Transaction successfully done to " + model.ReceiverAccountId + " from " +
                        model.SenderAccountId +
                        " in the amount of " + model.Amount + ". ";

                    await confirmIfTransactionWasRequested(transaction);
                }
            }
            return(RedirectToAction("Index", new { id = model.SenderAccountId }));
        }
示例#23
0
 public static TransactionDTO TransactionViewToTransaction(TransactionView transactionView)
 {
     return(new TransactionDTO()
     {
         ID = transactionView.ID,
         Internal_ID = transactionView.Internal_ID,
         Amount = transactionView.Amount,
         Date = transactionView.Date,
         DetailTransaction = new DetailTransacionDTO()
         {
             Type = transactionView.Type,
             Code = transactionView.Code,
             Description = transactionView.Description
         },
         Source = transactionView.Source
     });
 }
示例#24
0
        public ActionResult Edit(TransactionView transactionView)
        {
            if (transactionView == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if ((transactionView.Payment.HasValue && transactionView.Deposit.HasValue) ||
                (!transactionView.Payment.HasValue && !transactionView.Deposit.HasValue))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            List <string> errors = new List <string>();
            var           data   = Upsert(transactionView, out errors);

            return(RedirectToAction("Index", new { accountRegistryId = data.AccountRegistryId }));
        }
示例#25
0
        protected IView getView(String name)
        {
            IView view = null;

            switch (name)
            {
            case "transactions":
                view = new TransactionView();
                break;

            case "investors":
                view = new InvestorView();
                break;

            default:
                break;
            }

            return(view);
        }
示例#26
0
        // GET: Transactions/Create
        public ActionResult Create(Guid?accountRegistryId, DateTime?transDate, decimal?pAmout, decimal?dAmount, string payee)
        {
            try
            {
                var transactionView = new TransactionView();
                if (accountRegistryId != null && accountRegistryId.HasValue && accountRegistryId != Guid.Empty)
                {
                    transactionView.AccountRegistryId = accountRegistryId.Value;
                }

                if (transDate != null && transDate.HasValue)
                {
                    transactionView.TransactionDate = transDate;
                }

                if (pAmout != null && pAmout.HasValue)
                {
                    transactionView.Payment = pAmout;
                }

                if (dAmount != null && dAmount.HasValue)
                {
                    transactionView.Deposit = dAmount;
                }

                transactionView.Payee = payee;

                transactionView.AccountOptions = db.AccountCharts.ToList();
                transactionView.Splits         = new List <Split>();
                return(View(transactionView));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// The initialize transaction filter determines the products that will be printed in View depending on the current filter parameters
        /// </summary>
        /// <param name="newValueTransaction">
        /// The parameter for a new transaction value or default empty if user did not put any
        /// </param>
        /// <param name="newValueParticular">
        /// The parameter for a new particular value or default empty if user did not put any
        /// </param>
        /// <param name="newValuePrincipal">
        /// The parameter for a new principal value or default empty if user did not put any
        /// </param>
        /// <param name="newValueSalesman">
        /// The parameter for a new salesman value or default empty if user did not put any
        /// </param>
        public void InitializeTransFilter(
            string newValueTransaction = "",
            string newValueParticular  = "",
            string newValuePrincipal   = "",
            string newValueSalesman    = "")
        {
            var listTrans = TransactionOrder.GetAllTransactions();

            this.ParticularFilterTrans.ItemsSource = null;
            this.ParticularFilterTrans.Items.Clear();
            this.ParticularFilterTrans.Items.Add("All Particular");
            this.PrincipalFilterTrans.ItemsSource = null;
            this.PrincipalFilterTrans.Items.Clear();
            this.PrincipalFilterTrans.Items.Add("All Principal");
            this.SalesmanFilterTrans.ItemsSource = null;
            this.SalesmanFilterTrans.Items.Clear();
            this.SalesmanFilterTrans.Items.Add("All Salesman");

            if (newValueTransaction != "All Transactions")
            {
                listTrans = listTrans.Where(q => q.TransactionType == newValueTransaction).ToList();
            }

            foreach (var prod in listTrans.Select(q => q.Particular).Distinct())
            {
                this.ParticularFilterTrans.Items.Add(prod);
            }

            if (newValueParticular != "All Particular")
            {
                listTrans = listTrans.Where(q => q.Particular == newValueParticular).ToList();
            }

            foreach (var prod in listTrans.SelectMany(q => q.Transactions).Select(s => s.Product.Principal).Distinct())
            {
                this.PrincipalFilterTrans.Items.Add(prod);
            }

            if (newValuePrincipal != "All Principal")
            {
                listTrans =
                    listTrans.Where(q => q.Transactions.Exists(s => s.Product.Principal == newValuePrincipal)).ToList();
            }

            foreach (var prod in listTrans.Select(q => q.SalesmanName).Distinct())
            {
                this.SalesmanFilterTrans.Items.Add(prod);
            }

            if (newValueSalesman != "All Salesman")
            {
                listTrans =
                    listTrans.Where(q => q.SalesmanName == newValueSalesman).ToList();
            }

            if (!string.IsNullOrWhiteSpace(this.startDate.Text))
            {
                listTrans = listTrans.Where(q => q.DateTransaction >= this.startDate.SelectedDate).ToList();
            }

            if (!string.IsNullOrWhiteSpace(this.endDate.Text))
            {
                listTrans = listTrans.Where(q => q.DateTransaction <= this.endDate.SelectedDate).ToList();
            }

            var transView = new List <TransactionView>();

            foreach (var tran in listTrans)
            {
                var temp = new TransactionView
                {
                    Id = tran.Id,
                    TransactionType = tran.TransactionType,
                    DateTransaction = tran.DateTransaction,
                    Particular      = tran.Particular,
                    PrincipalList   =
                        string.Join(
                            ",",
                            tran.Transactions.Select(q => q.Product)
                            .ToList()
                            .Select(q => q.Principal)
                            .Distinct()
                            .ToList()),
                    RefNo        = tran.RefNo,
                    ItemCount    = tran.Transactions.Count,
                    SalesmanName = tran.SalesmanName,
                    Transactions = tran.Transactions
                };
                transView.Add(temp);
            }

            this.TransactionDataGrid.ItemsSource      = transView;
            this.transactionFilterTrans               = newValueTransaction;
            this.particularFilterTrans                = newValueParticular;
            this.principalFilterTrans                 = newValuePrincipal;
            this.salesmanFilterTrans                  = newValueSalesman;
            this.TransactionFilterTrans.SelectedIndex = this.TransactionFilterTrans.Items.IndexOf(newValueTransaction);
            this.ParticularFilterTrans.SelectedIndex  = this.ParticularFilterTrans.Items.IndexOf(newValueParticular);
            this.PrincipalFilterTrans.SelectedIndex   = this.PrincipalFilterTrans.Items.IndexOf(newValuePrincipal);
            this.SalesmanFilterTrans.SelectedIndex    = this.SalesmanFilterTrans.Items.IndexOf(newValueSalesman);
        }
示例#28
0
        /// <summary>
        /// The method initialize the transactions and filter it with the input of the user
        /// </summary>
        /// <param name="newValueLocation">
        /// The new value location filter if user changed it.
        /// </param>
        /// <param name="newValuePrincipal">
        /// The new value principal filter if user changed it.
        /// </param>
        /// <param name="newValueCategory">
        /// The new value category filter if user changed it.
        /// </param>
        /// <param name="newValueName">
        /// The new value name filter if user changed it.
        /// </param>
        /// <param name="newValueType">
        /// The new value type filter if user changed it.
        /// </param>
        /// <param name="newValueParticular">
        /// The new value particular filter if user changed it.
        /// </param>
        /// <param name="newValueSalesman">
        /// The new value salesman filter if user changed it.
        /// </param>
        private void InitializeTransactions(string newValueLocation, string newValuePrincipal, string newValueCategory, string newValueName, string newValueType, string newValueParticular, string newValueSalesman)
        {
            var listTrans = TransactionOrder.GetAllTransactions();

            this.PrincipalInputTrans.Items.Clear();
            this.PrincipalInputTrans.Items.Add("All Principal");
            this.CategoryInputTrans.Items.Clear();
            this.CategoryInputTrans.Items.Add("All Category");
            this.LocationInputTrans.Items.Clear();
            this.LocationInputTrans.Items.Add("All Location");
            this.TypeInputTrans.Items.Clear();
            this.TypeInputTrans.Items.Add("All Transactions");
            this.TypeInputTrans.Items.Add("Sales");
            this.TypeInputTrans.Items.Add("Purchased");
            this.ParticularInputTrans.Items.Clear();
            this.ParticularInputTrans.Items.Add("All Particular");
            this.SalesmanInputTrans.Items.Clear();
            this.SalesmanInputTrans.Items.Add("All Salesman");
            this.NameInputTrans.Items.Clear();
            this.NameInputTrans.Items.Add("All Product");

            // Remove This
            foreach (var prod in listTrans.Select(q => q.TransactionType).Distinct())
            {
                this.TypeInputTrans.Items.Add(prod);
            }

            if (newValueType != "All Transactions")
            {
                listTrans = listTrans.Where(q => q.TransactionType == newValueType).ToList();
            }

            foreach (var prod in listTrans.Select(q => q.Particular).Distinct())
            {
                this.ParticularInputTrans.Items.Add(prod);
            }

            if (newValueParticular != "All Particular")
            {
                listTrans = listTrans.Where(q => q.Particular == newValueParticular).ToList();
            }

            foreach (var prod in listTrans.Select(q => q.SalesmanName).Distinct())
            {
                this.SalesmanInputTrans.Items.Add(prod);
            }

            if (newValueSalesman != "All Salesman")
            {
                listTrans = listTrans.Where(q => q.SalesmanName == newValueSalesman).ToList();
            }

            if (this.locationTransFilter != newValueLocation)
            {
                this.principalTransFilter = "All Principal";
                newValuePrincipal         = this.principalTransFilter;
                this.categoryTransFilter  = "All Category";
                newValueCategory          = this.categoryTransFilter;
                this.nameTransFilter      = "All Product";
                newValueName = this.nameTransFilter;
            }

            if (this.principalTransFilter != newValuePrincipal)
            {
                this.categoryTransFilter = "All Category";
                newValueCategory         = this.categoryTransFilter;
                this.nameTransFilter     = "All Product";
                newValueName             = this.nameTransFilter;
            }

            if (this.categoryTransFilter != newValueCategory)
            {
                this.nameTransFilter = "All Product";
                newValueName         = this.nameTransFilter;
            }

            foreach (var prod in listTrans.SelectMany(q => q.Transactions).Select(s => s.Product.Location).Distinct())
            {
                this.LocationInputTrans.Items.Add(prod);
            }

            if (newValueLocation != "All Location")
            {
                listTrans = listTrans.Where(q => q.Transactions.Exists(s => s.Product.Location == newValueLocation)).ToList();
            }

            foreach (var prod in listTrans.SelectMany(q => q.Transactions).Select(s => s.Product.Principal).Distinct())
            {
                this.PrincipalInputTrans.Items.Add(prod);
            }

            if (newValuePrincipal != "All Principal")
            {
                listTrans = listTrans.Where(q => q.Transactions.Exists(s => s.Product.Principal == newValuePrincipal)).ToList();
            }

            foreach (var prod in listTrans.SelectMany(q => q.Transactions).Select(s => s.Product.Category).Distinct())
            {
                this.CategoryInputTrans.Items.Add(prod);
            }

            if (newValueCategory != "All Category")
            {
                listTrans = listTrans.Where(q => q.Transactions.Exists(s => s.Product.Category == newValueCategory)).ToList();
            }

            foreach (var prod in listTrans.SelectMany(q => q.Transactions).Select(s => s.Product.Name).Distinct())
            {
                this.NameInputTrans.Items.Add(prod);
            }

            if (newValueName != "All Product")
            {
                listTrans = listTrans.Where(q => q.Transactions.Exists(s => s.Product.Name == newValueName)).ToList();
            }

            if (!string.IsNullOrWhiteSpace(this.DateFrom.Text))
            {
                listTrans = listTrans.Where(q => q.DateTransaction.Date >= this.DateFrom.SelectedDate).ToList();
            }

            if (!string.IsNullOrWhiteSpace(this.DateTo.Text))
            {
                listTrans = listTrans.Where(q => q.DateTransaction.Date <= this.DateTo.SelectedDate).ToList();
            }

            var transView = new List <TransactionView>();

            foreach (var tran in listTrans)
            {
                var temp = new TransactionView
                {
                    Id = tran.Id,
                    TransactionType = tran.TransactionType,
                    DateTransaction = tran.DateTransaction,
                    Particular      = tran.Particular,
                    PrincipalList   = string.Join(",", tran.Transactions.Select(q => q.Product).ToList().Select(q => q.Principal).Distinct().ToList()),
                    RefNo           = tran.RefNo,
                    ItemCount       = tran.Transactions.Count,
                    SalesmanName    = tran.SalesmanName,
                    Transactions    = tran.Transactions
                };
                transView.Add(temp);
            }

            this.typeTransFilter                    = newValueType;
            this.locationTransFilter                = newValueLocation;
            this.principalTransFilter               = newValuePrincipal;
            this.categoryTransFilter                = newValueCategory;
            this.particularTransFilter              = newValueParticular;
            this.salesmanTransFilter                = newValueSalesman;
            this.nameTransFilter                    = newValueName;
            this.TypeInputTrans.SelectedIndex       = this.TypeInputTrans.Items.IndexOf(newValueType);
            this.LocationInputTrans.SelectedIndex   = this.LocationInputTrans.Items.IndexOf(newValueLocation);
            this.PrincipalInputTrans.SelectedIndex  = this.PrincipalInputTrans.Items.IndexOf(newValuePrincipal);
            this.CategoryInputTrans.SelectedIndex   = this.CategoryInputTrans.Items.IndexOf(newValueCategory);
            this.ParticularInputTrans.SelectedIndex = this.ParticularInputTrans.Items.IndexOf(newValueParticular);
            this.SalesmanInputTrans.SelectedIndex   = this.SalesmanInputTrans.Items.IndexOf(newValueSalesman);
            this.NameInputTrans.SelectedIndex       = this.NameInputTrans.Items.IndexOf(newValueName);
            this.listTransactions                   = listTrans;
            this.TransactionDataGrid.ItemsSource    = transView;
        }
        public WebServicesModule(FreepayMockContext db)
        {
            Get["/webservices/public/subscriptionmanager.asmx/AuthorizeSubscription3"] = parameters =>
            {
                int    subscriptionId = parameters.subscriptionId;
                string password       = parameters.password;
                int    amount         = parameters.amount;
                string orderId        = parameters.orderId;
                int    currencyAsInt  = parameters.currencyAsInt;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var subscription = db.Subscriptions.FirstOrDefault(x => x.SubscriptionId == subscriptionId);

                if (subscription == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = new TransactionRecord();
                transaction.SubscriptionId = subscriptionId;
                transaction.Amount         = amount;
                transaction.OrderId        = orderId;
                transaction.CurrencyAsInt  = currencyAsInt;
                transaction.DateCreated    = DateTime.Now;
                return("OK");
            };

            Get["/webservices/public/subscriptionmanager.asmx/QuerySubscription"] = parameters =>
            {
                int    subscriptionId = parameters.subscriptionId;
                string password       = parameters.password;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var subscription = db.Subscriptions.FirstOrDefault(x => x.SubscriptionId == subscriptionId);

                if (subscription == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var model = new SubscriptionView();
                model.Acquirer       = "NetsTeller";
                model.CardType       = subscription.CardType;
                model.Currency       = subscription.Currency;
                model.DateCreated    = subscription.DateCreated;
                model.ExpiryDate     = subscription.ExpiryDate;
                model.MerchantID     = merchant.MerchantId;
                model.MerchantNumber = merchant.MerchantId;
                model.OrderID        = model.OrderID;
                model.PANHash        = "";
                model.SourceIP       = subscription.SourceIP;
                model.SubscriptionID = subscriptionId;
                return(Response.AsXml(model));
            };


            //public static string GetApproveTransactionUrl(int transactionId, string password)
            Get["/webservices/public/management.asmx/ApproveTransaction"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;


                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.IsAwaitingApproval = true;
                db.Transactions.Attach(transaction);
                db.SaveChanges();

                return(HttpStatusCode.OK);
            };


            //public static string GetCaptureUrl(int transactionId, string password)
            Get["/webservices/public/management.asmx/CaptureV2"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;


                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.Captured   = true;
                transaction.CapturedAt = DateTime.Now;
                db.Transactions.Attach(transaction);
                db.SaveChanges();

                var model = new TransactionResult();
                model.AcquirerStatusCode = 123;
                model.IsSuccess          = true;

                return(Response.AsXml(model));
            };

            //public static string GetChangeCaptureAmountUrl(int transactionId, string password, int amount)
            Get["/webservices/public/management.asmx/ChangeCaptureAmount"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;
                int    amount        = parameters.amount;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.Amount = amount;
                db.Transactions.Attach(transaction);
                db.SaveChanges();

                return(HttpStatusCode.OK);
            };

            //public static string GetCreditUrl(int transactionId, string password, int amount)
            Get["/webservices/public/management.asmx/CreditV2"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;
                int    amount        = parameters.amount;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.Amount = amount;
                db.Transactions.Attach(transaction);
                db.SaveChanges();

                TransactionResult result = new TransactionResult();
                result.AcquirerStatusCode = 100;
                result.IsSuccess          = true;

                return(Response.AsXml(result));
            };

            //public static string GetDeleteTransactionUrl(int transactionId, string password)
            Get["/webservices/public/management.asmx/DeleteTransaction"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;


                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.IsDeleted = true;
                db.Transactions.Attach(transaction);
                db.SaveChanges();

                return(HttpStatusCode.OK);
            };

            //public static string GetQueryTransactionUrl(int transactionId, string password)
            Get["/webservices/public/management.asmx/QueryTransaction"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                TransactionView model = new TransactionView();
                model.Acquirer            = "NetsTeller";
                model.MerchantNumber      = merchant.MerchantId;
                model.TransactionID       = transaction.TransactionId;
                model.AuthorizationAmount = transaction.AuthorizationAmount;
                model.CaptureAmount       = transaction.CaptureAmount;
                model.CaptureErrorCode    = transaction.CaptureErrorCode;
                model.CardType            = transaction.CardType;
                model.Currency            = transaction.CurrencyAsInt;
                model.DateAuthorized      = transaction.DateAuthorized.GetValueOrDefault();
                model.DateCaptured        = transaction.DateCaptured.GetValueOrDefault();
                model.DateCreated         = transaction.DateCreated;
                model.DateEarliestCapture = transaction.DateEarliestCapture;
                model.IsAwaitingApproval  = transaction.IsAwaitingApproval;
                model.IsCaptured          = transaction.IsCaptured;
                model.MerchantID          = transaction.MerchantId;
                model.OrderID             = transaction.OrderId;
                model.PANHash             = transaction.PANHash;
                model.SourceIP            = transaction.SourceIp;
                return("OK");
            };

            //public static string GetSetEarlistCaptureUrl(int transactionId, string password, DateTime earliestCapture)
            Get["/webservices/public/management.asmx/SetEarliestCapture"] = parameters =>
            {
                int      transactionId   = parameters.transactionId;
                DateTime earliestCapture = parameters.earliestCapture;
                string   password        = parameters.password;

                var merchant = db.Merchants.FirstOrDefault(x => x.Password == password);

                if (merchant == null)
                {
                    return(HttpStatusCode.InternalServerError);
                }

                var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId);

                if (transaction == null)
                {
                    return(HttpStatusCode.NotFound);
                }

                transaction.DateEarliestCapture = earliestCapture;

                return(HttpStatusCode.OK);
            };

            //public static string GetWithholdForApprovalUrl(int transactionId, string password)
            Get["/webservices/public/management.asmx/WithholdForApproval"] = parameters =>
            {
                int    transactionId = parameters.transactionId;
                string password      = parameters.password;



                return("Ok");
            };
        }
示例#30
0
 public async Task <IActionResult> CreateRequested([Bind(properties)] TransactionView model)
 {
     return(await Create(model));
 }
示例#31
0
 public async Task <IActionResult> CreateWithReceiver([Bind(properties)] TransactionView model)
 {
     return(await Create(model));
 }
		public TransactionPresenter(TransactionView view)
		{
			this.view = view;
		}