Esempio n. 1
0
        /// <summary>
        /// SignIn TopupInteface
        /// ChungNN 03/2009
        /// </summary>
        /// <returns>token</returns>
        private string SignIn()
        {
            string blnRetvalue = "";

            try
            {
                SignInResult sginObj = srvObj.GetToken(AppConfiguration.TopupInterfaceUserName, AppConfiguration.TopupInterfacePassword);
                if (sginObj.ErrorCode != 0)
                {
                    sginObj = srvObj.SignIn(AppConfiguration.TopupInterfaceUserName, AppConfiguration.TopupInterfacePassword);
                    if (sginObj.ErrorCode == 0)
                    {
                        blnRetvalue = sginObj.Token;
                    }
                }
                else
                {
                    blnRetvalue = sginObj.Token;
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            if (blnRetvalue.Length > 0)
            {
                ServiceSessionManager.GetSessionInstance().AddSession(blnRetvalue, "TopupInterfaceToken");
            }

            return(blnRetvalue);
        }
Esempio n. 2
0
        public void CreateSessionValidValue()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var serviceId = "service_id_test";

            sessionRepoMock
            .Setup(r => r.Insert(It.Is <ServiceSession>(s => s.RegisteredServiceId == serviceId)))
            .Verifiable();

            sessionRepoMock
            .Setup(r => r.GetAllInRegisteredService(It.Is <string>(s => s == serviceId), false))
            .Returns(Enumerable.Empty <ServiceSession>)
            .Verifiable();

            mapperMock
            .Setup(m => m.Map <ServiceSession, ServiceSessionDTO>(It.Is <ServiceSession>(s =>
                                                                                         s.RegisteredServiceId == serviceId)))
            .Returns(new ServiceSessionDTO {
                RegisteredServiceId = serviceId
            })
            .Verifiable();

            var result = sessionManager.CreateSession(serviceId);

            Assert.Equal(serviceId, result.RegisteredServiceId);
            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 3
0
        public void PingSessionSuccess()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var sessionId           = Guid.NewGuid();
            var registeredServiceId = "teste_service";

            var serviceSession = new ServiceSession()
            {
                Id                  = sessionId,
                LastPing            = null,
                RegisteredServiceId = registeredServiceId
            };

            sessionRepoMock
            .Setup(r => r.GetById(sessionId))
            .Returns(serviceSession)
            .Verifiable();

            sessionRepoMock
            .Setup(r => r.Update(It.Is <ServiceSession>(s =>
                                                        s.Id == sessionId &&
                                                        s.RegisteredServiceId == registeredServiceId &&
                                                        s.LastPing != null)))
            .Returns(true)
            .Verifiable();

            sessionManager.PingSession(sessionId);

            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 4
0
        public void GetSessionExistingId()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var manifest         = "test_manifest";
            var dateAndTime      = DateTime.UtcNow;
            var manifestSnapshot = new ManifestSnapshot
            {
                Manifest    = manifest,
                DateAndTime = dateAndTime
            };

            var sessionId = Guid.NewGuid();

            var serviceSession = new ServiceSession()
            {
                Id = sessionId,
                ManifestSnapshots = new List <ManifestSnapshot>
                {
                    manifestSnapshot
                }
            };

            sessionRepoMock
            .Setup(r => r.GetById(sessionId))
            .Returns(serviceSession)
            .Verifiable();

            mapperMock
            .Setup(m => m.Map <ServiceSession, ServiceSessionDTO>(It.Is <ServiceSession>(s => s == serviceSession)))
            .Returns(new ServiceSessionDTO
            {
                Id = sessionId.ToString()
            }).Verifiable();

            mapperMock
            .Setup(m => m.Map <ManifestSnapshot, ManifestSnapshotDTO>(It.Is <ManifestSnapshot>(s => s == manifestSnapshot)))
            .Returns(new ManifestSnapshotDTO
            {
                Manifest    = manifest,
                DateAndTime = dateAndTime
            }).Verifiable();


            var result = sessionManager.GetById(sessionId);

            Assert.Equal(serviceSession.Id.ToString(), result.Id);
            Assert.Equal(manifestSnapshot.Manifest, result.LastManifestSnapshot.Manifest);
            Assert.Equal(manifestSnapshot.DateAndTime, result.LastManifestSnapshot.DateAndTime);
            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 5
0
        /// <summary>
        /// POS download softpin in template
        /// ChungNN 03/2009
        /// </summary>
        /// <param name="Pos_ID"></param>
        /// <param name="Merchant_ID"></param>
        /// <param name="RequestID"></param>
        /// <param name="SoftpinStock"></param>
        /// <returns></returns>
        public BatchBuyObject PosDownloadSoftpinTemplate(int Pos_ID, int Merchant_ID, string RequestID, object[] SoftpinStock)
        {
            BatchBuyObject buyObj = new BatchBuyObject();
            string         strTopupInterfaceToken = ServiceSessionManager.GetSessionInstance().GetSession("TopupInterfaceToken");

            buyObj = srvObj.PosDownloadSoftpinTemplate(Pos_ID, Merchant_ID, RequestID, SoftpinStock, strTopupInterfaceToken);
            Thread.Sleep(AppConfiguration.TopupInterface_TimeOut);

            return(buyObj);
            //transObj.WriteLog("PosDownloadSingleSoftpin, Errorcode = " + buyObj.ErrorCode.ToString());
        }
Esempio n. 6
0
        /// <summary>
        /// POS download some softpins
        /// ChungNN 03/2009
        /// </summary>
        /// <param name="Pos_ID"></param>
        /// <param name="Merchant_ID"></param>
        /// <param name="RequestID"></param>
        /// <param name="CategoryName"></param>
        /// <param name="ServiceProviderName"></param>
        /// <param name="ProductValue"></param>
        /// <param name="StockQuantity"></param>
        /// <param name="DownloadQuantity"></param>
        /// <returns></returns>
        public BatchBuyObject PosDownloadSingleSoftpin(int Pos_ID, int Merchant_ID, string RequestID, string CategoryName, string ServiceProviderName, int ProductValue, int StockQuantity, int DownloadQuantity)
        {
            BatchBuyObject buyObj = new BatchBuyObject();
            string         strTopupInterfaceToken = ServiceSessionManager.GetSessionInstance().GetSession("TopupInterfaceToken");

            //string RequestID = Guid.NewGuid().ToString().Substring(0, 19);
            buyObj = srvObj.PosDownloadSingleSoftpin(Pos_ID, Merchant_ID, RequestID, CategoryName, ServiceProviderName, ProductValue, StockQuantity, DownloadQuantity, strTopupInterfaceToken);
            Thread.Sleep(AppConfiguration.TopupInterface_TimeOut);
            //buyObj = srvObj.PosDownloadSingleSoftpin(Pos_ID, Merchant_ID, RequestID, CategoryName, ServiceProviderName, ProductValue, StockQuantity, strTopupInterfaceToken);

            return(buyObj);
            //transObj.WriteLog("PosDownloadSingleSoftpin, Errorcode = " + buyObj.ErrorCode.ToString());
        }
Esempio n. 7
0
        public void AddManifestSnapshotValidValues()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var manifest = "teste_manifest";

            var sessionId           = Guid.NewGuid();
            var registeredServiceId = "teste_service";
            var session             = new ServiceSession
            {
                Id = sessionId,
                RegisteredServiceId = registeredServiceId
            };

            sessionRepoMock
            .Setup(r => r.GetById(It.Is <Guid>(g => g == sessionId)))
            .Returns(new ServiceSession()
            {
                Id = sessionId,
                RegisteredServiceId = registeredServiceId
            }).Verifiable();

            sessionRepoMock
            .Setup(r => r.Update(It.Is <ServiceSession>(s =>
                                                        s.ManifestSnapshots[0].Manifest == manifest &&
                                                        s.Id == sessionId &&
                                                        s.RegisteredServiceId == registeredServiceId)
                                 )).Returns(true)
            .Verifiable();

            mapperMock
            .Setup(m => m.Map <ManifestSnapshot, ManifestSnapshotDTO>(It.Is <ManifestSnapshot>(s =>
                                                                                               s.Manifest == manifest
                                                                                               ))).Returns(new ManifestSnapshotDTO
            {
                Manifest = manifest
            }).Verifiable();

            var result = sessionManager.AddManifestSnapshot(sessionId, manifest);

            Assert.Equal(manifest, result.Manifest);

            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 8
0
        public void AddManifestSnapshotNonExistent()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var sessionId = Guid.NewGuid();
            var manifest  = "test_manifest";

            sessionRepoMock
            .Setup(r => r.GetById(It.Is <Guid>(g => g == sessionId)))
            .Returns <ServiceSession>(null)
            .Verifiable();

            Assert.Throws <EntityNotFoundException>(() => sessionManager.AddManifestSnapshot(sessionId, manifest));

            sessionRepoMock.Verify();
        }
Esempio n. 9
0
        public void GetSessionNonExistingId()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var sessionId = Guid.NewGuid();

            sessionRepoMock
            .Setup(r => r.GetById(sessionId))
            .Returns <ServiceSession>(null)
            .Verifiable();

            var result = sessionManager.GetById(sessionId);

            Assert.Null(result);
            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 10
0
        public void PingSessionNonexistant()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var sessionId = Guid.NewGuid();

            sessionRepoMock
            .Setup(r => r.GetById(sessionId))
            .Returns <ServiceSession>(null)
            .Verifiable();

            var thrownException = Assert.Throws <EntityNotFoundException>(() =>
            {
                sessionManager.PingSession(sessionId);
            });

            sessionRepoMock.Verify();
        }
