public AbstractDomainModel GetAll(SearchCriteriaEnum searchCriteria)
        {
            DomainModel.Models.EditProfile editProfile = new DomainModel.Models.EditProfile();

            switch (searchCriteria)
            {
            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_COUNTRIES:
                editProfile.Countries = countryRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_STATES:
                editProfile.States = stateRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_CITIES:
                editProfile.Cities = cityRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_LOCALITIES:
                editProfile.Localities = localityRepository.GetAll();
                break;

            default:
                break;
            }
            return(editProfile);
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="criteria">Criteria.</param>
        /// <param name="displayName">Display name.</param>
        public SearchCriteria(SearchCriteriaEnum criteria, string displayName)
        {
            this.Criteria = criteria;
            this.DisplayName = displayName;

            this.id = System.Guid.NewGuid();
        }
示例#3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="criteria">Criteria.</param>
        /// <param name="displayName">Display name.</param>
        public SearchCriteria(SearchCriteriaEnum criteria, string displayName)
        {
            this.Criteria    = criteria;
            this.DisplayName = displayName;

            this.id = System.Guid.NewGuid();
        }
示例#4
0
        public AbstractDomainModel GetAll(SearchCriteriaEnum searchCriteria)
        {
            DomainModel.Models.ProviderRegistration providerRegistration = new DomainModel.Models.ProviderRegistration();

            switch (searchCriteria)
            {
            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_SPECIALTIES:
                providerRegistration.Specialties = specialtyRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_COUNTRIES:
                providerRegistration.Countries = countryRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_CITIES:
                providerRegistration.Cities = cityRepository.GetAll();
                break;

            case CareHub.Core.Enumerations.SearchCriteriaEnum.GET_LOCALITIES:
                providerRegistration.Localities = localityRepository.GetAll();
                break;

            default:
                break;
            }
            return(providerRegistration);
        }
示例#5
0
        public override AbstractDomainModel Query(SearchCriteriaEnum searchCriteria)
        {
            DomainModel.Models.PracticesSearch searchPractice = new DomainModel.Models.PracticesSearch();

            FactoryFacade factory = new FactoryFacade();

            try
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_HOSPITALS:
                    unitOfWork     = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.PracticesSearchUOW));
                    searchPractice = (DomainModel.Models.PracticesSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_LABS:
                    unitOfWork     = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.PracticesSearchUOW));
                    searchPractice = (DomainModel.Models.PracticesSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_HOSPITALS:
                    searchPractice.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_LABS:
                    searchPractice.ResponseMessage = ex.Message;
                    break;

                default:
                    break;
                }
            }
            finally
            {
                factory = null;
            }
            switch (searchCriteria)
            {
            case SearchCriteriaEnum.GET_HOSPITALS:
                return(searchPractice);

            case SearchCriteriaEnum.GET_LABS:
                return(searchPractice);

            default:
                break;
            }
            return(null);
        }
示例#6
0
        public override AbstractDomainModel Query(SearchCriteriaEnum searchCriteria)
        {
            signup = new DomainModel.Models.Signup();
            FactoryFacade factory = new FactoryFacade();

            try
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_ALL_SECURITY_QUESTIONS:
                    unitOfWork = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(JunkCar.UnitOfWork.UOWs.AccountsUOW));
                    signup     = (DomainModel.Models.Signup)unitOfWork.GetAll(searchCriteria);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_ALL_SECURITY_QUESTIONS:
                    signup.ResponseMessage = ex.Message;
                    break;

                default:
                    break;
                }
            }
            finally
            {
                factory = null;
            }
            switch (searchCriteria)
            {
            case SearchCriteriaEnum.GET_ALL_SECURITY_QUESTIONS:
                return(signup);

            default:
                break;
            }
            return(null);
        }
