private FluentValidation.Results.ValidationResult ValidateRegistration(NewRegistrationViewModel candidateform)
        {
            var validator = new NewRegistrationValidator();
            var result    = validator.Validate(candidateform);

            return(result);
        }
 public AdminController(IRepository <SCMProfitCore.Model.CustomerModule.Customer> customerRepo, IRepository <CustomerLoginDetails> customerLoginDetailsRepo, IRepository <CustomerSubscriptionDetails> customerSubscriptionRepo, NewRegistrationViewModel newRegistrasionViewModel)
 {
     _customerRepository             = customerRepo;
     _customerLoginDetailsRepository = customerLoginDetailsRepo;
     _customerSubscriptionRepository = customerSubscriptionRepo;
     _newRegistrasionViewModel       = newRegistrasionViewModel;
     _customerService = new CustomerService(customerRepo);
 }
 public CustomerController(IRepository <SCMProfitCore.Model.CustomerModule.Customer> _custRepository, IRepository <CustomerLoginDetails> _loginRepository, IRepository <CustomerSubscriptionDetails> _subscriptionRepository, IRepository <Partner> _partnerRepo, IRepository <Module> _moduleRepo, IRepository <Service> _serviceRepo)
 {
     _newRegistrasionViewModel       = new NewRegistrationViewModel();
     _customerRepository             = _custRepository;
     _customerLoginDetailsRepository = _loginRepository;
     _customerSubscriptionRepository = _subscriptionRepository;
     _moduleRepository   = _moduleRepo;
     _serviceRepository  = _serviceRepo;
     _partnerRepository  = _partnerRepo;
     _listOfModules      = new List <Module>();
     _listOfServices     = new List <Service>();
     _listOfSubscription = new List <CustomerSubscriptionDetails>();
 }
 private void MapCandidateAddress(Address address, NewRegistrationViewModel newRegistrationModel)
 {
     address.address_line_1 = newRegistrationModel.candidate_address_line_1;
     address.address_line_2 = newRegistrationModel.candidate_address_line_2;
     address.taluka_id      = newRegistrationModel.candidate_taluka_id;
     if (newRegistrationModel.candidate_state_id != null)
     {
         address.state_id = (int)newRegistrationModel.candidate_state_id;
     }
     else
     {
         address.state_id = null;
     }
     address.district_id = newRegistrationModel.candidate_district_id;
     address.zip_code    = newRegistrationModel.candidate_zip_code;
 }
Example #5
0
        public static NewRegistrationViewModel Get()
        {
            User expectedUser = UserHelper.Get(null, "First_name", false, "Last_name", "1234567890", UserRoles.Candidate, "", "1234567890");


            Candidate expectedCandidate
                = CandidateHelper.Get("cfn", "cln", 1234567891, Castes.Jain, HighestEducations.BE_BTECH,
                                      FamilyTypes.Joint, Genders.Female, Religions.HINDU);

            Address expectedUserAddress      = AddressHelper.Get("ual1", "ual2", Districts.NASHIK, States.GUJRAT, Talukas.SHIROL, 123);
            Address expectedCandidateAddress = AddressHelper.Get("cal1", "cal2", Districts.KOLHAPUR, States.GOA, Talukas.DAUND, 345);


            NewRegistrationViewModel newRegistration = new NewRegistrationViewModel();

            newRegistration.address_line_1 = expectedUserAddress.address_line_1;
            newRegistration.address_line_2 = expectedUserAddress.address_line_2;

            newRegistration.candidate_address_line_1 = expectedCandidateAddress.address_line_1;
            newRegistration.candidate_address_line_2 = expectedCandidateAddress.address_line_2;
            newRegistration.candidate_district_id    = expectedCandidateAddress.district_id;
            newRegistration.candidate_first_name     = expectedCandidate.first_name;
            newRegistration.candidate_last_name      = expectedCandidate.last_name;
            newRegistration.candidate_phone_number   = expectedCandidate.phone_number;
            newRegistration.candidate_state_id       = expectedCandidateAddress.state_id;
            newRegistration.candidate_taluka_id      = expectedCandidateAddress.taluka_id;

            newRegistration.caste_id      = expectedCandidate.caste_id;
            newRegistration.district_id   = expectedUserAddress.district_id;
            newRegistration.education_id  = expectedCandidate.education_id;
            newRegistration.familytype_id = expectedCandidate.family_type_id;
            newRegistration.first_name    = expectedUser.first_name;
            newRegistration.gender_id     = expectedCandidate.gender_id;

            newRegistration.language     = new int[] { Languages.Marathi, Languages.Hindi };
            newRegistration.last_name    = expectedUser.last_name;
            newRegistration.phone_number = Convert.ToInt64(expectedUser.phone_number);
            newRegistration.religion_id  = expectedCandidate.religion_id;
            newRegistration.state_id     = expectedUserAddress.state_id;
            newRegistration.taluka_id    = expectedUserAddress.taluka_id;


            newRegistration.zip_code           = expectedUserAddress.zip_code;
            newRegistration.candidate_zip_code = expectedCandidateAddress.zip_code;

            return(newRegistration);
        }
