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

evaluate.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ResourceModel.cs 2.11 KiB
    using Coscine.Api.Project.ReturnObjects;
    using Coscine.Database.Model;
    using LinqToDB;
    using System;
    using System.Linq;
    using System.Linq.Expressions;
    
    namespace Coscine.Api.Project.Models
    {
        public class ResourceModel : DatabaseModel<Resource>
        {
            public ResourceModel() : base(Program.Configuration)
            {
    
            }
    
            public Resource StoreFromObject(ResourceObject resourceObject)
            {
                Resource resource = new Resource()
                {
                    ExternalId = resourceObject.ExternalId,
                    Url = resourceObject.Url,
                    TypeId = resourceObject.Type.Id
                };
                resource.Type = new ResourceTypeModel().GetById(resourceObject.Type.Id);
                Insert(resource);
                return resource;
            }
    
            public bool OwnsResource(User user, Resource resource)
            {
                return DatabaseConnection.ConnectToDatabase((db) =>
                {
                    return (from relation in db.ProjectRoles
                            where relation.User == user
                                && relation.Role.DisplayName == "Owner"
                                && (relation.Project.ProjectResourceProjectIdIds != null && relation.Project.ProjectResourceProjectIdIds.
                                    Any((projectResource) => projectResource.Resource == resource))
                            select relation).Any();
                });
            }
    
            public override Expression<Func<Resource, Guid>> GetIdFromObject()
            {
                return databaseObject => databaseObject.Id;
            }
    
            public override ITable<Resource> GetITableFromDatabase(CoscineDB db)
            {
                return db.Resources;
            }
    
            public override void SetObjectId(Resource databaseObject, Guid Id)
            {
                databaseObject.Id = Id;
            }
    
            public int UpdateByObject(Resource resource, ResourceObject resourceObject)
            {
                resource.ExternalId = resourceObject.ExternalId;
                resource.TypeId = resourceObject.Type.Id;
                resource.Url = resourceObject.Url;
    
                return Update(resource);
            }
        }
    }