Skip to content
Snippets Groups Projects
Select Git revision
  • 04d7a206349f3b5ae5aa5efed5ac39bfe39039b3
  • main default protected
  • celebAHQ
  • ddpm-diffusers
4 results

unet_unconditional_diffusion.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ActivatedFeaturesModel.cs 4.33 KiB
    using System;
    using System.Linq;
    using System.Linq.Expressions;
    using Coscine.Database.DataModel;
    using LinqToDB;
    using Coscine.Database.Util;
    using LinqKit;
    using System.Collections.Generic;
    
    namespace Coscine.Database.Models
    {
        public class ActivatedFeaturesModel : DatabaseModel<ActivatedFeature>
        {
            public override Expression<Func<ActivatedFeature, Guid>> GetIdFromObject()
            {
                return databaseObject => databaseObject.Id;
            }
    
            public override ITable<ActivatedFeature> GetITableFromDatabase(CoscineDB db)
            {
                return db.ActivatedFeatures;
            }
    
            public override void SetObjectId(ActivatedFeature databaseObject, Guid id)
            {
                databaseObject.Id = id;
            }
    
            public bool IsFeatureActive(Guid projectId, string sharepointId)
            {
                return GetAllWhere((activatedFeatures) => activatedFeatures.ProjectId == projectId
                            && activatedFeatures.Feature.SharepointId == sharepointId).Count() >= 1;
            }
    
            public bool IsFeatureActive(Guid projectId, Guid featureId)
            {
                return GetAllWhere((activatedFeatures) => activatedFeatures.ProjectId == projectId
                            && activatedFeatures.FeatureId == featureId).Count() >= 1;
            }
    
            public void ActivateFeature(Guid projectId, Guid featureId)
            {
                if (!IsFeatureActive(projectId, featureId))
                {
                    Insert(new ActivatedFeature
                        {
                            ProjectId = projectId,
                            FeatureId = featureId
                        });
                }
            }
    
            public void DeactivateFeature(Guid projectId, Guid featureId)
            {
                if (IsFeatureActive(projectId, featureId))
                {
                    foreach(var feature in GetAllWhere((activatedFeatures) => activatedFeatures.FeatureId == featureId
                            && activatedFeatures.ProjectId == projectId)) {
                        Delete(feature);
                    }
                    
                }
            }
    
            public void ActivateAllFeatures(Project project)
            {
                ActivateAllFeatures(project.Id);
            }
    
            public void ActivateAllFeatures(Guid projectId)
            {
                foreach (var feature in GetInactiveFeatures(projectId))
                {
                    ActivateFeature(projectId, feature.Id);
                }
            }
            public void DeactivateAllFeatures(Project project)
            {
                DeactivateAllFeatures(project.Id);
            }
    
            public void DeactivateAllFeatures(Guid projectId)
            {
                foreach (var feature in GetActiveFeatures(projectId))
                {
                    DeactivateFeature(projectId, feature.Id);
                }
            }
    
            public IEnumerable<Feature> GetInactiveFeatures(Project project)
            {
                return GetInactiveFeatures(project.Id);
            }
    
            public IEnumerable<Feature> GetInactiveFeatures(Guid projectId)
            {
                return DatabaseConnection.ConnectToDatabase((db) =>
                {
                    return (
                        from features in db.Features
                        where !(
                            from activatedFeatures in db.ActivatedFeatures
                            join feature in db.Features on activatedFeatures.FeatureId equals feature.Id
                            join project in db.Projects on activatedFeatures.ProjectId equals project.Id
                            where project.Id == projectId
                            select feature
                        ).Contains(features)
                        select features).Distinct().ToList();
                });
            }
    
            public IEnumerable<Feature> GetActiveFeatures(Project project)
            {
                return GetActiveFeatures(project.Id);
            }
    
            public IEnumerable<Feature> GetActiveFeatures(Guid projectId)
            {
                return DatabaseConnection.ConnectToDatabase((db) =>
                {
                    return (
                        from activatedFeatures in db.ActivatedFeatures
                        join feature in db.Features on activatedFeatures.FeatureId equals feature.Id
                        join project in db.Projects on activatedFeatures.ProjectId equals project.Id
                        where project.Id == projectId
                        select feature).Distinct().ToList();
                });
            }
        }
    }