Example #6
0
        public void TestNewRegistrationPhoneNumberValidationFailed()
        {
            SecurityService securityService = new SecurityService();

            NewRegistrationViewModel newRegistration1 = NewRegistrationHelper.Get();

            newRegistration1.phone_number = Convert.ToInt64(RegistrationTestUser2);


            RegistrationService registrationService = new RegistrationService(this.connectionStringService,
                                                                              securityService, IOptionsHelper.Get());

            var response = registrationService.RegisterNewCandidate(newRegistration1);

            Assert.True(response.IsSuccess, "Registration should be successful.");

            response = registrationService.RegisterNewCandidate(newRegistration1);

            Assert.False(response.IsSuccess, "Registration should fail.");

            Assert.Equal("User phone number already exists", response.Message);
        }
        private void MapCandidate(Candidate candidate, NewRegistrationViewModel model)
        {
            candidate.first_name        = model.candidate_first_name;
            candidate.last_name         = model.candidate_last_name;
            candidate.phone_number      = model.candidate_phone_number;
            candidate.gender_id         = model.gender_id;
            candidate.religion_id       = model.religion_id;
            candidate.marital_status_id = model.marital_status_id;
            if (model.occupation != null && model.occupation != "" && model.occupation == "Other")
            {
                candidate.occupation = model.otheroccupation;
            }
            else if (model.occupation != null && model.occupation != "" && model.occupation != "Other")
            {
                candidate.occupation = model.occupation;
            }

            if (model.caste_id != null)
            {
                candidate.caste_id = (int)model.caste_id;
            }
            else
            {
                candidate.caste_id = null;
            }
            if (model.education_id != null)
            {
                candidate.education_id = (int)model.education_id;
            }
            else
            {
                candidate.education_id = null;
            }
            candidate.family_type_id = model.familytype_id;
            candidate.date_of_birth  = model.candidate_birth_date;
        }
 public IActionResult RegisterCandidate([FromBody] NewRegistrationViewModel model)
 {
     return(Ok(_registrationService.RegisterNewCandidate(model)));
 }
        public ActionResult NewRegistration(NewRegistrationViewModel viewModel)
        {
            if (viewModel != null && this.IsCaptchaValid("Captcha is not valid"))
            {
                Partner partner = _partnerRepository.GetById(new Guid(Session["partnerId"].ToString()));
                CustomerLoginDetails loginDetails = new CustomerLoginDetails
                {
                    UserName = viewModel.Customer.LoginDetails.UserName,
                    Password = viewModel.Customer.LoginDetails.Password
                };

                CustomerAddress address = new CustomerAddress
                {
                    AddressLine1 = viewModel.Customer.CustomerAddress.AddressLine1,
                    AddressLine2 = viewModel.Customer.CustomerAddress.AddressLine2,
                    City         = viewModel.Customer.CustomerAddress.City,
                    State        = viewModel.Customer.CustomerAddress.State,
                    ZipCode      = viewModel.Customer.CustomerAddress.ZipCode,
                    Country      = viewModel.Customer.CustomerAddress.Country
                };

                foreach (var moduleList in viewModel.ModuleList)
                {
                    if (moduleList.IsSelected)
                    {
                        _listOfModules.Add(_moduleRepository.GetByName(moduleList.ModuleName));
                    }
                }

                foreach (var serviceList in viewModel.ServiceList)
                {
                    if (serviceList.IsSelected)
                    {
                        _listOfServices.Add(_serviceRepository.GetByName(serviceList.ServiceName));
                    }
                }

                CustomerSubscriptionDetails subscriptionDetails = new CustomerSubscriptionDetails
                {
                    NumberOfNamedUsers = viewModel.CustomerSubscriptionDetail.NumberOfNamedUsers,
                    Subscription       = viewModel.CustomerSubscriptionDetail.Subscription,
                    Modules            = _listOfModules,
                    Services           = _listOfServices
                };

                _listOfSubscription.Add(subscriptionDetails);

                var customerDetails = new SCMProfitCore.Model.CustomerModule.Customer
                {
                    CompanyName     = viewModel.Customer.CompanyName,
                    FirstName       = viewModel.Customer.FirstName,
                    LastName        = viewModel.Customer.LastName,
                    PrimaryContact  = viewModel.Customer.PrimaryContact,
                    Currency        = viewModel.Customer.Currency,
                    ShortName       = viewModel.Customer.ShortName,
                    Email           = viewModel.Customer.Email,
                    WebsiteUrl      = viewModel.Customer.WebsiteUrl,
                    Role            = viewModel.Customer.Role,
                    Partner         = partner,
                    LoginDetails    = loginDetails,
                    CustomerAddress = address,
                    Subscriptions   = _listOfSubscription
                };

                _customerRepository.Add(customerDetails);

                return(RedirectToAction("SignIn", "Login"));
            }
            return(View());
        }
