Beispiel #1
0
        public async Task <IList <UserLoginInfo> > GetLoginsAsync(User user)
        {
            ThrowIfDisposed();
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var logins = await _userLoginRepository.GetByUserId(user.Id);

            return(logins.Select(l => new UserLoginInfo(l.LoginProvider, l.ProviderKey)).ToList());
        }
Beispiel #2
0
        public SchedulingCustomerEditModel RegisterCustomer(String guid, SchedulingCustomerEditModel customerEditModel)
        {
            if (!string.IsNullOrEmpty(customerEditModel.HomeNumber))// To eliminate masking
            {
                customerEditModel.HomeNumber = customerEditModel.HomeNumber.Replace("-", "").Replace("(", "").Replace(")", "").Replace(" ", "");
            }

            if (!string.IsNullOrEmpty(customerEditModel.PhoneCell))// To eliminate masking
            {
                customerEditModel.PhoneCell = customerEditModel.PhoneCell.Replace("-", "").Replace("(", "").Replace(")", "").Replace(" ", "");
            }

            var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(guid);

            customerEditModel.RequestValidationModel = onlineRequestValidationModel;
            if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid)
            {
                return(customerEditModel);
            }

            if (!customerEditModel.DateofBirth.HasValue)
            {
                throw new Exception("Please enter Date of Birth!");
            }

            if (customerEditModel.DateofBirth.Value.GetAge() < _settings.MinimumAgeForScreening)
            {
                throw new Exception(string.Format("Customers below {0} years of age are not allowed for screening.In case of any queries, please call us at {1}", _settings.MinimumAgeForScreening, _settings.PhoneTollFree));
            }

            var customer  = _customerService.SaveCustomer(customerEditModel, onlineRequestValidationModel.TempCart.IsExistingCustomer);
            var userLogin = _userLoginRepository.GetByUserId(customer.Id);

            _passwordChangeLogService.Update(userLogin.Id, new SecureHash(userLogin.Password, userLogin.Salt), customer.CustomerId);
            onlineRequestValidationModel.TempCart.CustomerId      = customer.CustomerId;
            onlineRequestValidationModel.TempCart.MarketingSource = customerEditModel.MarketingSource;

            var tempCart = onlineRequestValidationModel.TempCart;

            _tempcartService.SaveTempCart(tempCart);


            var doesEventCustomerAlreadyExists = tempCart.CustomerId.HasValue ? _eventSchedulerService.DoesEventCustomerAlreadyExists(tempCart.CustomerId.Value, tempCart.EventId.Value) : null;

            if (doesEventCustomerAlreadyExists != null && doesEventCustomerAlreadyExists.FirstValue)
            {
                throw new Exception(doesEventCustomerAlreadyExists.SecondValue);
            }

            customer = tempCart.CustomerId.HasValue ? _customerRepository.GetCustomer(tempCart.CustomerId.Value) : null;
            if (tempCart.ProspectCustomerId.HasValue)
            {
                var prospectCustomer = _prospectCustomerRepository.GetById(tempCart.ProspectCustomerId.Value);
                prospectCustomer.CustomerId                 = customer.CustomerId;
                prospectCustomer.Tag                        = ProspectCustomerTag.OnlineSignup;
                prospectCustomer.IsConverted                = false;
                prospectCustomer.Status                     = (long)ProspectCustomerConversionStatus.NotConverted;
                prospectCustomer.ConvertedOnDate            = DateTime.Now;
                prospectCustomer.Address.StreetAddressLine1 = customer.Address.StreetAddressLine1;
                prospectCustomer.Address.StreetAddressLine2 = customer.Address.StreetAddressLine2;
                prospectCustomer.Address.City               = customer.Address.City;
                prospectCustomer.Address.State              = _stateRepository.GetState(customer.Address.StateId).Name;
                prospectCustomer.Address.ZipCode.Zip        = customer.Address.ZipCode.Zip;
                prospectCustomer.MarketingSource            = customer.MarketingSource;
                prospectCustomer.CallBackPhoneNumber        = customer.HomePhoneNumber;
                prospectCustomer.Email                      = customer.Email;
                prospectCustomer.TagUpdateDate              = DateTime.Now;
                _prospectCustomerRepository.Save(prospectCustomer);
            }
            else
            {
                var prospectCustomer = ((IProspectCustomerRepository)_prospectCustomerRepository).GetProspectCustomerByCustomerId(customer.CustomerId);
                if (prospectCustomer != null)
                {
                    prospectCustomer.CustomerId                 = customer.CustomerId;
                    prospectCustomer.Tag                        = ProspectCustomerTag.OnlineSignup;
                    prospectCustomer.IsConverted                = false;
                    prospectCustomer.Status                     = (long)ProspectCustomerConversionStatus.NotConverted;
                    prospectCustomer.ConvertedOnDate            = DateTime.Now;
                    prospectCustomer.Address.StreetAddressLine1 = customer.Address.StreetAddressLine1;
                    prospectCustomer.Address.StreetAddressLine2 = customer.Address.StreetAddressLine2;
                    prospectCustomer.Address.City               = customer.Address.City;
                    prospectCustomer.Address.State              = _stateRepository.GetState(customer.Address.StateId).Name;
                    prospectCustomer.Address.ZipCode.Zip        = customer.Address.ZipCode.Zip;
                    prospectCustomer.MarketingSource            = customer.MarketingSource;
                    prospectCustomer.CallBackPhoneNumber        = customer.HomePhoneNumber;
                    prospectCustomer.Email                      = customer.Email;
                    prospectCustomer.TagUpdateDate              = DateTime.Now;
                    _prospectCustomerRepository.Save(prospectCustomer);
                }
            }
            return(customerEditModel);
        }