using Code.Security; using Code.Utils; using EnVisage; using EnVisage.Models; using PrevuWebAPI.Code.Managers; using System; using System.Collections.Generic; using System.Data.Entity.Core.EntityClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PrevuWebAPI.Code { public static class PrevuEFContext { public static EnVisageEntities PrevuEntity { get { string Token = RESTAuthorizeAttribute.Token(); if (string.IsNullOrEmpty(Token)) return new EnVisageEntities(); var ClientInfo = APIClientInformationCallManager.ClientInfo; if (ClientInfo == null) return new EnVisageEntities(); var connectionInfo = ClientInfo.DataConnections.Where(x => x.ConnectionType == (int) DBConnectionType.ENTITY).FirstOrDefault(); if (connectionInfo != null) { var entityBuilder = new EntityConnectionStringBuilder(); entityBuilder.Provider = "System.Data.SqlClient"; entityBuilder.ProviderConnectionString = connectionInfo.DecryptedConnectionString(); entityBuilder.Metadata = @"res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl"; return new EnVisageEntities(entityBuilder.ConnectionString); } return new EnVisageEntities(); } } } }