public AbstractDomainModel Get(AbstractDomainModel domainModel, OperationTypeEnum operationType)
        {
            home = (Home)domainModel;
            switch (operationType)
            {
            case OperationTypeEnum.GET_MAKES:
                home.Makes = homeRepository.GetMakesByYear(home.SelectedYear);
                if (home.Makes == null)
                {
                    throw new Exception("No item(s) in a list");
                }
                break;

            case OperationTypeEnum.GET_MODLES:
                home.Models = homeRepository.GetModelsByYearMake(home.SelectedYear, home.SelectedMakeId);
                if (home.Models == null)
                {
                    throw new Exception("No item(s) in a list");
                }
                break;

            case OperationTypeEnum.CHECK_ZIPCODE:
                home.ZipCodeResult = homeRepository.CheckZipCode(home.ZipCode);
                if (home.ZipCodeResult.Is_Valid_Zip_Code == false)
                {
                    throw new Exception("Please enter a valid zipcode");
                }
                break;

            case OperationTypeEnum.GET_CITIES:
                home.Cities = homeRepository.GetCitiesByState(home.StateId);
                if (home.Cities == null)
                {
                    throw new Exception("No item(s) in a list");
                }
                break;

            case OperationTypeEnum.GET_AN_OFFER:
                home.City       = homeRepository.GetCity(home.ZipCode);
                home.State      = homeRepository.GetState(home.ZipCode);
                home.OfferPrice = homeRepository.GetAnOffer(home.SelectedYear, home.SelectedMakeId, home.SelectedModelId, home.ZipCode,
                                                            "<Customer_Info><Customer_Name>" + home.Name + "</Customer_Name>" +
                                                            "<Customer_Address>" + home.Address + "</Customer_Address>" +
                                                            "<Customer_Phone>" + home.Phone + "</Customer_Phone>" +
                                                            "<Customer_Email>" + home.EmailAddress + "</Customer_Email></Customer_Info>", home.CylindersQuantity,
                                                            home.EmailAddress, home.Name, home.Address, home.Phone, "password123");
                if (home.OfferPrice.Length <= 0)
                {
                    throw new Exception("No offer");
                }
                else
                {
                    adminEmailAddresses = userRepository.GetAdminEmailAddresses();
                    JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForAdmin("Pending", home.SelectedYear, home.SelectedMake, home.SelectedModel, home.OfferPrice, home.Name, home.Address, home.State, home.City, home.ZipCode, home.Phone, home.EmailAddress, "[email protected],[email protected]," + adminEmailAddresses);
                }
                break;

            case OperationTypeEnum.GET_A_BETTER_OFFER:
                string [] selectedQuestionnaire = home.SelectedQuestionnaire.Split(',');
                int[]     questionnaireIds      = selectedQuestionnaire.Select(int.Parse).ToArray();
                string    questionnaireResult   = string.Empty;
                home.QuestionnaireDescription = homeRepository.GetQuestionnaireDescription(questionnaireIds);
                home.City  = homeRepository.GetCity(home.ZipCode);
                home.State = homeRepository.GetState(home.ZipCode);
                for (int i = 0; i < selectedQuestionnaire.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        questionnaireResult += "<Questionnaire_Result><Question_Id>" + selectedQuestionnaire[i] + "</Question_Id>";
                    }
                    else
                    {
                        questionnaireResult += "<Answer_Id>" + selectedQuestionnaire[i] + "</Answer_Id></Questionnaire_Result>";
                    }
                }

                home.OfferPrice = homeRepository.GetABetterOffer(home.SelectedYear, home.SelectedMakeId, home.SelectedModelId, home.ZipCode,
                                                                 questionnaireResult,
                                                                 "<Customer_Info><Customer_Name>" + home.Name + "</Customer_Name>" +
                                                                 "<Customer_Address>" + home.Address + "</Customer_Address>" +
                                                                 "<Customer_Phone>" + home.Phone + "</Customer_Phone>" +
                                                                 "<Customer_Email>" + home.EmailAddress + "</Customer_Email></Customer_Info>", home.CylindersQuantity,
                                                                 home.EmailAddress, home.Name, home.Address, home.Phone, "password123");

                if (home.OfferPrice.Length <= 0)
                {
                    throw new Exception("No offer");
                }
                else
                {
                    adminEmailAddresses = userRepository.GetAdminEmailAddresses();
                    JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForAdmin("Pending", home.CustomerId, home.QuestionnaireDescription, home.SelectedYear, home.SelectedMake, home.SelectedMakeId, home.SelectedModel, home.SelectedModelId, home.CylindersQuantity, home.OfferPrice, home.Name, home.Address, home.State, home.City, home.ZipCode, home.Phone, home.EmailAddress, "[email protected],[email protected]," + adminEmailAddresses);
                }
                break;

            case OperationTypeEnum.CONFIRM_OFFER:
                home.City           = homeRepository.GetCity(home.ZipCode);
                home.State          = homeRepository.GetState(home.ZipCode);
                adminEmailAddresses = userRepository.GetAdminEmailAddresses();
                JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForAdmin("Confirmed", home.SelectedYear, home.SelectedMake, home.SelectedModel, home.OfferPrice, home.Name, home.Address, home.State, home.City, home.ZipCode, home.Phone, home.EmailAddress, "[email protected],[email protected]," + adminEmailAddresses);
                JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForCustomer(home.SelectedYear, home.SelectedMake, home.SelectedModel, home.OfferPrice, home.Name, home.Address, home.Phone, home.ContactNo, home.EmailAddress);
                break;

            case OperationTypeEnum.CONFIRM_OFFER_WITH_QUESTIONNAIRE:
                string [] selectedQuestionnaire2 = home.SelectedQuestionnaire.Split(',');
                int[]     questionnaireIds2      = selectedQuestionnaire2.Select(int.Parse).ToArray();

                home.QuestionnaireDescription = homeRepository.GetQuestionnaireDescription(questionnaireIds2);
                home.City           = homeRepository.GetCity(home.ZipCode);
                home.State          = homeRepository.GetState(home.ZipCode);
                adminEmailAddresses = userRepository.GetAdminEmailAddresses();
                JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForAdmin("Confirmed", home.CustomerId, home.QuestionnaireDescription, home.SelectedYear, home.SelectedMake, home.SelectedMakeId, home.SelectedModel, home.SelectedModelId, home.CylindersQuantity, home.OfferPrice, home.Name, home.Address, home.State, home.City, home.ZipCode, home.Phone, home.EmailAddress, "[email protected],[email protected]," + adminEmailAddresses);
                JunkCar.Core.ConfigurationEmails.ConfigurationEmail.OfferEmailForCustomer(home.SelectedYear, home.SelectedMake, home.SelectedModel, home.OfferPrice, home.Name, home.Address, home.Phone, home.ContactNo, home.EmailAddress);
                break;

            case OperationTypeEnum.GET_CUSTOMER_ID:
                home.CustomerId = homeRepository.GetCustomerId(home.Address, home.CityId, home.EmailAddress, home.Name, home.Phone, home.StateId, home.ZipCode, "password123");
                if (home.CustomerId <= 0)
                {
                    throw new Exception("Customer do not exist");
                }
                break;

            default:
                break;
            }
            return(home);
        }