public User UpdateAddress(User user)
        {
            foreach (var addr in user.Addresses)
            {
                addressRepo.UpdateAddress(addr);
            }

            return user;
        }
        public void can_create_user_record()
        {
            var userData = new UserDataRepository();
            var repo = new UserAddressRepo(userData);

            var user = new User {Email = "*****@*****.**", FirstName = "Test", LastName = "McTest"};

            var createdUser = repo.CreateUser(user);
            Assert.IsNotNull(createdUser);
            Assert.IsNotNull(createdUser.Id);
        }
        public User DeleteAddress(User user)
        {
            var addresses = user.Addresses;
            var toDelete = addresses.Where(a => a.ToDelete = true);

            foreach (var a in toDelete)
            {
                addrDataRepo.Delete(addrDataRepo.SelectById(a.Id));
            }

            return user;
        }
 // opposite...take the BLL obj and set it to a DAL obj for work in that level...
 public static UserData ToData(User user)
 {
     return new UserData
     {
         Addresses = Address.ToData(user.Addresses),
         Tags = Tag.ToData(user.Tags),
         Email = user.Email,
         FirstName = user.FirstName,
         Id = user.Id,
         LastName = user.LastName,
         Notes = user.Notes,
         Favorite = user.Favorite
     };
 }
 public void DeleteUser(User user)
 {
     userRepo.DeleteUser(user);
 }
 public User UpdateUser(User obj)
 {
     return User.SetEntity(userDataRepo.Update(User.ToData(obj)));
 }
 public User CreateUser(User user)
 {
     return userRepo.CreateUser(user);
 }
 public void MarkAsFavorite(User obj)
 {
     userDataRepo.MarkAsFavorite(User.ToData(obj));
 }
 public void RemoveAsFavorite(User obj)
 {
     userDataRepo.RemoveAsFavorite(User.ToData(obj));
 }
 public User CreateUser(User obj)
 {
     return User.SetEntity(userDataRepo.Add(User.ToData(obj)));
 }
 public void DeleteUser(User obj)
 {
     userDataRepo.Delete(User.ToData(obj));
 }
 public User UpdateUser(User user)
 {
     return userRepo.UpdateUser(user);
 }
 public void create_user_for_test()
 {
     var userData = new UserDataRepository();
     _userRepo = new UserAddressRepo(userData);
     _user = _userRepo.CreateUser(new User { Email = "*****@*****.**", FirstName = "Test", LastName = "McTest" });
 }
 public void DeleteAddress(User user)
 {
     addressRepo.DeleteAddress(user);
 }
 public User CreateAddress(User user, Address address)
 {
     var createdAddr = addressRepo.CreateAddress(address);
     user.Addresses.Add(createdAddr);
     return user;
 }
 // #region Web Methods
 //[WebMethod]
 public static User CreateUser(User obj)
 {
     return svcAdddress.CreateUser(obj);
 }
 //[WebMethod]
 public static User UpdateUser(User obj)
 {
     return svcAdddress.UpdateUser(obj);
 }
 //[WebMethod]
 public static void DeleteUser(User obj)
 {
     svcAdddress.DeleteUser(obj);
 }
 private static void FillInnerGrid(User user, GridView grdInnerGridView)
 {
     grdInnerGridView.DataSource = user.Addresses;
     grdInnerGridView.DataBind();
 }
        private void AddNewUser()
        {
            var user = new User
            {
                FirstName = txtFName.Text,
                LastName = txtLName.Text,
                Email = txtEmail.Text,
                Addresses = new List<Address>()
            };

            // create user
            user = svcAdddress.CreateUser(user);

            // add tags
            user.Tags = SetTags(txtUserTags.Text, user.Id);

            // add addresses


            // since i'm lacking proper validation for this sample, 
            // only create where there is a street/city/state/zip (thus making them required)
            if (txtStreet1.Text != String.Empty && txtCity.Text != String.Empty & ddlState.SelectedValue != "null")
            {
                // add the address
                var addr = new Address
                {
                    Street1 = txtStreet1.Text,
                    Street2 = txtStreet2.Text,
                    City = txtCity.Text,
                    State = ddlState.SelectedValue,
                    Zip = txtZip.Text,
                    Type = ddlType.SelectedValue,
                    UserId = user.Id
                };

                user.Addresses.Add(addr);

                // add the address
                addr = svcAdddress.CreateAddress(addr);

                // set any address tags
                addr.Tags = SetTags(txtTags.Text, addr.Id);
                
            }

            if (txtStreet1_2.Text != String.Empty && txtCity_2.Text != String.Empty & ddlState_2.SelectedValue != "null")
            {
                // add the address
                var addr = new Address
                {
                    Street1 = txtStreet1_2.Text,
                    Street2 = txtStreet2_2.Text,
                    City = txtCity_2.Text,
                    State = ddlState_2.SelectedValue,
                    Zip = txtZip_2.Text,
                    Type = ddlType_2.SelectedValue,
                    UserId = user.Id
                };

                user.Addresses.Add(addr);



                addr.Tags = SetTags(txtTags_2.Text, addr.Id);
            }


            // any addresses here?
            //foreach(var control in FindControl("0"))
            //ucHolder.Controls)
            //{
            // since i'm lacking proper validation for this sample, 
            // only create where there is a street/city/state/zip (thus making them required)
            //     Control myControl1 = FindControl("TextBox2"); 
            // }


            //var textBox = ((TextBox)((UserControl)ucHolder.FindControl("ASP.usercontrols_ucaddress_ascx")).FindControl("txtStreet1"));
            //var streetVal = textBox.Text;

            svcAdddress.UpdateUser(user);

        }