Esempio n. 11
0
        /// <summary>
        /// POS Logout gateway
        /// ChungNN 03/2009
        /// </summary>
        /// <param name="Pos_ID"></param>
        /// <param name="Request"></param>
        /// <returns></returns>
        public bool PosLogout(int Pos_ID, string Request)
        {
            bool blnRetValue = false;

            try
            {
                if (!ServiceSessionManager.GetSessionInstance().IsExistedSession(Pos_ID.ToString(), Request))
                {
                    ServiceSessionManager.GetSessionInstance().DelSession(Pos_ID.ToString());
                    blnRetValue = true;
                }
                else
                {
                    blnRetValue = false;
                }
            }
            catch //(Exception ex)
            {
                blnRetValue = false;
            }

            return(blnRetValue);
        }
Esempio n. 12
0
        public void PingSessionUpdateFailure()
        {
            var loggerMock      = new Mock <ILogger <ServiceSessionManager> >();
            var sessionRepoMock = new Mock <IServiceSessionRepository>(MockBehavior.Strict);
            var mapperMock      = new Mock <IMapper>(MockBehavior.Strict);
            var sessionManager  = new ServiceSessionManager(loggerMock.Object, sessionRepoMock.Object, mapperMock.Object);

            var sessionId           = Guid.NewGuid();
            var registeredServiceId = "teste_service";
            var serviceSession      = new ServiceSession()
            {
                Id                  = sessionId,
                LastPing            = null,
                RegisteredServiceId = registeredServiceId
            };

            sessionRepoMock
            .Setup(r => r.GetById(sessionId))
            .Returns(serviceSession)
            .Verifiable();

            sessionRepoMock
            .Setup(r => r.Update(serviceSession))
            .Returns(false)
            .Verifiable();

            var thrownException = Assert.Throws <RepositoryEntityOperationFailedException>(() =>
            {
                sessionManager.PingSession(sessionId);
            });

            Assert.IsType <ServiceSession>(thrownException.Entity);
            Assert.Equal(serviceSession, thrownException.Entity);

            sessionRepoMock.Verify();
            mapperMock.Verify();
        }
