Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Database
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
Coscine
backend
libraries
Database
Merge requests
!59
Topic/672 toggle share point
Code
Review changes
Check out branch
Open in Workspace
Download
Patches
Plain diff
Expand sidebar
Merged
Topic/672 toggle share point
Topic/672-toggleSharePoint
into
Product/178-toggleSharePoint
Overview
0
Commits
18
Pipelines
3
Changes
16
Merged
L. Ellenbeck
requested to merge
Topic/672-toggleSharePoint
into
Product/178-toggleSharePoint
5 years ago
Overview
0
Commits
18
Pipelines
3
Changes
16
coscine/issues#672
0
0
Merge request reports
Compare
Product/178-toggleSharePoint
version 2
1030772e
5 years ago
version 1
25189cbc
5 years ago
Product/178-toggleSharePoint (base)
and
latest version
latest version
04eee4c2
18 commits,
5 years ago
version 2
1030772e
13 commits,
5 years ago
version 1
25189cbc
12 commits,
5 years ago
16 files
+
329
−
23
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
16
src/Database/Models/ActivatedFeaturesModel.cs
0 → 100644
+
130
−
0
View file @ 04eee4c2
Edit in single-file editor
Open in Web IDE
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
();
});
}
}
}
Loading