EnVisageOnline/Main/Source/PrevuWebAPI/Code/PrevuEFContext.cs

42 lines
1.5 KiB
C#

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();
}
}
}
}