public async Task <IRepositoryActionResult> GetAllCountriesAreas()
        {
            try
            {
                var countriesSource = await UnitOfWork.Repository.GetAll(country => country.Areas);

                var countries = countriesSource.ToList();
                if (!countries.Any())
                {
                    return(RepositoryActionResult.GetRepositoryActionResult(status: RepositoryActionStatus.NotFound,
                                                                            message: "No Data"));
                }
                var countriesDetailsDtos = Mapper.Map <IEnumerable <Country>, IEnumerable <CountryAreasDto> >(countries);
                return(RepositoryActionResult.GetRepositoryActionResult(countriesDetailsDtos, RepositoryActionStatus.Ok));
            }
            catch (Exception e)
            {
                return(RepositoryActionResult.GetRepositoryActionResult(exception: e, message: "Something went error", status: RepositoryActionStatus.Error));
            }
        }
        public async Task <IRepositoryActionResult> UpdateCountry(CountryDto country)
        {
            try
            {
                if (country == null)
                {
                    return(RepositoryActionResult.GetRepositoryActionResult(message: "Invalid Data"));
                }
                var newCountry = Mapper.Map <CountryDto, Country>(country);
                UnitOfWork.Repository.Update(newCountry);
                var isSaved = await UnitOfWork.SaveChanges() > 0;

                if (isSaved)
                {
                    return(RepositoryActionResult.GetRepositoryActionResult(result: country,
                                                                            status: RepositoryActionStatus.Updated, message: "Saved Successfully"));
                }
                return(RepositoryActionResult.GetRepositoryActionResult(status: RepositoryActionStatus.NothingModified, message: "Save Failed"));
            }
            catch (Exception e)
            {
                return(RepositoryActionResult.GetRepositoryActionResult(exception: e, message: "Something went error", status: RepositoryActionStatus.Error));
            }
        }