Exemple #1
0
        public ActionResult Index(WithdrawalSearchModel withdrawalSearchModel)
        {
            try
            {
                WithdrawalViewModel wvm = new WithdrawalViewModel();
                if (withdrawalSearchModel.StartDateString != null && withdrawalSearchModel.StartDateString != "")
                {
                    withdrawalSearchModel.StartDate = DateTime.ParseExact(withdrawalSearchModel.StartDateString, "dd-MM-yyyy", CultureInfo.InvariantCulture);
                }
                if (withdrawalSearchModel.EndDateString != null && withdrawalSearchModel.EndDateString != "")
                {
                    withdrawalSearchModel.EndDate = DateTime.ParseExact(withdrawalSearchModel.EndDateString, "dd-MM-yyyy", CultureInfo.InvariantCulture).AddDays(1).AddMilliseconds(-1);
                }
                wvm.WithdrawalModelList = dal.GetWithdrawals(withdrawalSearchModel);

                var bankAccount = dal.GetBanks();
                ViewBag.BankAccount = new SelectList(bankAccount, "Id", "BankName");

                var gameType = dal.GetGameTypes();
                ViewBag.GameType = new SelectList(gameType, "Id", "GameType");

                var status = from Status s in Enum.GetValues(typeof(Status)) select new { ID = (int)s, Name = s.ToString() };
                ViewBag.Status = new SelectList(status, "ID", "Name");

                return(View(wvm));
            }
            catch
            {
                Session["message"]       = "Unable to perform this request";
                Session["requestStatus"] = "Error";
                return(RedirectToAction("Index", "Withdrawal"));
            }
        }
