// GET: AccountDetails
        public async Task <ActionResult> Index()
        {
            if (!await AuthorizePage("MyAccount"))
            {
                return(RedirectToAction("NoAccess", "Home"));
            }

            LoginResponseDetails userLoginDetails = GetUserLoginDetails();

            try
            {
                if (userLoginDetails != null)
                {
                    OmniDataItemAPI injector    = new OmniDataItemAPI(_WebAPIURL);
                    RootAccounts    rootAccount = await injector.GetAccountsFromAPI(userLoginDetails.Token);

                    if (rootAccount != null && rootAccount.Status == 0)
                    {
                        List <CardAccountDetails> cardAccountDetails = new List <CardAccountDetails>();

                        foreach (var card in rootAccount.CardList)
                        {
                            CardAccountDetails cardEntity = new CardAccountDetails();
                            cardEntity.CardID      = card.CardID;
                            cardEntity.CardName    = card.CardName;
                            cardEntity.CardStatus  = card.CardStatus;
                            cardEntity.AccountList = new List <AccountDetails>();

                            foreach (var account in card.AccountList)
                            {
                                AccountDetails entity = new AccountDetails();
                                entity.AccountID          = account.AccountID;
                                entity.AccountAlias       = account.AccountAlias;
                                entity.AccountName        = account.AccountName;
                                entity.AccountStatus      = account.AccountStatus;
                                entity.AccountType        = account.AccountType;
                                entity.AccountTypeName    = Constants.GetAccountType(account.AccountType);
                                entity.AccountIDEncrypted = OmniDataManagement.Helpers.StringCipher.Encrypt(account.AccountID.ToString(), OmniDataManagement.Constants.PassPhrase);
                                cardEntity.AccountList.Add(entity);
                            }
                            cardAccountDetails.Add(cardEntity);
                        }
                        return(View(cardAccountDetails));
                    }
                }
            }
            catch (Exception ex)
            {
                await AddToErrorLog(userLoginDetails.Token, "MyAccount", ex.Message);

                return(View());
            }
            return(View());
        }
        public async Task <ActionResult> RequestAccountChangeStatus(string myParams)
        {
            var cleanParam = myParams.Replace("'", "\u0027");

            LoginResponseDetails userLoginDetails = GetUserLoginDetails();

            try
            {
                if (!await AuthorizePage("ModifyAccount"))
                {
                    return(RedirectToAction("NoAccess", "Home"));
                }

                if (userLoginDetails != null)
                {
                    OmniDataItemAPI injector = new OmniDataItemAPI(_WebAPIURL);

                    RequestAccountStatus requestObject = new RequestAccountStatus();
                    dynamic stuff = JsonConvert.DeserializeObject(cleanParam);
                    requestObject = JsonConvert.DeserializeObject <RequestAccountStatus>(stuff);

                    /*requestObject.AccountID = Convert.ToInt32(requestObjectAdd.AccountID);
                     * requestObject.NewStatus = requestObjectAdd.NewStatus;
                     * requestObject.Description = requestObjectAdd.Description;
                     * requestObject.EffectiveDate = Convert.ToDateTime(requestObjectAdd.EffectiveDate);*/

                    GenericResponse returnObject = await injector.ChangeAccountStatusFromAPI(userLoginDetails.Token, requestObject);

                    if (returnObject.Status == 0)
                    {
                        return(Json(new { Success = true, ErrorMessage = "" }));
                    }
                    else
                    {
                        return(Json(new { Success = false, ErrorMessage = returnObject.Error }));
                    }
                }
                //place holders for calling the Web API's to perform the functions.
                return(Json(new { Success = false, ErrorMessage = "User Token not valid or expired. Please login again." }));
            }
            catch (Exception ex)
            {
                await AddToErrorLog(userLoginDetails.Token, "MyAccount", ex.Message);

                return(Json(new { Success = false, ErrorMessage = ex.Message }));
            }
        }
        public async Task <bool> AuthorizePage(string pageName)
        {
            if (Session["UserLogin"] != null)
            {
                LoginResponseDetails userLoginDetails = (LoginResponseDetails)Session["UserLogin"];
                var permissionObject = userLoginDetails.Permissions.Where(p => p.POC == pageName).FirstOrDefault();
                if (permissionObject != null)
                {
                    return(permissionObject.Allowed);
                }
                else
                {
                    await AddToErrorLog(userLoginDetails.Token, pageName, "User not authorized to access this page.");

                    return(false);
                }
            }

            return(false);
        }
예제 #4
0
        // GET: Transactions
        public async Task <ActionResult> Index(string accountID = "")
        {
            if (!await AuthorizePage("MyTransactions"))
            {
                return(RedirectToAction("NoAccess", "Home"));
            }

            LoginResponseDetails userLoginDetails     = GetUserLoginDetails();
            RootTransactions     emptyRootTransaction = new RootTransactions();

            emptyRootTransaction.TransactionsList = new List <TransactionDetails>();

            try
            {
                if (userLoginDetails != null)
                {
                    await GetAccountDetails(userLoginDetails.Token);

                    if (AccountDetailsNameValue.Count > 0)
                    {
                        int defaultAccountID = AccountDetailsNameValue.FirstOrDefault().Key;
                        if (!string.IsNullOrWhiteSpace(accountID))
                        {
                            var accountIDDecryted = OmniDataManagement.Helpers.StringCipher.Decrypt(accountID, OmniDataManagement.Constants.PassPhrase);
                            defaultAccountID = Convert.ToInt32(accountIDDecryted);
                        }


                        OmniDataItemAPI injector = new OmniDataItemAPI(_WebAPIURL);

                        TransactionRequest tReq = new TransactionRequest();
                        tReq.AccountID = defaultAccountID;
                        tReq.DaysAgo   = Constants.TransactionDays;

                        RootTransactions rootTransaction = await injector.GetTransactionsFromAPI(tReq, userLoginDetails.Token);

                        if (rootTransaction != null && rootTransaction.Status == 0)
                        {
                            foreach (var trans in rootTransaction.TransactionsList)
                            {
                                trans.Description             = trans.Description;
                                trans.SettlementDate          = trans.SettlementDate;
                                trans.TransactionStatusString = Constants.GetTransactionStatus(trans.TransactionStatus);
                                trans.ChargeDate          = trans.ChargeDate;
                                trans.TransactionType     = trans.TransactionType;
                                trans.TransactionTypeName = Constants.GetTransactionType(trans.TransactionType);
                            }
                        }

                        return(View(rootTransaction));
                    }
                    return(View(emptyRootTransaction)); // Return a new page not found view
                }
            }
            catch (Exception ex)
            {
                await AddToErrorLog(userLoginDetails.Token, "MyTransactions", ex.Message);

                return(View(emptyRootTransaction));
            }
            return(View(emptyRootTransaction));
        }