/// <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); }
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()); }
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()); }