internal AssetFactory(IDataLayerInternal dataLayer, Project currentProject, ILoggerFactory loggerFactory, IEnumerable<AttributeInfo> attributesToQuery) {
            this.dataLayer = dataLayer;
            this.currentProject = currentProject;
            this.attributesToQuery = attributesToQuery;

            logger = loggerFactory.GetLogger("AssetFactory");

            typeMappings.Add(Entity.DefectType, dataLayer.DefectType);
            typeMappings.Add(Entity.TaskType, dataLayer.TaskType);
            typeMappings.Add(Entity.TestType, dataLayer.TestType);
        }
        public void HandleProjectSelected(Project project) {
            if(Settings.SelectedProjectId != project.Id) {
                Logger.Debug("Selected project is changed, saving new Project ID");
                Settings.SelectedProjectId = project.Id;
                Settings.StoreSettings();
                DataLayer.CurrentProject = project;
                EventDispatcher.Notify(this, new ModelChangedArgs(EventReceiver.WorkitemView, EventContext.WorkitemCacheInvalidated));
                View.RefreshProperties();
            }

            EventDispatcher.Notify(this, new ModelChangedArgs(EventReceiver.ProjectView, EventContext.ProjectSelected));
        }
 public static Project CreateProject(Asset asset, Project parent) {
     return new Project(asset, parent);
 }
 internal Project(Asset asset, Project parent) : this(asset) {
     this.parent = parent;
 }