public void CreatePerson(ShortProfile profile)
        {
            string sqlConn = ConfigurationManager.ConnectionStrings["DRCOG"].ToString();
            using (SqlConnection conn = new SqlConnection(sqlConn))
            {
                conn.Open();

                //Save Person information (UserInfo & Address)

                using (SqlCommand cmd = new SqlCommand("[dbo].[CreatePerson]", conn) { CommandType = CommandType.StoredProcedure })
                {
                    cmd.Parameters.AddWithValue("@PersonGUID", profile.PersonGUID);
                    cmd.Parameters.AddWithValue("@FirstName", profile.FirstName);
                    cmd.Parameters.AddWithValue("@LastName", profile.LastName);
                    if (!String.IsNullOrEmpty(profile.SponsorCode))
                    {
                        cmd.Parameters.AddWithValue("@SponsorCode", profile.SponsorCode);
                    }

                    SqlParameter param = new SqlParameter("@PersonID", SqlDbType.Int);
                    param.Direction = ParameterDirection.Output;
                    cmd.Parameters.Add(param);

                    try
                    {
                        int rowsAffected = cmd.ExecuteNonQuery();
                        if (rowsAffected < 1)
                        {
                            profile.Success = false;
                            throw new Exception("Save to Person table was not successful");
                        }
                        profile.Success = true;
                        profile.PersonID = (int)cmd.Parameters["@PersonID"].Value;
                    }
                    catch (Exception exc)
                    {
                        Logger.WarnException("Failed to CreatePerson", exc);
                    }

                    // TODO: connect sponsor
                }
            }
        }
 public void CreatePerson(ShortProfile profile)
 {
     throw new NotImplementedException();
 }
 private void SavePropertyValues(Trips4.Data.Models.TRIPS_UserEntities db, Trips4.Data.Models.aspnet_Users user, ShortProfile profile)
 {
     SavePropertyValue(db, user, "LastName", profile.LastName);
     SavePropertyValue(db, user, "FirstName", profile.FirstName);
     SavePropertyValue(db, user, "PrimaryContact", profile.Phone);
     SavePropertyValue(db, user, "Organization", profile.Organization);
     SavePropertyValue(db, user, "Title", profile.Title);
 }
 public void LinkUserWithSponsor(ShortProfile profile)
 {
     throw new NotImplementedException();
 }
        public void CreateUserAndPerson(ShortProfile profile)
        {
            // the recovery email is required.
            if (string.IsNullOrWhiteSpace(profile.RecoveryEmail))
            {
                throw new Exception("Recovery Email is required.");
            }

            // unique user name is required. Hint: use RecoveryEmail.
            if (string.IsNullOrWhiteSpace(profile.UserName))
            {
                throw new Exception("UserName is required.");
            }

            // GUID must be, ummm, unique
            if (profile.PersonGUID.Equals(Guid.Empty))
            {
                profile.PersonGUID = Guid.NewGuid();
            }

            // use providers to create a user
            var password = "******";
            MembershipCreateStatus membershipStatus;
            var muser = Membership.CreateUser(profile.UserName, password, profile.RecoveryEmail,
                "What is the answer to the ultimate question?", "42", true, profile.PersonGUID, out membershipStatus);
            if (membershipStatus != MembershipCreateStatus.Success)
            {
                throw new Exception("Membership Creation failed: " + membershipStatus.ToString());
            }

            if (!Membership.ValidateUser(profile.UserName, password))
            {
                Logger.Warn("Cannot validate user " + profile.UserName);
            }

            // save extra properties
            using (var db = new Trips4.Data.Models.TRIPS_UserEntities())
            {
                // get the aspnet_User that was just created
                var user = db.aspnet_Users.Single(u => u.UserName == profile.UserName);
                SavePropertyValues(db, user, profile);
                db.SaveChanges();
            }

            // give the new user roles
            //string[] roles = { "Contact Manager", "Contact", "Viewer", "SponsorRoleManager", "Administrator" };
            string[] roles = { "Contact", "Viewer" };
            Roles.AddUserToRoles(profile.UserName, roles);

            using (var tdb = new Trips4.Data.Models.TRIPSEntities())
            {
                var pid = new ObjectParameter("PersonID", 0);
                tdb.CreatePerson(profile.PersonGUID, pid, profile.FirstName, profile.LastName, profile.SponsorCode);
                profile.PersonID = (int)pid.Value;
            }
        }
Beispiel #6
0
 private void Initialize()
 {
     profile = new ShortProfile();
     SponsoredProjectVersionIds = new List<int>();
 }
        private bool GuestUser(LogOnModel model)
        {
            if (model.LoginType != "guest")
            {
                return false;
            }
            model.UserName = "******";
            model.Password = "******";

            // see if this is a valid user
            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                Logger.Debug("found guest");
                return true;
            }

            // if not, add the user and roles
            Logger.Debug("creating guest " + model.UserName);
            var profile = new ShortProfile()
            {
                FirstName = "Anonymous",
                LastName = "Guest",
                Password = model.Password,
                RecoveryEmail = "*****@*****.**",
                UserName = model.UserName
            };
            _userRepository.CreateUserAndPerson(profile);
            return true;
        }
 public void CreateUserAndPersonTest()
 {
     UserRepository target = new UserRepository();
     ShortProfile profile = new ShortProfile()
     {
         FirstName = "sword",
         LastName = "fish",
         UserName = "******",
         RecoveryEmail = "*****@*****.**",
         SponsorCode = "XXX",
         PersonGUID = Guid.Parse("180F39D4-5F7B-4F11-8DF3-CAF135FDCA6A")
     };
     target.CreateUserAndPerson(profile);
     Assert.IsTrue(profile.PersonID > 0);
 }