Esempio n. 13
0
        /// <summary>
        /// POS Logon gateway
        /// ChungNN 03/2009
        /// </summary>
        /// <param name="Pos_ID"></param>
        /// <param name="Request"></param>
        /// <param name="PosAdminPassword"></param>
        /// <returns></returns>
        public bool PosLogon(int Pos_ID, ref string Request, string PosAdminPassword)
        {
            bool   blnRetvalue            = false;
            string strTopupInterfaceToken = string.Empty;

            try
            {
                //get TopupInterface token
                if (ServiceSessionManager.GetSessionInstance().IsExistedSession("TopupInterfaceToken"))
                {
                    strTopupInterfaceToken = ServiceSessionManager.GetSessionInstance().GetSession("TopupInterfaceToken");
                }
                else
                {
                    //new Thread(new ThreadStart(SignIn)).Start();

                    strTopupInterfaceToken = SignIn();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            //Logon as POS
            int nCounter = 2;

            while (nCounter > 0)
            {
                try
                {
                    ErrorResult ErrObj = srvObj.PosLogon(Pos_ID, PosAdminPassword, strTopupInterfaceToken);
                    if (ErrObj.ErrorCode == 0)
                    {
                        //Save POS_ID session to server
                        if (!ServiceSessionManager.GetSessionInstance().IsExistedSession(Pos_ID.ToString()))
                        {
                            ServiceSessionManager.GetSessionInstance().AddSession(Request, Pos_ID.ToString());
                        }
                        else
                        {
                            Request = ServiceSessionManager.GetSessionInstance().GetSession(Pos_ID.ToString());
                        }

                        nCounter    = 0;
                        blnRetvalue = true;
                        break;
                    }
                    //token is not existed on TopupInerface ->invok SignIn() again
                    else //if (ErrObj.ErrorCode == -1)
                    {
                        strTopupInterfaceToken = SignIn();
                        nCounter--;
                    }
                }
                catch (Exception ex)
                {
                    throw (ex);
                }
            }
            return(blnRetvalue);
        }