private void UpdateProjectEditInfo(ProjectItemsEventArgs e)
        {
            var projectIds = e.ProjectItems.Select(x => x.ProjectID).Distinct();

            foreach (var projectId in projectIds)
            {
                UpdateProjectEditInfo(projectId);
            }
        }
 private void ProjectRepository_ProjectItemsDeleted(object sender, ProjectItemsEventArgs e)
 {
     UpdateProjectEditInfo(e);
 }
        private void ProjectRepository_ProjectItemsSaved(object sender, ProjectItemsEventArgs e)
        {
            var projectId = e.ProjectItems.First().ProjectID;

            _experimentProjectIdentifier.Value.InvalidateCache(projectId.ToString());
        }
        private void ProjectRepositoryOnProjectItemsSaved(object sender, ProjectItemsEventArgs e)
        {
            foreach (var item in e.ProjectItems)
            {
                // continue if the project item does not belong to a project that has our translation marker
                if (!item.Category.Equals("translate", StringComparison.OrdinalIgnoreCase))
                    continue;

                // get the project from the project repository
                var project = _projectRepository.Get(item.ProjectID);

                // create a new notification and post it
                _notifier.PostNotificationAsync(CreateNotification(project, item)).Wait();
            }
        }