示例#7
0
 public AbstractDomainModel GetAll(SearchCriteriaEnum searchCriteria)
 {
     throw new NotImplementedException();
 }
 public override AbstractDomainModel Query(SearchCriteriaEnum searchCriteria)
 {
     home = new DomainModel.Models.Home();            
     FactoryFacade factory = new FactoryFacade();
     try
     {
         switch (searchCriteria)
         {                    
             case SearchCriteriaEnum.GET_REGISTRATION_YEARS:
                 unitOfWork = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(JunkCar.UnitOfWork.UOWs.HomeUOW));
                 home = (DomainModel.Models.Home)unitOfWork.GetAll(searchCriteria);
                 break;
             case SearchCriteriaEnum.GET_CYLINDERS:
                 unitOfWork = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(JunkCar.UnitOfWork.UOWs.HomeUOW));
                 home = (DomainModel.Models.Home)unitOfWork.GetAll(searchCriteria);
                 break;
             case SearchCriteriaEnum.GET_STATES:
                 unitOfWork = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(JunkCar.UnitOfWork.UOWs.HomeUOW));
                 home = (DomainModel.Models.Home)unitOfWork.GetAll(searchCriteria);
                 break;
             case SearchCriteriaEnum.GET_QUESTIONNAIRE:
                 unitOfWork = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(JunkCar.UnitOfWork.UOWs.HomeUOW));
                 home = (DomainModel.Models.Home)unitOfWork.GetAll(searchCriteria);
                 break;
             default:
                 break;
         }
     }
     catch (Exception ex)
     {
         switch (searchCriteria)
         {
             case SearchCriteriaEnum.GET_REGISTRATION_YEARS:
                 home.ResponseMessage = ex.Message;
                 break;
             case SearchCriteriaEnum.GET_CYLINDERS:
                 home.ResponseMessage = ex.Message;
                 break;
             case SearchCriteriaEnum.GET_STATES:
                 home.ResponseMessage = ex.Message;
                 break;
             case SearchCriteriaEnum.GET_QUESTIONNAIRE:
                 home.ResponseMessage = ex.Message;
                 break;
             default:
                 break;
         }
     }
     finally
     {
         factory = null;
     }
     switch (searchCriteria)
     {
         case SearchCriteriaEnum.GET_REGISTRATION_YEARS:
             return home;
         case SearchCriteriaEnum.GET_CYLINDERS:
             return home;
         case SearchCriteriaEnum.GET_STATES:
             return home;
         case SearchCriteriaEnum.GET_QUESTIONNAIRE:
             return home; 
         default:
             break;
     }
     return null;
 }
 public override AbstractDomainModel Query(AbstractDomainModel domainModel, DomainModelEnum domainModelType, SearchCriteriaEnum searchCriteria)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        /// Search a specific model element by using the given search criteria.
        /// </summary>
        /// <param name="modelElement">Model element to be searched.</param>
        /// <param name="criteria">Search criteria to use.</param>
		/// <param name="searchText">Text to search.</param>
        /// <param name="options">Search options.</param>
        /// <returns>Search result list if any found. Empty list otherwise.</returns>
        public virtual List<SearchResult> Search(ModelElement modelElement, SearchCriteriaEnum criteria, string searchText, SearchOptions options)
        {
            List<SearchResult> results = new List<SearchResult>();
            DomainClassInfo info = modelElement.GetDomainClass();
            Type modelElementType = modelElement.GetType();

            #region properties
            if (criteria == SearchCriteriaEnum.Name ||
                criteria == SearchCriteriaEnum.NameAndType ||
                criteria == SearchCriteriaEnum.All ||
                criteria == SearchCriteriaEnum.Properties || 
				criteria == SearchCriteriaEnum.PropertiesWithoutName)
                foreach (DomainPropertyInfo propertyInfo in info.AllDomainProperties)
                {
                    if (propertyInfo == info.NameDomainProperty &&
                        criteria != SearchCriteriaEnum.Name &&
                        criteria != SearchCriteriaEnum.NameAndType &&
                        criteria != SearchCriteriaEnum.Properties &&
                        criteria != SearchCriteriaEnum.All)
                        continue;
                    else if (propertyInfo != info.NameDomainProperty &&
                        criteria != SearchCriteriaEnum.All &&
                        criteria != SearchCriteriaEnum.Properties &&
                        criteria != SearchCriteriaEnum.PropertiesWithoutName)
                        continue;

                    object nameValue = GetPropertyValue(modelElement, modelElementType, propertyInfo.Name);
                    if (nameValue == null && System.String.IsNullOrEmpty(searchText))
                    {
                        SearchResult searchResult = new SearchResult();
                        searchResult.IsSuccessFull = true;
                        searchResult.Source = modelElement;
                        searchResult.Reason = "Property " + propertyInfo.Name + " is 'null'";

                        results.Add(searchResult);
                    }
                    else if (nameValue != null && !System.String.IsNullOrEmpty(searchText))
                        if (Contains(nameValue.ToString(), searchText, options))
                        {
                            SearchResult searchResult = new SearchResult();
                            searchResult.IsSuccessFull = true;
                            searchResult.Source = modelElement;
                            searchResult.Reason = "Property " + propertyInfo.Name + " contains '" + searchText + "'";

                            results.Add(searchResult);
                        }

                }
			#endregion

            #region roles
            if (criteria == SearchCriteriaEnum.Roles ||
                criteria == SearchCriteriaEnum.All)
            {
                foreach (DomainRoleInfo roleInfo in info.AllDomainRolesPlayed)
                {
                    if (!roleInfo.IsSource)
                        continue;

                    DomainRelationshipInfo relInfo = roleInfo.DomainRelationship;
                    if (!IsLinkIncludedInDomainTree(modelElement.Store as DomainModelStore, relInfo.Id))
                        continue;

                    ReadOnlyCollection<ElementLink> links = DomainRoleInfo.GetElementLinks<ElementLink>(modelElement, roleInfo.Id);
                    if (links.Count == 0 && String.IsNullOrEmpty(searchText))
                    {
                        SearchResult searchResult = new SearchResult();
                        searchResult.IsSuccessFull = true;
                        searchResult.Source = modelElement;
                        searchResult.Reason = "Role " + roleInfo.PropertyName + " is empty";

                        results.Add(searchResult);
                    }

                    foreach (ElementLink link in links)
                    {
                        ModelElement m = DomainRoleInfo.GetTargetRolePlayer(link);
                        if (m == null && System.String.IsNullOrEmpty(searchText))
                        {
                            SearchResult searchResult = new SearchResult();
                            searchResult.IsSuccessFull = true;
                            searchResult.Source = modelElement;
                            searchResult.Reason = "Role " + roleInfo.PropertyName + " is null";

                            results.Add(searchResult);
                        }
                        else if (m != null && !System.String.IsNullOrEmpty(searchText))
                            if (Contains((m as IDomainModelOwnable).DomainElementFullName, searchText, options))
                            {
                                SearchResult searchResult = new SearchResult();
                                searchResult.IsSuccessFull = true;
                                searchResult.Source = modelElement;
                                searchResult.Reason = "Role " + roleInfo.PropertyName + " contains '" + searchText + "' in the Full Name property on referenced element " + (m as IDomainModelOwnable).DomainElementFullName;

                                results.Add(searchResult);
                            }
                    }
                }
            }
            #endregion

            #region type
            if (criteria == SearchCriteriaEnum.Type ||
                criteria == SearchCriteriaEnum.NameAndType ||
                criteria == SearchCriteriaEnum.All)
            {
                if (Contains((modelElement as IDomainModelOwnable).DomainElementType, searchText, options) ||
                    Contains((modelElement as IDomainModelOwnable).DomainElementTypeDisplayName, searchText, options))
                {
                    SearchResult searchResult = new SearchResult();
                    searchResult.IsSuccessFull = true;
                    searchResult.Source = modelElement;
                    searchResult.Reason = "Type '" + searchText + "' found";

                    results.Add(searchResult);
                }
            }
            #endregion

            return results;
        }
