コード例 #1
0
ファイル: LoadService.cs プロジェクト: romvs/IpGeoBase
        /// <summary>
        /// Обновляет или создает диапазон ip-адресов с указанными данными
        /// </summary>
        /// <param name="start">Начало диапазона ip-адресов</param>
        /// <param name="end">Конец диапазона ip-адресов</param>
        /// <param name="description">Интервал ip-адресов в понятном виде</param>
        /// <param name="country">Двухсимвольный код страны</param>
        /// <param name="location">Географическая локация</param>
        /// <returns></returns>
        public Range UpdateOrCreateRange(long start, long end, string description, string country, Location location)
        {
            Range range = RangeRepository.FindByStartAndEnd(start, end);

            if (range == null)
            {
                range = new Range()
                {
                    Start = start,
                    End = end,
                    Description = description,
                    Country = country,
                    Location = location
                };

                RangeRepository.Create(range);
            }
            else if ((range.Description != description) || (range.Country != country) || (range.Location != location))
            {
                range.Description = description;
                range.Country = country;
                range.Location = location;

                RangeRepository.Save(range);
            }

            return range;
        }
コード例 #2
0
ファイル: TargetService.cs プロジェクト: romvs/IpGeoBase
        /// <summary>
        /// Удаляет из цели правило выбора географической локации
        /// </summary>
        /// <param name="target">Цель геолокации</param>
        /// <param name="location">Географическая локация</param>
        public void RemoveLocationFromTarget(Target target, Location location)
        {
            LocationRule rule = LocationRuleRepository.FindByTargetAndLocation(target, location);

            if (rule != null)
            {
                LocationRuleRepository.Delete(rule);
            }
        }
コード例 #3
0
ファイル: LoadService.cs プロジェクト: romvs/IpGeoBase
        /// <summary>
        /// Обновляет или создает географическую локацию с указанными данными
        /// </summary>
        /// <param name="id">Идентификатор локации</param>
        /// <param name="name">Название локации</param>
        /// <param name="latitude">Герграфическая широта центра локации</param>
        /// <param name="longitude">Герграфическая долгота центра локации</param>
        /// <param name="region">Географический регион, в котором располагается локация</param>
        /// <returns></returns>
        public Location UpdateOrCreateLocation(Int32 id, string name, Decimal latitude,
            Decimal longitude, Region region)
        {
            Location location = LocationRepository.FindById(id);

            if (location == null)
            {
                location = new Location()
                {
                    Id = id,
                    Name = name,
                    Latitude = latitude,
                    Longitude = longitude,
                    RegionId = region.Id
                };

                LocationRepository.Create(location);
            }
            else if ((location.Name != name) || (location.Latitude != latitude) ||
                     (location.Longitude != latitude) || (location.RegionId != region.Id))
            {
                location.Name = name;
                location.Latitude = latitude;
                location.Longitude = longitude;
                location.RegionId = region.Id;

                LocationRepository.Save(location);
            }

            return location;
        }
コード例 #4
0
ファイル: TargetService.cs プロジェクト: romvs/IpGeoBase
        /// <summary>
        /// Добавляет к цели правило выбора географической локации
        /// </summary>
        /// <param name="target">Цель геолокации</param>
        /// <param name="location">Географическая локация</param>
        /// <param name="kind">Вид правила включения</param>
        public void AddLocationToTarget(Target target, Location location, RuleKind kind)
        {
            LocationRule rule = LocationRuleRepository.FindByTargetAndLocation(target, location);

            if (rule == null)
            {
                rule = new LocationRule()
                {
                    TargetId = target.Id,
                    LocationId = location.Id,
                    Kind = kind
                };

                LocationRuleRepository.Create(rule);
            }
            else if (rule.Kind != kind)
            {
                rule.Kind = kind;
                LocationRuleRepository.Save(rule);
            }
        }