예제 #1
0
        public TokenTownBusResponse GetAccessTokenTownBus(TokenRequestTownBus requestParams)
        {
            TokenTownBusResponse tokenTownBus = new TokenTownBusResponse();
            var  townBusEntity = new TownBusEntities();
            bool isExistToken  = false;
            WalletTransactionUow WalletTransactionUnitOfWork = null;

            try
            {
                var strCredencial = SimpleAesUtil.DecryptAES(requestParams.Credential, EwalletConstant.keyAES).Split(';');
                var isExists      = new WalletUserTownbusQueryBuilder(new TownBusEntities()).GetUserByLoginIdnPassword(strCredencial.First(), strCredencial.Last()).FirstOrDefault();
                if (isExists != null)
                {
                    var branch = new WalletBranchTownBusQueryBuilder(new TownBusEntities()).HasBranchId(isExists.Branch_ID).FirstOrDefault();
                    if (branch != null)
                    {
                        tokenTownBus.CompanyID = branch.Company_ID;
                    }
                    tokenTownBus.AccessToken = SimpleAesUtil.EncryptAES(isExists.User_ID + isExists.Password + DateTime.Now.ToString("yyyy-MM-dd hh:00:00"), EwalletConstant.keyAES);
                    tokenTownBus.UserID      = isExists.User_ID;
                    //save notificateToken to config
                    if (string.IsNullOrWhiteSpace(requestParams.NotificationToken))
                    {
                        isExistToken = new TownBusNotificationQueryBuilder(townBusEntity).HasNotificationUniqueId(requestParams.CarPlate, tokenTownBus.CompanyID, requestParams.NotificationUniqueId.Trim());
                    }
                    else
                    {
                        isExistToken = new TownBusNotificationQueryBuilder(townBusEntity).HasNotifcationToken(requestParams.CarPlate, tokenTownBus.CompanyID, requestParams.NotificationToken.Trim());
                    }

                    if (!isExistToken)
                    {
                        // var busType = new TownBusTypeQueryBuilder(townBusEntity).GetBusIdByCompanyIdnBusNo(tokenTownBus.CompanyID, requestParams.CarPlate).FirstOrDefault();
                        using (WalletTransactionUnitOfWork = new WalletTransactionUow(townBusEntity))
                        {
                            TownBusNotification townBusNotification = new TownBusNotification();
                            townBusNotification.CarPlate  = requestParams.CarPlate;
                            townBusNotification.CompanyID = tokenTownBus.CompanyID;
                            //townBusNotification.BusID = busType.Bus_ID;
                            townBusNotification.NotificationToken    = requestParams.NotificationToken.Trim();
                            townBusNotification.NotificationUniqueId = requestParams.NotificationUniqueId.Trim();
                            WalletTransactionUnitOfWork.BeginTransaction(System.Data.IsolationLevel.RepeatableRead)
                            .DoInsert(townBusNotification)
                            .EndTransaction();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var logWallet = new LogWallet();
                logWallet.Log(MethodBase.GetCurrentMethod(), requestParams.Credential, ex, "");
                return(tokenTownBus);
            }
            return(tokenTownBus);
        }
예제 #2
0
        public IHttpActionResult TokenTownBus(string sign, TokenRequestTownBus requests)
        {
            var inputParams = new { sign = sign, request = requests };
            var response    = new TokenTownBusResponse();

            try
            {
                if (!VerifyAPICaller(sign, response))
                {
                    return(Ok(response));
                }
                response = _walletApiLogic.GetAccessTokenTownBus(requests);
                VerifyResponse(MethodBase.GetCurrentMethod(), response, inputParams);
            }
            catch (Exception ex)
            {
                Fail(MethodBase.GetCurrentMethod(), response, ex, inputParams, "Error : Failed to  TokenTownBus ");
            }

            return(Ok(response));
        }