Example #10
0
        public void TestNewRegistration()
        {
            SecurityService securityService = new SecurityService();
            string          realPassword    = "******";
            //tests the lower casing of the password as well
            User expectedUser = UserHelper.Get(null, "First_name", false, "Last_name", "1234567890", UserRoles.Candidate, "", "1234567890");

            expectedUser.password = securityService.HashUserNameAndPassword(expectedUser.phone_number.ToString(), realPassword);


            Candidate expectedCandidate
                = CandidateHelper.Get("cfn", "cln", 1234567891, Castes.Jain, HighestEducations.BE_BTECH,
                                      FamilyTypes.Joint, Genders.Female, Religions.HINDU);

            Address expectedUserAddress      = AddressHelper.Get("ual1", "ual2", Districts.NASHIK, States.GUJRAT, Talukas.SHIROL, 123);
            Address expectedCandidateAddress = AddressHelper.Get("cal1", "cal2", Districts.KOLHAPUR, States.GOA, Talukas.DAUND, 345);


            NewRegistrationViewModel newRegistration = new NewRegistrationViewModel();

            newRegistration.address_line_1 = expectedUserAddress.address_line_1;
            newRegistration.address_line_2 = expectedUserAddress.address_line_2;

            newRegistration.candidate_address_line_1 = expectedCandidateAddress.address_line_1;
            newRegistration.candidate_address_line_2 = expectedCandidateAddress.address_line_2;
            newRegistration.candidate_district_id    = expectedCandidateAddress.district_id;
            newRegistration.candidate_first_name     = expectedCandidate.first_name;
            newRegistration.candidate_last_name      = expectedCandidate.last_name;
            newRegistration.candidate_phone_number   = expectedCandidate.phone_number;
            newRegistration.candidate_state_id       = expectedCandidateAddress.state_id;
            newRegistration.candidate_taluka_id      = expectedCandidateAddress.taluka_id;

            newRegistration.caste_id      = expectedCandidate.caste_id;
            newRegistration.district_id   = expectedUserAddress.district_id;
            newRegistration.education_id  = expectedCandidate.education_id;
            newRegistration.familytype_id = expectedCandidate.family_type_id;
            newRegistration.first_name    = expectedUser.first_name;
            newRegistration.gender_id     = expectedCandidate.gender_id;

            newRegistration.language     = new int[] { Languages.Marathi, Languages.Hindi };
            newRegistration.last_name    = expectedUser.last_name;
            newRegistration.phone_number = Convert.ToInt64(expectedUser.phone_number);
            newRegistration.religion_id  = expectedCandidate.religion_id;
            newRegistration.state_id     = expectedUserAddress.state_id;
            newRegistration.taluka_id    = expectedUserAddress.taluka_id;


            newRegistration.zip_code           = expectedUserAddress.zip_code;
            newRegistration.candidate_zip_code = expectedCandidateAddress.zip_code;


            RegistrationService registrationService = new RegistrationService(this.connectionStringService,
                                                                              securityService, IOptionsHelper.Get());

            var response = registrationService.RegisterNewCandidate(newRegistration);

            Assert.True(response.IsSuccess, "Registration Response Failed.");

            Assert.Equal("1234567890", response.Data.user_name);
            Assert.Equal(realPassword, response.Data.password);

            //User
            User actualUser = connectionForTest
                              .QueryFirst <User>("Select * from user_table where user_name = @user_name", new { expectedUser.user_name });

            Assert.NotNull(actualUser);

            UserHelper.Assrt(expectedUser, actualUser);

            //UserAddress
            Address actualUserAddress = connectionForTest
                                        .QueryFirst <Address>("Select * from address where id = @address_id", new { actualUser.address_id });

            Assert.NotNull(actualUserAddress);

            AddressHelper.Assrt(expectedUserAddress, actualUserAddress);

            //Candidate
            Candidate actualCandidate = connectionForTest
                                        .QueryFirst <Candidate>("Select * from Candidate where user_id = @id", new { actualUser.id });

            Assert.NotNull(actualCandidate);

            CandidateHelper.Assrt(expectedCandidate, actualCandidate);

            //Candidate Address
            Address actualCandidateAddress = connectionForTest
                                             .QueryFirst <Address>("Select * from address where id = @address_id", new { actualCandidate.address_id });

            Assert.NotNull(actualCandidateAddress);

            AddressHelper.Assrt(expectedCandidateAddress, actualCandidateAddress);
        }
