public bool SaveAccountDetails(UserDetail ud) {
     try {
         this._sessionManager.OpenSession().SaveOrUpdate(ud);
         this._sessionManager.OpenSession().Flush();
     } catch (Exception ex) {
         LogManager.GetLogger(GetType()).Error(ex);
         return false;
     }
     return true;
 }
        public UserDetail GetAccount(long accountID) {

            UserDetail account = new UserDetail();

            IQuery query = this._sessionManager.OpenSession().CreateQuery("from UserDetail where userID = :id");
            query.SetInt64("id", accountID);
            IList aList = query.List();

            foreach (UserDetail ud in aList) {
                
                account = ud;
            }

            return account;
        }
        protected void Page_Load(object sender, EventArgs e) {

            this.lnkSave.Click += new EventHandler(lnkSave_Click);

            if (!IsPostBack) {

                try {
                    AccountID = Int32.Parse(Request.Params[ACCOUNT_ID]);
                } catch {
                }

                CatalogueViewModule controller = Module as CatalogueViewModule;
                addressEditor.SetAvailableCountries(controller.AccountService.GetCountries());

                userDetails = controller.AccountService.GetAccount(AccountID);
                AddressHelper.CopyAddress(userDetails.Address, addressEditor);

                u = (Cuyahoga.Core.Domain.User)base.CoreRepository.GetObjectById(typeof(Cuyahoga.Core.Domain.User), AccountID);
                userDetailsEditor.CultureCode = controller.Section.Node.Culture;
                userDetailsEditor.EmailAddress = u.Email;
                userDetailsEditor.FirstName = u.FirstName;
                userDetailsEditor.LastName = u.LastName;
            }
        }
 public void BindUserDetails(IUserDetails user) {
     UserDetails = user;
     UserDetailsAlt = user as UserDetail;
 }
		public void BindUserDetails(User user) {
			UserDetails = new UserDecorator(user);
            UserDetailsAlt = null;
		}
        protected virtual void PopulateOrderDetailsFromForm(BasketDecorator basketOrder) {

            if (basketOrder.OrderHeader == null) {
                new BasketDecorator(basketOrder).ConvertToOrder(EModule.CommerceDao, EModule.CommonDao);
                basketOrder.OrderHeader.InvoiceAddress = EModule.CommerceDao.CreateAddress();
                basketOrder.OrderHeader.DeliveryAddress = EModule.CommerceDao.CreateAddress();
                basketOrder.OrderHeader.PaymentMethod = (IsAccountPayment) ? PaymentMethodType.PurchaseOrderInvoice : PaymentMethodType.CreditCard;
            }

            if (basketOrder.UserDetails == null) {
                basketOrder.UserDetails = WebStoreContext.Current.CurrentUser;
            }

            if (ctlInvoiceAddress != null) {
                AddressHelper.CopyAddress(ctlInvoiceAddress, basketOrder.OrderHeader.InvoiceAddress);
            }

            if (ctlDeliveryAddress != null && ctlDeliveryAddress.Enabled) {
                if (basketOrder.OrderHeader.DeliveryAddress == null) {
                    basketOrder.OrderHeader.DeliveryAddress = EModule.CommerceDao.CreateAddress();
                }
                AddressHelper.CopyAddress(ctlDeliveryAddress, basketOrder.OrderHeader.DeliveryAddress);
            } else {
                basketOrder.OrderHeader.DeliveryAddress = null;
            }

            if (ctlUser != null && basketOrder.AltUserDetails != null) {
                UserDetailsHelper.CopyUserDetails(ctlUser, basketOrder.AltUserDetails);
            }

            //Might need to set other things from the entered details,
            //or force a final price/availability for all items
            UpdateExtraDetails();

            //See if any of these details have changed anything
            EModule.CommerceService.RefreshBasket(WebStoreContext.Current);

            if (ctlUser != null && basketOrder.AltUserDetails == null) {
                UserDetail userDetail = new UserDetail();
                userDetail.AccountType = (IsAccountPayment) ? AccountType.StandardAccount : AccountType.CreditCard;
                basketOrder.AltUserDetails = userDetail;
                UserDetailsHelper.CopyUserDetails(ctlUser, basketOrder.AltUserDetails);
                EModule.CommonDao.SaveOrUpdateObject(userDetail);
                EModule.CommerceService.RefreshBasket(WebStoreContext.Current);
            }

            //Show saved details
            ctlOrderViewComposite.BindOrder(basketOrder);
        }
        private void CopyUserDetailsInfo(IUserDetails source, UserDetail userDetails) {

            UserDetailsHelper.CopyUserDetails(source, userDetails);

            userDetails.AccountType = AccountType.StandardAccount;
            userDetails.AccountNumber = txtAccountNumber.Text;
            userDetails.CompanyName = txtCompanyName.Text;
        }
        protected virtual void SubmitAccountOrder(BasketDecorator basketOrder) {

            //probably redundant, but must ensure it is true
            IsAccountPayment = true;

            if (basketOrder.OrderHeader == null) {
                new BasketDecorator(basketOrder).ConvertToOrder(EModule.CommerceDao, EModule.CommonDao);
                basketOrder.OrderHeader.PaymentMethod = PaymentMethodType.PurchaseOrderInvoice;
            }

            if (ctlUserAcct != null && basketOrder.AltUserDetails != null) {
                UserDetail userDetails = basketOrder.AltUserDetails as UserDetail;
                CopyUserDetailsInfo(ctlUserAcct, userDetails);
            }

            //See if any of these details have changed anything
            EModule.CommerceService.RefreshBasket(WebStoreContext.Current);

            if (ctlUserAcct != null && basketOrder.AltUserDetails == null) {

                UserDetail userDetail = new UserDetail();
                basketOrder.AltUserDetails = userDetail;
                CopyUserDetailsInfo(ctlUserAcct, userDetail);

                EModule.CommonDao.SaveOrUpdateObject(userDetail);
                EModule.CommerceService.RefreshBasket(WebStoreContext.Current);
            }


            if (EModule.CommerceService.SubmitCurrentOrder(WebStoreContext.Current, this)) {
                WebStoreContext.Current.NotifyBasketChanged(null);
            }
        }
        public bool Save() {

            CatalogueViewModule controller = Module as CatalogueViewModule;
            try {
                AccountID = Int32.Parse(Request.Params[ACCOUNT_ID]);
            } catch {
            }

            userDetails = controller.AccountService.GetAccount(AccountID);
            AddressHelper.CopyAddress(addressEditor, userDetails.Address);

            u = (Cuyahoga.Core.Domain.User)base.CoreRepository.GetObjectById(typeof(Cuyahoga.Core.Domain.User), AccountID);
            u.Email = userDetailsEditor.EmailAddress;
            u.FirstName = userDetailsEditor.FirstName;
            u.LastName = userDetailsEditor.LastName;

            if (controller.AccountService.SaveAccountDetails(userDetails)) {
                try {
                    base.CoreRepository.UpdateObject(u);
                    return true;
                } catch (Exception e) {
                    LogManager.GetLogger(GetType()).Error(e);
                }
            }
            return false;
        }
        //should put this in account service.
        private void PerformRegistration() {
            try {
                UserDetail detail = new UserDetail();
                UserDetailsHelper.CopyUserDetails(ctlUser, detail);
                Address Address = new Address();
                AddressHelper.CopyAddress(ctlUserAddress, Address);
                EModule.CommonDao.SaveObject(Address);
                detail.Address = Address;
                EModule.CommonDao.SaveObject(detail);

               
                User user = new User();
                user.Email = ctlUser.EmailAddress;
                user.UserName = ctlUser.EmailAddress;
                user.FirstName = ctlUser.FirstName;
                user.LastName = ctlUser.LastName;
                user.Password = User.HashPassword(ctlUser.Password);
                user.InsertTimestamp = DateTime.Now;
                user.IsActive = true;
                EModule.CommonDao.SaveObject(user);
                
                ctlUser.Visible = ctlUserAddress.Visible = false;

            } catch (Exception ex) {
                LogManager.GetLogger(GetType()).Debug(ex);
                DisplayErrorMessage();
            }
        }
        public IUserDetails CreateUserDetails(User user) {

            UserDetail userDetails = new UserDetail();
            userDetails.UserID = user.Id;

            return userDetails;
        }