Esempio n. 1
0
        /// <summary>
        /// Удаляет лишние проекты.
        /// </summary>
        /// <param name="projects"></param>
        /// <returns></returns>
        public int DeleteGroups(IEnumerable <XmlProject> projects)
        {
            var syncProjects = GetSyncProjectGroups(projects);

            int counter = 0;

            foreach (var sync in syncProjects)
            {
                var dropGroups = SyncHelper.GetItemsForDelete(
                    sync.XmlObjects,
                    sync.ApiObjects,
                    g => GetGroupNameKey(g.Name),
                    g => GetGroupNameKey(g.GroupName));

                foreach (var group in dropGroups)
                {
                    var request = _requestBuilder.GetDeleteKeywordGroupRequest(
                        sync.ParentId, group.Id);

                    var res = _client.GetBoolResult(request);

                    if (res)
                    {
                        _apiGroups.Remove(group);
                        ++counter;
                    }
                }
            }

            return(counter);
        }
Esempio n. 2
0
        /// <summary>
        /// Удаляет лишние ключевые фразы.
        /// </summary>
        /// <param name="projects"></param>
        /// <returns></returns>
        public int DeleteKeywords(IEnumerable <XmlProject> projects)
        {
            var syncGroupPair = GetSyncGroupsPair(projects);

            int counter = 0;

            foreach (var groupPair in syncGroupPair)
            {
                var dropWords = SyncHelper.GetItemsForDelete(
                    groupPair.Item1.Keywords,
                    groupPair.Item2.Keywords,
                    w => GetPhraseKey(w.Phrase),
                    w => GetPhraseKey(w.Phrase))
                                .ToList();

                foreach (var word in dropWords)
                {
                    var request = _requestBuilder.GetDeleteKeywordRequest(word.Id);
                    var res     = _client.GetBoolResult(request);

                    if (res)
                    {
                        groupPair.Item2.RemoveKeyword(word);
                        ++counter;
                    }
                }
            }

            return(counter);
        }
Esempio n. 3
0
        /// <summary>
        /// Удаляет лишние проекты.
        /// </summary>
        /// <param name="projects"></param>
        /// <returns></returns>
        public int DeleteProjects(IEnumerable <XmlProject> projects)
        {
            var dropProjects = SyncHelper.GetItemsForDelete(
                projects, _apiProjects, p => GetSiteKey(p.Site), p => GetSiteKey(p.Site))
                               .ToList();

            int counter = 0;

            foreach (var proj in dropProjects)
            {
                var request = _requestBuilder.GetDeleteProjectRequest(proj.Id);
                var res     = _client.GetBoolResult(request);

                if (res)
                {
                    _apiGroups.RemoveAll(g => g.ProjectId == proj.Id);
                    _apiProjects.Remove(proj);
                    ++counter;
                }
            }

            return(counter);
        }