public void DeleteBranchGroup(BranchGroup branchGroup)
        {
            if (branchGroup == null)
                throw new ArgumentNullException("branchGroup");

            branchGroup.Deleted = true;
            UpdateBranchGroup(branchGroup);

            //set a ParentBranchGroup property of the children to 0
            var subbranchGroups = GetAllGroupsByParentGroupId(branchGroup.Id);
            foreach (var subbranchGroup in subbranchGroups)
            {
                subbranchGroup.ParentGroupId = 0;
                UpdateBranchGroup(subbranchGroup);
            }
        }
        protected void UpdateLocales(BranchGroup branchGroup, BranchGroupModel model)
        {
            foreach (var localized in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                               x => x.Name,
                                                               localized.Name,
                                                               localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                           x => x.Description,
                                                           localized.Description,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                           x => x.MetaKeywords,
                                                           localized.MetaKeywords,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                           x => x.MetaDescription,
                                                           localized.MetaDescription,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                           x => x.MetaTitle,
                                                           localized.MetaTitle,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(branchGroup,
                                                           x => x.SeName,
                                                           localized.SeName,
                                                           localized.LanguageId);
            }
        }
 public static BranchGroup ToEntity(this BranchGroupModel model, BranchGroup destination)
 {
     return Mapper.Map(model, destination);
 }
        public void UpdateBranchGroup(BranchGroup branchGroup)
        {
            if (branchGroup == null)
                throw new ArgumentNullException("branchGroup");

            //validate branchGroup hierarchy
            var parentBranchGroup = GetBranchGroupById(branchGroup.ParentGroupId);
            while (parentBranchGroup != null)
            {
                if (branchGroup.Id == parentBranchGroup.Id)
                {
                    branchGroup.ParentGroupId = 0;
                    break;
                }
                parentBranchGroup = GetBranchGroupById(parentBranchGroup.ParentGroupId);
            }

            _branchGroupRepository.Update(branchGroup);

            //cache
            _cacheManager.RemoveByPattern(GROUPS_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityUpdated(branchGroup);
        }
        public void InsertBranchGroup(BranchGroup branchGroup)
        {
            if (branchGroup == null)
                throw new ArgumentNullException("branchGroup");

            _branchGroupRepository.Insert(branchGroup);

            //cache
            _cacheManager.RemoveByPattern(GROUPS_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityInserted(branchGroup);
        }