/// <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); } }
/// <summary> /// Удаляет из цели правило выбора географического региона /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="region">Географический регион</param> public void RemoveRegionFromTarget(Target target, Region region) { RegionRule rule = RegionRuleRepository.FindByTargetAndRegion(target, region); if (rule != null) { RegionRuleRepository.Delete(rule); } }
/// <summary> /// Удаляет из цели правило выбора географического округа /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="area">Географический округ</param> public void RemoveAreaFromTarget(Target target, Area area) { AreaRule rule = AreaRuleRepository.FindByTargetAndArea(target, area); if (rule != null) { AreaRuleRepository.Delete(rule); } }
/// <summary> /// Удаляет из цели правило выбора страны /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="country">Двухсимвольный код страны</param> public void RemoveCountryFromTarget(Target target, string country) { CountryRule rule = CountryRuleRepository.FindByTargetAndCountry(target, country); if (rule != null) { CountryRuleRepository.Delete(rule); } }
/// <summary> /// Создает или обновляет цель геолокации /// </summary> /// <param name="targetId">Идентификатор цели геолокации</param> /// <param name="name">Наименование центра геолокации</param> /// <returns></returns> public Target CreateOrUpdateTarget(Guid targetId, string name) { Target target = TargetRepository.FindById(targetId); if (target == null) { target = new Target() { Id = targetId, Name = name }; TargetRepository.Create(target); } else if (target.Name != name) { target.Name = name; TargetRepository.Save(target); } return target; }
/// <summary> /// Добавляет к цели правило выбора географического региона /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="region">Географический регион</param> /// <param name="kind">Вид правила включения</param> public void AddRegionToTarget(Target target, Region region, RuleKind kind) { RegionRule rule = RegionRuleRepository.FindByTargetAndRegion(target, region); if (rule == null) { rule = new RegionRule() { TargetId = target.Id, RegionId = region.Id, Kind = kind }; RegionRuleRepository.Create(rule); } else if (rule.Kind != kind) { rule.Kind = kind; RegionRuleRepository.Save(rule); } }
/// <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); } }
/// <summary> /// Добавляет к цели правило выбора страны /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="country">Двухсимвольный код страны</param> /// <param name="kind">Вид правила включения</param> public void AddCountryToTarget(Target target, string country, RuleKind kind) { CountryRule rule = CountryRuleRepository.FindByTargetAndCountry(target, country); if (rule == null) { rule = new CountryRule() { TargetId = target.Id, Country = country, Kind = kind }; CountryRuleRepository.Create(rule); } else if (rule.Kind != kind) { rule.Kind = kind; CountryRuleRepository.Save(rule); } }
/// <summary> /// Добавляет к цели правило выбора географического округа /// </summary> /// <param name="target">Цель геолокации</param> /// <param name="area">Географический округ</param> /// <param name="kind">Вид правила включения</param> public void AddAreaToTarget(Target target, Area area, RuleKind kind) { AreaRule rule = AreaRuleRepository.FindByTargetAndArea(target, area); if (rule == null) { rule = new AreaRule() { TargetId = target.Id, AreaId = area.Id, Kind = kind }; AreaRuleRepository.Create(rule); } else if (rule.Kind != kind) { rule.Kind = kind; AreaRuleRepository.Save(rule); } }