Exemple #2
0
        public ActionResult Index()
        {
            if (Session["userName"] != null)
            {
                dal.UpdateNotificationsByType("withdrawal");

                WithdrawalViewModel   wvm = new WithdrawalViewModel();
                WithdrawalSearchModel wsm = new WithdrawalSearchModel();
                wsm.Status = Status.PENDING;
                wvm.WithdrawalModelList = dal.GetWithdrawals(wsm);

                var bankAccount = dal.GetBanks();
                ViewBag.BankAccount = new SelectList(bankAccount, "Id", "BankName");

                var gameType = dal.GetGameTypes();
                ViewBag.GameType = new SelectList(gameType, "Id", "GameType");

                var status = from Status s in Enum.GetValues(typeof(Status)) select new { ID = (int)s, Name = s.ToString() };
                ViewBag.Status = new SelectList(status, "ID", "Name");

                wvm.Message       = Session["message"] != null ? Session["message"].ToString() : null;
                wvm.RequestStatus = Session["requestStatus"] != null ? Session["requestStatus"].ToString() : null;
                Session.Remove("message");
                Session.Remove("requestStatus");

                return(View(wvm));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
        private void ReturnFieldValues(WithdrawalSearchModel sessionSearchModel = null)
        {
            if (sessionSearchModel is null)
            {
                sessionSearchModel = Session["WithdrawalSearch"] as WithdrawalSearchModel;
            }

            if (sessionSearchModel != null)
            {
                txtStatus.Value      = sessionSearchModel.Status;
                txtClientId.Value    = sessionSearchModel.ClientModel.Id;
                txtClientEmail.Value = sessionSearchModel.ClientModel.Email;
                txtClientName.Value  = sessionSearchModel.ClientName;
                txtWalletId.Value    = sessionSearchModel.WalletId;
                txtDocumentId.Value  = sessionSearchModel.DocumentId;
                txtCreatedDate.Value = sessionSearchModel.CreatedDate;
                txtDocStatus.Value   = sessionSearchModel.DocumentStatus;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            string pageChecker = Request.QueryString["page"];

            if (string.IsNullOrEmpty(pageChecker))
            {
                Session.Remove("WithdrawalSearch");
            }

            using (NpgsqlConnection conn = Classes.DB.InstBTCDB("instbtc"))
            {
                NpgsqlCommand command = new NpgsqlCommand();
                string        query   = string.Empty;

                if (Request.HttpMethod == "POST")
                {
                    string status         = txtStatus.Value;
                    string clientId       = txtClientId.Value;
                    string clientEmail    = txtClientEmail.Value;
                    string clientName     = txtClientName.Value;
                    string walletId       = txtWalletId.Value;
                    string documentId     = txtWalletId.Value;
                    string createdDate    = txtCreatedDate.Value;
                    string docStatus      = txtDocStatus.Value;
                    string refferenceHash = txtHash.Value;

                    WithdrawalSearchModel searchModel = new WithdrawalSearchModel()
                    {
                        Status      = status,
                        ClientModel = new ClientModelSearch
                        {
                            Id    = clientId,
                            Email = clientEmail
                        },
                        DocumentStatus  = docStatus,
                        ClientName      = clientName,
                        WalletId        = walletId,
                        DocumentId      = documentId,
                        CreatedDate     = createdDate,
                        refference_hash = refferenceHash
                    };
                    Session["WithdrawalSearch"] = searchModel;
                }

                if (Session["WithdrawalSearch"] != null)
                {
                    WithdrawalSearchModel sessionSearchModel = (WithdrawalSearchModel)Session["WithdrawalSearch"];

                    //Get SQLCommand Parameters and Query Parameters
                    KeyValuePair <NpgsqlCommand, string> pair = getParameter(sessionSearchModel);
                    command = pair.Key;
                    query   = pair.Value;
                }

                //Get Withdrawals Datas
                List <MWithdrawal> withdrawalRequest = new List <MWithdrawal>();
                withdrawalRequest = WithdrawalUtilities.WithdrawalRequest(conn, command, query);

                #region Pagination
                Dictionary <string, int> pagerDictionary = new Dictionary <string, int>();
                string paginationString = "page";
                DocListPager.initialize(paginationString, 10);
                TotalRequest         = WithdrawalUtilities.GetWithdrawalCount(conn, command, query);
                pagerDictionary      = DocListPager.paginate(TotalRequest);
                withdrawalRequest    = WithdrawalUtilities.WithdrawalRequest(conn, command, query, pagerDictionary["offset"], pagerDictionary["limit"]);
                rowCount.InnerText   = $"{TotalRequest} Records Found";
                resultBody.InnerHtml = BuildHtmlTable(withdrawalRequest).ToString();
                #endregion

                //Get Document Statuses Selection
                OptionUtilities optionUtilities = new OptionUtilities();
                txtDocStatus.Items.Clear();
                txtDocStatus.Items.AddRange(optionUtilities.GetDocumentStatusOptions());

                //Return Values to their Fields
                ReturnFieldValues();
            }
        }
        private static KeyValuePair <NpgsqlCommand, string> getParameter(WithdrawalSearchModel sessionSearchModel)
        {
            ToastrUtilities toastrUtilities = new ToastrUtilities();

            string txtStatus      = sessionSearchModel?.Status ?? string.Empty;
            string txtClientId    = sessionSearchModel?.ClientModel?.Id ?? string.Empty;
            string txtClientEmail = sessionSearchModel?.ClientModel?.Email ?? string.Empty;
            string txtClientName  = sessionSearchModel?.ClientName ?? string.Empty;
            string txtWalletId    = sessionSearchModel?.WalletId ?? string.Empty;
            string txtDocumentId  = sessionSearchModel?.DocumentId ?? string.Empty;
            string txtCreatedDate = sessionSearchModel?.CreatedDate ?? string.Empty;
            string txtDocStatus   = sessionSearchModel?.DocumentStatus ?? string.Empty;
            string txtHash        = sessionSearchModel?.refference_hash ?? string.Empty;

            string query = string.Empty;

            NpgsqlCommand command = new NpgsqlCommand();

            if (!string.IsNullOrEmpty(txtStatus))
            {
                command.Parameters.AddWithValue("@Status", txtStatus);
                query += " AND w.credited_status = @Status";
            }

            if (!string.IsNullOrEmpty(txtHash))
            {
                command.Parameters.AddWithValue("@refference_hash", txtHash);
                query += " AND w.refference_hash = @refference_hash";
            }

            if (!string.IsNullOrEmpty(txtDocStatus))
            {
                if (int.TryParse(txtDocStatus, out int ds))
                {
                    command.Parameters.AddWithValue("@docstatus", ds);
                    query += " AND w.document_status = @docstatus";
                }
            }

            if (!string.IsNullOrEmpty(txtClientId))
            {
                if (int.TryParse(txtClientId, out int cid))
                {
                    command.Parameters.AddWithValue("@ClientId", cid);
                    query += " AND w.user_id = @ClientId";
                }
                else
                {
                    toastrUtilities.SessionPush("toast", new KeyValuePair <string, string>("error", "Invalid Client ID"));
                }
            }

            if (!string.IsNullOrEmpty(txtClientEmail))
            {
                command.Parameters.AddWithValue("@ClientEmail", txtClientEmail);
                query += " AND c.email = @ClientEmail";
            }

            if (!string.IsNullOrEmpty(txtClientName))
            {
                command.Parameters.AddWithValue("@ClientName", txtClientName);
                query += " AND w.client_name = @ClientName";
            }

            if (!string.IsNullOrEmpty(txtWalletId))
            {
                command.Parameters.AddWithValue("@WalletId", txtWalletId);
                query += " AND w.wallet_id = @WalletId";
            }

            if (!string.IsNullOrEmpty(txtDocumentId))
            {
                if (int.TryParse(txtDocumentId, out int did))
                {
                    command.Parameters.AddWithValue("@DocumentId", did);
                    query += " AND w.document_id = @DocumentId";
                }
                else
                {
                    toastrUtilities.SessionPush("toast", new KeyValuePair <string, string>("error", "Invalid Document ID"));
                }
            }

            if (!string.IsNullOrEmpty(txtCreatedDate))
            {
                if (DateTime.TryParse(txtCreatedDate, out DateTime cd))
                {
                    command.Parameters.AddWithValue("@CreatedDate", cd);
                    query += " AND w.created_date::date = @CreatedDate";
                }
                else
                {
                    toastrUtilities.SessionPush("toast", new KeyValuePair <string, string>("error", "Invalid Date"));
                }
            }


            KeyValuePair <NpgsqlCommand, string> pair = new KeyValuePair <NpgsqlCommand, string>(command, query);

            return(pair);
        }