/// <summary>
        /// Gets list of Cities
        /// </summary>
        /// <returns></returns>
        public Dtos.GetLocationOutput GetCities(CreditsHero.Common.Dtos.GetCriteriaInput input, string state)
        {
            if (state != String.Empty)
            {
                #region CreditsHero CriteriaValues
                var creditsHeroFormat = String.Format("{0}api/services/app/Criteria/GetCriteriaValues", System.Configuration.ConfigurationSettings.AppSettings["creditsHero:WebServiceApiPrefix"]);
                //var creditsHeroFormat = "http://creditshero.azurewebsites.net/api/services/cd/Criteria/GetCriteriaValues";
                //var creditsHeroFormat = "http://localhost:6234/api/services/cd/Criteria/GetCriteriaValues";
                var timelineUrl = string.Format(creditsHeroFormat);
                CreditsHero.Common.Dtos.GetCriteriaValuesOutput criteriaOutput = new CreditsHero.Common.Dtos.GetCriteriaValuesOutput();

                //Serialize object to JSON
                MemoryStream jsonStream = new MemoryStream();
                CreditsHero.Common.Dtos.GetCriteriaInput criteriaInput = new CreditsHero.Common.Dtos.GetCriteriaInput()
                {
                    CompanyId  = input.CompanyId,
                    CriteriaId = input.CriteriaId
                };
                string jsonData  = Newtonsoft.Json.JsonConvert.SerializeObject(criteriaInput);
                byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);

                HttpWebRequest creditsHeroRequest = (HttpWebRequest)WebRequest.Create(timelineUrl);
                creditsHeroRequest.ContentType   = "application/json;charset=utf-8";
                creditsHeroRequest.ContentLength = byteArray.Length;
                creditsHeroRequest.Method        = "POST";
                Stream newStream = creditsHeroRequest.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);
                newStream.Close();
                WebResponse timeLineResponse = creditsHeroRequest.GetResponse();
                using (timeLineResponse)
                {
                    using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                    {
                        var results = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(reader.ReadToEnd());
                        criteriaOutput.CriteriaValues = new List <CreditsHero.Common.Dtos.CriteriaValuesDto>();
                        foreach (var item in results.result.criteriaValues)
                        {
                            criteriaOutput.CriteriaValues.Add(
                                Newtonsoft.Json.JsonConvert.DeserializeObject <CreditsHero.Common.Dtos.CriteriaValuesDto>(item.ToString()));
                        }
                    }
                }
                #endregion

                var cities = _locationRepository.GetCities(state);

                List <Dtos.LocationDto> locations = new List <Dtos.LocationDto>();

                locations = new Dtos.GetLocationOutput
                {
                    Locations = Mapper.Map <List <Dtos.LocationDto> >(cities)
                }.Locations;

                var query = (from cv in criteriaOutput.CriteriaValues
                             from l in locations
                             where l.City == cv.Name
                             select new Dtos.LocationDto
                {
                    City = l.City,
                    CreationTime = l.CreationTime,
                    CreatorUserId = l.CreatorUserId,
                    State = l.State,
                    LastModificationTime = l.LastModificationTime,
                    LastModifierUserId = l.LastModifierUserId,
                    Id = cv.Id,
                    CreditCount = cv.CreditCount,
                    CriteriaRefId = cv.CriteriaRefId,
                    Name = cv.Name
                }).ToList <Dtos.LocationDto>();

                return(new Dtos.GetLocationOutput()
                {
                    Locations = query
                });
            }
            else
            {
                return(new Dtos.GetLocationOutput()
                {
                    Locations = new List <Dtos.LocationDto>()
                });
            }
        }
        /// <summary>
        /// Gets list of Cities
        /// </summary>
        /// <returns></returns>
        public Dtos.GetLocationOutput GetCities(CreditsHero.Common.Dtos.GetCriteriaInput input, string state)
        {
            if (state != String.Empty)
            {
                #region CreditsHero CriteriaValues
                var creditsHeroFormat = String.Format("{0}api/services/app/Criteria/GetCriteriaValues", System.Configuration.ConfigurationSettings.AppSettings["creditsHero:WebServiceApiPrefix"]);
                //var creditsHeroFormat = "http://creditshero.azurewebsites.net/api/services/cd/Criteria/GetCriteriaValues";
                //var creditsHeroFormat = "http://localhost:6234/api/services/cd/Criteria/GetCriteriaValues";
                var timelineUrl = string.Format(creditsHeroFormat);
                CreditsHero.Common.Dtos.GetCriteriaValuesOutput criteriaOutput = new CreditsHero.Common.Dtos.GetCriteriaValuesOutput();

                //Serialize object to JSON
                MemoryStream jsonStream = new MemoryStream();
                CreditsHero.Common.Dtos.GetCriteriaInput criteriaInput = new CreditsHero.Common.Dtos.GetCriteriaInput()
                {
                    CompanyId = input.CompanyId,
                    CriteriaId = input.CriteriaId
                };
                string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(criteriaInput);
                byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);

                HttpWebRequest creditsHeroRequest = (HttpWebRequest)WebRequest.Create(timelineUrl);
                creditsHeroRequest.ContentType = "application/json;charset=utf-8";
                creditsHeroRequest.ContentLength = byteArray.Length;
                creditsHeroRequest.Method = "POST";
                Stream newStream = creditsHeroRequest.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);
                newStream.Close();
                WebResponse timeLineResponse = creditsHeroRequest.GetResponse();
                using (timeLineResponse)
                {
                    using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                    {
                        var results = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
                        criteriaOutput.CriteriaValues = new List<CreditsHero.Common.Dtos.CriteriaValuesDto>();
                        foreach (var item in results.result.criteriaValues)
                        {
                            criteriaOutput.CriteriaValues.Add(
                                Newtonsoft.Json.JsonConvert.DeserializeObject<CreditsHero.Common.Dtos.CriteriaValuesDto>(item.ToString()));
                        }
                    }
                }
                #endregion

                var cities = _locationRepository.GetCities(state);

                List<Dtos.LocationDto> locations = new List<Dtos.LocationDto>();

                locations = new Dtos.GetLocationOutput
                {
                    Locations = Mapper.Map<List<Dtos.LocationDto>>(cities)
                }.Locations;

                var query = (from cv in criteriaOutput.CriteriaValues
                             from l in locations
                             where l.City == cv.Name
                             select new Dtos.LocationDto
                             {
                                 City = l.City,
                                 CreationTime = l.CreationTime,
                                 CreatorUserId = l.CreatorUserId,
                                 State = l.State,
                                 LastModificationTime = l.LastModificationTime,
                                 LastModifierUserId = l.LastModifierUserId,
                                 Id = cv.Id,
                                 CreditCount = cv.CreditCount,
                                 CriteriaRefId = cv.CriteriaRefId,
                                 Name = cv.Name
                             }).ToList<Dtos.LocationDto>();

                return new Dtos.GetLocationOutput() { Locations = query };
            }
            else
            {
                return new Dtos.GetLocationOutput() { Locations = new List<Dtos.LocationDto>() };
            }
        }
 public MemberLocationsViewModel()
 {
     Locations = new GetLocationOutput();
     States = new GetLocationOutput();
     Cities = new GetLocationOutput();
 }