示例#11
0
        public override AbstractDomainModel Query(SearchCriteriaEnum searchCriteria)
        {
            DomainModel.Models.DoctorsSearch searchDoctor = new DomainModel.Models.DoctorsSearch();

            FactoryFacade factory = new FactoryFacade();

            try
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_COUNTRIES:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_SPECIALTIES:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_DOCTORS:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_PHARMACISTS:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_NURSE:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_TREATMENTS:
                    unitOfWork   = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.DoctorsSearchUOW));
                    searchDoctor = (DomainModel.Models.DoctorsSearch)unitOfWork.GetAll(searchCriteria);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_COUNTRIES:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_SPECIALTIES:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_DOCTORS:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_PHARMACISTS:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_NURSE:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_TREATMENTS:
                    searchDoctor.ResponseMessage = ex.Message;
                    break;

                default:
                    break;
                }
            }
            finally
            {
                factory = null;
            }
            switch (searchCriteria)
            {
            case SearchCriteriaEnum.GET_COUNTRIES:
                return(searchDoctor);

            case SearchCriteriaEnum.GET_SPECIALTIES:
                return(searchDoctor);

            case SearchCriteriaEnum.GET_DOCTORS:
                return(searchDoctor);

            case SearchCriteriaEnum.GET_PHARMACISTS:
                return(searchDoctor);

            case SearchCriteriaEnum.GET_NURSE:
                return(searchDoctor);

            case SearchCriteriaEnum.GET_TREATMENTS:
                return(searchDoctor);

            default:
                break;
            }
            return(null);
        }
