コード例 #1
0
        /// <summary>
        /// Retrieves the user with the identifier in the context from the data store.
        /// </summary>
        /// <returns>
        /// * The user if found.
        /// * Else returns null.
        /// </returns>
        public User RetrieveUser()
        {
            User result = null;

            Guid globalUserId = (Guid)Context[Key.GlobalUserId];

            SqlProcedure("GetUserByGlobalId",
                         new Dictionary <string, object>
            {
                { "@globalId", globalUserId },
                { "@includePartnerUserIDs", true }              // We'll incorporate this fully when working on the Logic layer and / or Data Models.
            },
                         (sqlDataReader) =>
            {
                if (sqlDataReader.Read() == true)
                {
                    // Get the ID returned from the database.
                    result = new User
                    {
                        Id       = sqlDataReader.GetInt32(sqlDataReader.GetOrdinal("Id")),
                        GlobalId = globalUserId
                    };
                }

                if (sqlDataReader.NextResult() == true)
                {
                    while (sqlDataReader.Read() == true)
                    {
                        PartnerUserInfo partnerUserInfo = new PartnerUserInfo
                        {
                            // NOTE: PartnerId is off by 1 from CardBrand. We're in the midst of fixing this.
                            PartnerId         = (Partner)(sqlDataReader.GetInt32(sqlDataReader.GetOrdinal("Partner")) - 1),
                            PartnerUserId     = sqlDataReader.GetString(sqlDataReader.GetOrdinal("PartnerUserID")),
                            AssignedByPartner = true
                        };
                        result.PartnerUserInfoList.Add(partnerUserInfo);
                    }
                }
            });

            if (result != null)
            {
                Context.Log.Verbose("GetUserByGlobalId retrieved the specified User.");
            }
            else
            {
                Context.Log.Verbose("GetUserByGlobalId could not find the specified User.");
            }

            return(result);
        }
コード例 #2
0
        public void AddOrUpdateUserTest()
        {
            // Create a user object.
            Guid globalUserID = Guid.NewGuid();
            User user         = new User
            {
                GlobalId = globalUserID
            };

            PartnerUserInfo visaPartnerUserInfo = new PartnerUserInfo
            {
                AssignedByPartner = true,
                PartnerId         = Partner.Visa,
                PartnerUserId     = "VisaPartnerUserID"
            };

            user.PartnerUserInfoList.Add(visaPartnerUserInfo);

            PartnerUserInfo masterCardPartnerUserInfo = new PartnerUserInfo
            {
                AssignedByPartner = true,
                PartnerId         = Partner.MasterCard,
                PartnerUserId     = "MasterCardPartnerUserID"
            };

            user.PartnerUserInfoList.Add(masterCardPartnerUserInfo);

            // Place objects in the Context.
            Context           = new CommerceContext(String.Empty);
            Context[Key.User] = user;

            // Add the user.
            Assert.AreEqual(ResultCode.Created, AddOrUpdateUser());

            // Update the user.
            user.PartnerUserInfoList.RemoveAt(1);
            Assert.AreEqual(ResultCode.Success, AddOrUpdateUser());
        }
コード例 #3
0
        public void RetrieveUserTest()
        {
            // Create a user object.
            Guid globalUserID = Guid.NewGuid();
            User user         = new User
            {
                GlobalId = globalUserID
            };

            PartnerUserInfo visaPartnerUserInfo = new PartnerUserInfo
            {
                AssignedByPartner = true,
                PartnerId         = Partner.Visa,
                PartnerUserId     = "VisaPartnerUserID"
            };

            user.PartnerUserInfoList.Add(visaPartnerUserInfo);

            PartnerUserInfo masterCardPartnerUserInfo = new PartnerUserInfo
            {
                AssignedByPartner = true,
                PartnerId         = Partner.MasterCard,
                PartnerUserId     = "MasterCardPartnerUserID"
            };

            user.PartnerUserInfoList.Add(masterCardPartnerUserInfo);

            // Place objects in the Context.
            Context           = new CommerceContext(String.Empty);
            Context[Key.User] = user;

            // Add the user.
            Assert.AreEqual(ResultCode.Created, AddOrUpdateUser());

            // Retrieve the user object.
            Context[Key.User]         = null;
            Context[Key.GlobalUserId] = user.GlobalId;
            User retrievedUser = RetrieveUser();

            // Compare top-level user info.
            Assert.IsNotNull(retrievedUser);
            Assert.AreEqual(user.Id, retrievedUser.Id);
            Assert.AreEqual(user.GlobalId, retrievedUser.GlobalId);

            // Compare partner user objects.
            Assert.IsNotNull(retrievedUser.PartnerUserInfoList);
            Assert.AreEqual(2, retrievedUser.PartnerUserInfoList.Count);
            PartnerUserInfo retrievedVisaPartnerUserInfo = retrievedUser.PartnerUserInfoList.First();

            Assert.AreEqual(visaPartnerUserInfo.AssignedByPartner, retrievedVisaPartnerUserInfo.AssignedByPartner);
            Assert.AreEqual(visaPartnerUserInfo.PartnerId, retrievedVisaPartnerUserInfo.PartnerId);
            Assert.AreEqual(visaPartnerUserInfo.PartnerUserId, retrievedVisaPartnerUserInfo.PartnerUserId);
            PartnerUserInfo retrievedMasterCardPartnerUserInfo = retrievedUser.PartnerUserInfoList.ElementAt(1);

            Assert.AreEqual(masterCardPartnerUserInfo.AssignedByPartner, retrievedMasterCardPartnerUserInfo.AssignedByPartner);
            Assert.AreEqual(masterCardPartnerUserInfo.PartnerId, retrievedMasterCardPartnerUserInfo.PartnerId);
            Assert.AreEqual(masterCardPartnerUserInfo.PartnerUserId, retrievedMasterCardPartnerUserInfo.PartnerUserId);

            // Try to get non-existent user.
            Context[Key.User]         = null;
            Context[Key.GlobalUserId] = Guid.NewGuid();
            Assert.IsNull(RetrieveUser());
        }