public static LocationContext ResolveLocationContext(DataProxyBase dataProxy, BaseView viewSettings, IDictionary<string, string> parameters)
        {
            int? locationId = null;
            string locationSiteUrl = null;

            // First look for location context in request parameters
            if (parameters != null && parameters.ContainsKey("LocationContext") && !string.IsNullOrEmpty(parameters["LocationContext"]))
                locationId = int.Parse(parameters["LocationContext"]);
            else
            {
                if (viewSettings != null)
                {
                    // Next look at module instance setting
                    var locationContextSetting = viewSettings.GetSettingValue("LocationContext", null);

                    if (!string.IsNullOrEmpty(locationContextSetting))
                        locationId = int.Parse(locationContextSetting);
                }
            }

            // Get full context using locationId or request URL
            //if (viewSettings != null && parameters != null)
            //{
            //	locationId = dataProxy.LocationContext.Id;
            //	locationSiteUrl = dataProxy.LocationContext.SiteUrl;
            //}
            //else
            //{
                var request = new ResolveOrgUnitContextRequest() { ItemUrl = ServiceContext.RequestReferrerUrl, OrgUnitId = locationId };
                var response = dataProxy.ProcessRequest<ResolveOrgUnitContextResponse>(request);

                locationId = response.OrgUnitId;
                locationSiteUrl = response.OrgUnitSiteUrl;
            //}

            return new LocationContext(locationId, locationSiteUrl);
        }
        public LocationContext ResolveLocationContext(ConvertServiceRequest request)
        {
            if (request.Parameters.ContainsKey("LocationId") && !string.IsNullOrEmpty(request.Parameters["LocationId"]))
            {
                var locationId = int.Parse(request.Parameters["LocationId"]);

                if (locationId > 0)
                {
                    var contextRequest = new ResolveOrgUnitContextRequest() { ItemUrl = ServiceContext.RequestReferrerUrl, OrgUnitId = locationId };
                    var contextResponse = ProcessRequest<ResolveOrgUnitContextResponse>(contextRequest);

                    return new LocationContext(contextResponse.OrgUnitId, contextResponse.OrgUnitSiteUrl);
                }
            }

            return new LocationContext(null, null);
        }
 /// <summary>
 /// Determines whether the specified <see cref="ResolveOrgUnitContextRequest" /> is equal to this instance.
 /// </summary>
 /// <param name="other">The other.</param>
 /// <returns></returns>
 public bool Equals(ResolveOrgUnitContextRequest other)
 {
     return base.Equals(other) && ItemId == other.ItemId && string.Equals(ItemUrl, other.ItemUrl) && OrgUnitId == other.OrgUnitId;
 }