示例#12
0
        /// <summary>
        /// Search a specific model element by using the given search criteria.
        /// </summary>
        /// <param name="modelElement">Model element to be searched.</param>
        /// <param name="criteria">Search criteria to use.</param>
        /// <param name="searchText">Text to search.</param>
        /// <param name="options">Search options.</param>
        /// <returns>Search result list if any found. Empty list otherwise.</returns>
        public virtual List <SearchResult> Search(ModelElement modelElement, SearchCriteriaEnum criteria, string searchText, SearchOptions options)
        {
            List <SearchResult> results = new List <SearchResult>();
            DomainClassInfo     info    = modelElement.GetDomainClass();
            Type modelElementType       = modelElement.GetType();

            #region properties
            if (criteria == SearchCriteriaEnum.Name ||
                criteria == SearchCriteriaEnum.NameAndType ||
                criteria == SearchCriteriaEnum.All ||
                criteria == SearchCriteriaEnum.Properties ||
                criteria == SearchCriteriaEnum.PropertiesWithoutName)
            {
                foreach (DomainPropertyInfo propertyInfo in info.AllDomainProperties)
                {
                    if (propertyInfo == info.NameDomainProperty &&
                        criteria != SearchCriteriaEnum.Name &&
                        criteria != SearchCriteriaEnum.NameAndType &&
                        criteria != SearchCriteriaEnum.Properties &&
                        criteria != SearchCriteriaEnum.All)
                    {
                        continue;
                    }
                    else if (propertyInfo != info.NameDomainProperty &&
                             criteria != SearchCriteriaEnum.All &&
                             criteria != SearchCriteriaEnum.Properties &&
                             criteria != SearchCriteriaEnum.PropertiesWithoutName)
                    {
                        continue;
                    }

                    object nameValue = GetPropertyValue(modelElement, modelElementType, propertyInfo.Name);
                    if (nameValue == null && System.String.IsNullOrEmpty(searchText))
                    {
                        SearchResult searchResult = new SearchResult();
                        searchResult.IsSuccessFull = true;
                        searchResult.Source        = modelElement;
                        searchResult.Reason        = "Property " + propertyInfo.Name + " is 'null'";

                        results.Add(searchResult);
                    }
                    else if (nameValue != null && !System.String.IsNullOrEmpty(searchText))
                    {
                        if (Contains(nameValue.ToString(), searchText, options))
                        {
                            SearchResult searchResult = new SearchResult();
                            searchResult.IsSuccessFull = true;
                            searchResult.Source        = modelElement;
                            searchResult.Reason        = "Property " + propertyInfo.Name + " contains '" + searchText + "'";

                            results.Add(searchResult);
                        }
                    }
                }
            }
            #endregion

            #region roles
            if (criteria == SearchCriteriaEnum.Roles ||
                criteria == SearchCriteriaEnum.All)
            {
                foreach (DomainRoleInfo roleInfo in info.AllDomainRolesPlayed)
                {
                    if (!roleInfo.IsSource)
                    {
                        continue;
                    }

                    DomainRelationshipInfo relInfo = roleInfo.DomainRelationship;
                    if (!IsLinkIncludedInDomainTree(modelElement.Store as DomainModelStore, relInfo.Id))
                    {
                        continue;
                    }

                    ReadOnlyCollection <ElementLink> links = DomainRoleInfo.GetElementLinks <ElementLink>(modelElement, roleInfo.Id);
                    if (links.Count == 0 && String.IsNullOrEmpty(searchText))
                    {
                        SearchResult searchResult = new SearchResult();
                        searchResult.IsSuccessFull = true;
                        searchResult.Source        = modelElement;
                        searchResult.Reason        = "Role " + roleInfo.PropertyName + " is empty";

                        results.Add(searchResult);
                    }

                    foreach (ElementLink link in links)
                    {
                        ModelElement m = DomainRoleInfo.GetTargetRolePlayer(link);
                        if (m == null && System.String.IsNullOrEmpty(searchText))
                        {
                            SearchResult searchResult = new SearchResult();
                            searchResult.IsSuccessFull = true;
                            searchResult.Source        = modelElement;
                            searchResult.Reason        = "Role " + roleInfo.PropertyName + " is null";

                            results.Add(searchResult);
                        }
                        else if (m != null && !System.String.IsNullOrEmpty(searchText))
                        {
                            if (Contains((m as IDomainModelOwnable).DomainElementFullName, searchText, options))
                            {
                                SearchResult searchResult = new SearchResult();
                                searchResult.IsSuccessFull = true;
                                searchResult.Source        = modelElement;
                                searchResult.Reason        = "Role " + roleInfo.PropertyName + " contains '" + searchText + "' in the Full Name property on referenced element " + (m as IDomainModelOwnable).DomainElementFullName;

                                results.Add(searchResult);
                            }
                        }
                    }
                }
            }
            #endregion

            #region type
            if (criteria == SearchCriteriaEnum.Type ||
                criteria == SearchCriteriaEnum.NameAndType ||
                criteria == SearchCriteriaEnum.All)
            {
                if (Contains((modelElement as IDomainModelOwnable).DomainElementType, searchText, options) ||
                    Contains((modelElement as IDomainModelOwnable).DomainElementTypeDisplayName, searchText, options))
                {
                    SearchResult searchResult = new SearchResult();
                    searchResult.IsSuccessFull = true;
                    searchResult.Source        = modelElement;
                    searchResult.Reason        = "Type '" + searchText + "' found";

                    results.Add(searchResult);
                }
            }
            #endregion

            return(results);
        }
        public override AbstractDomainModel Query(SearchCriteriaEnum searchCriteria)
        {
            DomainModel.Models.ProviderRegistration providerRegistration = new DomainModel.Models.ProviderRegistration();
            FactoryFacade factory = new FactoryFacade();

            try
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_SPECIALTIES:
                    unitOfWork           = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.ProviderRegistrationUOW));
                    providerRegistration = (DomainModel.Models.ProviderRegistration)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_COUNTRIES:
                    unitOfWork           = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.ProviderRegistrationUOW));
                    providerRegistration = (DomainModel.Models.ProviderRegistration)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_CITIES:
                    unitOfWork           = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.ProviderRegistrationUOW));
                    providerRegistration = (DomainModel.Models.ProviderRegistration)unitOfWork.GetAll(searchCriteria);
                    break;

                case SearchCriteriaEnum.GET_LOCALITIES:
                    unitOfWork           = factory.UnitOfWorkFactory.CreateUnitOfWork(typeof(CareHub.UnitOfWork.ProviderRegistrationUOW));
                    providerRegistration = (DomainModel.Models.ProviderRegistration)unitOfWork.GetAll(searchCriteria);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                switch (searchCriteria)
                {
                case SearchCriteriaEnum.GET_SPECIALTIES:
                    providerRegistration.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_COUNTRIES:
                    providerRegistration.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_CITIES:
                    providerRegistration.ResponseMessage = ex.Message;
                    break;

                case SearchCriteriaEnum.GET_LOCALITIES:
                    providerRegistration.ResponseMessage = ex.Message;
                    break;

                default:
                    break;
                }
            }
            finally
            {
                factory = null;
            }
            switch (searchCriteria)
            {
            case SearchCriteriaEnum.GET_SPECIALTIES:
                return(providerRegistration);

            case SearchCriteriaEnum.GET_COUNTRIES:
                return(providerRegistration);

            case SearchCriteriaEnum.GET_CITIES:
                return(providerRegistration);

            case SearchCriteriaEnum.GET_LOCALITIES:
                return(providerRegistration);

            default:
                break;
            }
            return(null);
        }