/// <summary>
        /// Geocode order, using local geocoder.
        /// </summary>
        /// <param name="order">Order to geocode.</param>
        /// <param name="useLocalAsPrimary">If true and record exists in storage, than dont use server geocoder.</param>
        /// <param name="includeDisabledLocators">Is need to add candidates from disabled locators.</param>
        /// <returns>Candidates list.</returns>
        private static List <AddressCandidate> _DoLocalOrderGeocode(Order order, bool useLocalAsPrimary, bool includeDisabledLocators)
        {
            LocalGeocoder localGeocoder = new LocalGeocoder(App.Current.Geocoder, App.Current.NameAddressStorage);

            NameAddress nameAddress = new NameAddress();

            nameAddress.Name    = order.Name;
            nameAddress.Address = (Address)order.Address.Clone();

            List <AddressCandidate> candidates = new List <AddressCandidate>();

            AddressCandidate candidateFromLocalGeocoder = localGeocoder.Geocode(nameAddress);

            if (useLocalAsPrimary && candidateFromLocalGeocoder != null)
            {
                candidates.Add(candidateFromLocalGeocoder);
            }
            else
            {
                AddressCandidate[] candidatesArray = localGeocoder.GeocodeCandidates(nameAddress, includeDisabledLocators);
                candidates.AddRange(candidatesArray);
            }

            return(candidates);
        }
        /// <summary>
        /// Geocode order, using local geocoder.
        /// </summary>
        /// <param name="order">Order to geocode.</param>
        /// <param name="useLocalAsPrimary">If true and record exists in storage, than dont use server geocoder.</param>
        /// <param name="includeDisabledLocators">Is need to add candidates from disabled locators.</param>
        /// <returns>Candidates list.</returns>
        private static List<AddressCandidate> _DoLocalOrderGeocode(Order order, bool useLocalAsPrimary, bool includeDisabledLocators)
        {
            LocalGeocoder localGeocoder = new LocalGeocoder(App.Current.Geocoder, App.Current.NameAddressStorage);

            NameAddress nameAddress = new NameAddress();
            nameAddress.Name = order.Name;
            nameAddress.Address = (Address)order.Address.Clone();

            List<AddressCandidate> candidates = new List<AddressCandidate>();

            AddressCandidate candidateFromLocalGeocoder = localGeocoder.Geocode(nameAddress);

            if (useLocalAsPrimary && candidateFromLocalGeocoder != null)
            {
                candidates.Add(candidateFromLocalGeocoder);
            }
            else
            {
                AddressCandidate[] candidatesArray = localGeocoder.GeocodeCandidates(nameAddress, includeDisabledLocators);
                candidates.AddRange(candidatesArray);
            }

            return candidates;
        }