public bool SyncCountries([FromBody] Contracts.Models.User model)
        {
            List <Contracts.Models.ApiIntegrations.Country> countries            = _apiCountryAll.GetAllCountries();
            List <Contracts.DataModels.Country>             countryList          = new List <Contracts.DataModels.Country>();
            IEnumerable <Contracts.DataModels.Country>      availableCountryList = _countryRepository.GetAll(null);

            foreach (Contracts.Models.ApiIntegrations.Country itemCountry in countries)
            {
                Contracts.DataModels.Country isCountryExist = availableCountryList.Where(w => w.Name == itemCountry.name).FirstOrDefault();
                try
                {
                    if (isCountryExist == null)
                    {
                        countryList.Add(new Contracts.DataModels.Country
                        {
                            Name           = itemCountry.name,
                            NativeName     = itemCountry.nativeName,
                            AlphaTwoCode   = itemCountry.alpha2Code,
                            AlphaThreeCode = itemCountry.alpha3Code,
                            Capital        = itemCountry.capital,
                            Flags          = itemCountry.flag,
                            Area           = itemCountry.area.ToString(),
                            Region         = itemCountry.region,
                            SubRegion      = itemCountry.subregion,
                            Population     = itemCountry.population,
                            Currency       = Mapper <string> .MapObjectToJsonString(itemCountry.currencies),
                            Language       = Mapper <string> .MapObjectToJsonString(itemCountry.languages),
                            TimeZone       = itemCountry.timezones != null ? itemCountry.timezones[0] : null,
                            CreatedBy      = model.AltId
                        });
                    }
                }
                catch (Exception ex)
                {
                }
            }
            Dapper.DynamicParameters dynamicParameters = new Dapper.DynamicParameters();
            dynamicParameters.Add("@XmlSeatLayout", Serialize <List <Contracts.DataModels.Country> >(countryList), System.Data.DbType.Xml);
            _countryRepository.ExecuteStoredProcedure("spInsertCountries", dynamicParameters);
            _activityHelper.SaveActivity("Country Data Synchronization", "You have performed country data sync opertion on " + DateTime.Now.ToString("ddd, dd MMM yyy HH:mm:ss"), model.AltId);
            return(true);
        }
        public bool SyncCountries([FromBody] Contracts.Models.User model)
        {
            List <Contracts.Models.ApiIntegrations.Country> countries = _apiCountryAll.GetAllCountries();

            foreach (var itemCountry in countries)
            {
                try
                {
                    Contracts.DataModels.Country country = _countryRepository.GetByName(itemCountry.name);
                    if (country == null)
                    {
                        country = _countryRepository.Save(new Contracts.DataModels.Country
                        {
                            AltId          = Guid.NewGuid(),
                            Name           = itemCountry.name,
                            AlphaTwoCode   = itemCountry.alpha2Code,
                            AlphaThreeCode = itemCountry.alpha3Code,
                            Capital        = itemCountry.capital,
                            Flags          = itemCountry.flag,
                            TimeZone       = itemCountry.timezones != null ? itemCountry.timezones[0] : null,
                            IsEnabled      = true,
                            CreatedUtc     = DateTime.UtcNow,
                            CreatedBy      = model.AltId
                        });
                    }
                    foreach (var itemCurrency in itemCountry.currencies)
                    {
                        try
                        {
                            Contracts.DataModels.Currency currency = _currencyRepository.GetByCode(itemCurrency.code);
                            if (currency == null)
                            {
                                currency = _currencyRepository.Save(new Contracts.DataModels.Currency
                                {
                                    Name       = itemCurrency.name,
                                    Code       = itemCurrency.code,
                                    Symbol     = itemCurrency.symbol,
                                    IsEnabled  = true,
                                    CreatedUtc = DateTime.UtcNow,
                                    CreatedBy  = model.AltId
                                });
                            }
                            Contracts.DataModels.CountryCurrencyMapping countryCurrencyMapping = _countryCurrencyMappingRepository.GetByContryAndCurrencyId(country.Id, currency.Id);
                            if (countryCurrencyMapping == null)
                            {
                                countryCurrencyMapping = _countryCurrencyMappingRepository.Save(new Contracts.DataModels.CountryCurrencyMapping
                                {
                                    CountryId  = country.Id,
                                    CurrencyId = currency.Id,
                                    IsEnabled  = true,
                                    CreatedUtc = DateTime.UtcNow,
                                    CreatedBy  = model.AltId
                                });
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }

                    foreach (var itemLanguage in itemCountry.languages)
                    {
                        try
                        {
                            Contracts.DataModels.Language language = _languageRepository.GetByName(itemLanguage.name);
                            if (language == null)
                            {
                                language = _languageRepository.Save(new Contracts.DataModels.Language
                                {
                                    Name       = itemLanguage.name,
                                    IsEnabled  = true,
                                    CreatedUtc = DateTime.UtcNow,
                                    CreatedBy  = model.AltId
                                });
                            }
                            Contracts.DataModels.CountryLanguageMapping countryLanguageMapping = _countryLanguageMappingRepository.GetByContryAndLanguageId(country.Id, language.Id);
                            if (countryLanguageMapping == null)
                            {
                                countryLanguageMapping = _countryLanguageMappingRepository.Save(new Contracts.DataModels.CountryLanguageMapping
                                {
                                    CountryId  = country.Id,
                                    LanguageId = language.Id,
                                    IsEnabled  = true,
                                    CreatedUtc = DateTime.UtcNow,
                                    CreatedBy  = model.AltId
                                });
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }
            _activityHelper.SaveActivity("Country Data Synchronization", "You have performed country data sync opertion on " + DateTime.UtcNow.ToString() + " (GMT)", model.AltId);
            return(true);
        }