Example #11
0
        public void CustomerShouldBeRegisteredAndRedirectToSignIn()
        {
            //arrange
            NewRegistrationViewModel                  viewModel                       = new NewRegistrationViewModel();
            IRepository <Customer>                    _customerRepository             = new CustomerDetailsRepository();
            IRepository <CustomerLoginDetails>        _customerLoginDetailsRepository = new CustomerLoginDetailsRepository();
            IRepository <CustomerSubscriptionDetails> _customerSubscriptionRepository = new CustomerSubscriptionDetailsRepository();
            IRepository <Partner> _partnerRepository = new PartnerRepository();
            IRepository <Module>  _moduleRepository  = new ModuleRepository();
            IRepository <Service> _serviceRepository = new ServicesRepository();
            Module             _module            = new Module();
            Service            _service           = new Service();
            CustomerController customerController = new CustomerController(_customerRepository, _customerLoginDetailsRepository, _customerSubscriptionRepository, _partnerRepository, _moduleRepository, _serviceRepository);

            //act
            Partner partner = new Partner
            {
                PartnerName = "TechLabs"
            };

            CustomerLoginDetails loginDetails = new CustomerLoginDetails
            {
                UserName = "******",
                Password = "******"
            };


            viewModel.Modules.Add("Warehouse");

            foreach (var list in viewModel.Modules[0].Split(','))
            {
                _module = new Module
                {
                    ModuleName = list
                };
            }

            viewModel.Services.Add("Online Support");

            foreach (var list in viewModel.ServiceList)
            {
                _service = new Service
                {
                    ServiceName = list.ServiceName
                };
            }

            CustomerSubscriptionDetails subscriptionDetails = new CustomerSubscriptionDetails
            {
                NumberOfNamedUsers = 15,
                Subscription       = CustomerSubscriptionType.OnPremise,
                //Modules = viewModel.Modules[0],
                //Services = viewModel.Services[0]
            };

            Customer customer = new Customer
            {
                CompanyName    = "Raju Company",
                FirstName      = "Raju",
                LastName       = "Vishwakarma",
                PrimaryContact = 7788256485,
                Currency       = CurrencyType.EUR,
                ShortName      = "BPO",
                Email          = "*****@*****.**",
                WebsiteUrl     = "https://mail.google.com",
                Role           = "user"
            };

            customer.Partner      = partner;
            customer.LoginDetails = loginDetails;

            subscriptionDetails.Customer = customer;
            _module.Subscription         = subscriptionDetails;
            _service.Subscription        = subscriptionDetails;

            var result = customerController.NewRegistration(viewModel) as RedirectToRouteResult;

            //assert
            if (result != null)
            {
                Assert.AreEqual("SignIn", result.RouteValues["action"]);
                Assert.IsNotNull(result);
            }
        }
        public JsonResponse <AuthenticateModel> RegisterNewCandidate(NewRegistrationViewModel newRegistrationModel)
        {
            JsonResponse <AuthenticateModel> jsonResponse = new JsonResponse <AuthenticateModel>();

            var result = ValidateRegistration(newRegistrationModel);

            if (result.IsValid)
            {
                const int passwordGenerationIndex = 3;
                string    username       = newRegistrationModel.phone_number.ToString();
                string    password       = GetPassword(newRegistrationModel.first_name, newRegistrationModel.last_name, newRegistrationModel.phone_number, passwordGenerationIndex);
                string    hashedPassword = _SecurityService.HashUserNameAndPassword(username, password);

                AuthenticateModel infoModel = new AuthenticateModel();
                infoModel.user_name = username;
                infoModel.password  = password;

                User                 user             = new User();
                Address              userAddress      = new Address();
                Address              candidateAddress = new Address();
                Candidate            candidate        = new Candidate();
                CandidateLanguageMap candidateLanguageMap;

                MapCandidate(candidate, newRegistrationModel);
                MapUser(user, newRegistrationModel);
                MapUserAddress(userAddress, newRegistrationModel);
                MapCandidateAddress(candidateAddress, newRegistrationModel);

                user.user_name = username;
                user.password  = hashedPassword;
                user.role_id   = UserRoles.Candidate;
                user.is_user_login_first_time = true;
                user.date_of_birth            = newRegistrationModel.user_birth_date;
                using (IDbConnection dbConnection = new NpgsqlConnection(_ConnectionStringService.Value))
                {
                    dbConnection.Open();

                    using (var transaction = dbConnection.BeginTransaction())
                    {
                        try
                        {
                            user.address_id      = (Int32)dbConnection.Insert <Address>(userAddress, transaction);
                            candidate.address_id = (Int32)dbConnection.Insert <Address>(candidateAddress, transaction);

                            candidate.user_id = (Int32)dbConnection.Insert <User>(user, transaction);
                            Int16 candidate_id = (Int16)dbConnection.Insert <Candidate>(candidate, transaction);

                            for (int i = 0; i < newRegistrationModel.language.Length; i++)
                            {
                                candidateLanguageMap = new CandidateLanguageMap();
                                candidateLanguageMap.candidate_id = candidate_id;
                                candidateLanguageMap.language_id  = newRegistrationModel.language[i];
                                dbConnection.Insert <CandidateLanguageMap>(candidateLanguageMap, transaction);
                            }

                            transaction.Commit();

                            jsonResponse.Data      = infoModel;
                            jsonResponse.IsSuccess = true;
                            jsonResponse.Message   = "Registration Successful";
                        }
                        catch (Exception ex)
                        {
                            if (ex.Message.Contains("user_table_phone_number_unique"))
                            {
                                jsonResponse.Message = "User phone number already exists";
                            }
                            else
                            {
                                jsonResponse.Message = "Some error occured. Please contact administrator.";
                            }

                            transaction.Rollback();
                            jsonResponse.IsSuccess = false;
                        }
                    }
                }
            }
            else
            {
                jsonResponse.IsSuccess = false;
                jsonResponse.Message   = result.Messages();
            }

            return(jsonResponse);
        }
 private void MapUser(User user, NewRegistrationViewModel newRegistrationModel)
 {
     user.first_name   = newRegistrationModel.first_name;
     user.last_name    = newRegistrationModel.last_name;
     user.phone_number = newRegistrationModel.phone_number.ToString();
 }