internal static bool CodeExists(QpPlugin plugin) { return(QPContext.EFContext.PluginSet.Any( n => n.Code == plugin.Code && n.Id != plugin.Id && (!plugin.AllowMultipleInstances || !n.AllowMultipleInstances || n.InstanceKey == plugin.InstanceKey) )); }
public QpPlugin Update(QpPlugin plugin) { if (plugin.OldContract != plugin.Contract) { QpPluginRepository.CreateVersion(plugin); } return(QpPluginRepository.UpdateProperties(plugin)); }
public static QpPluginVersion CreateVersionFromPlugin(QpPlugin parent) => new QpPluginVersion { Plugin = parent, PluginId = parent.Id, Contract = parent.Contract, Modified = parent.Modified, LastModifiedBy = parent.LastModifiedBy, LastModifiedByUser = parent.LastModifiedByUser };
internal static QpPlugin SaveProperties(QpPlugin plugin) { var entities = QPContext.EFContext; DateTime timeStamp; using (var scope = new QPConnectionScope()) { timeStamp = Common.GetSqlDate(scope.DbConnection); var dal = MapperFacade.QpPluginMapper.GetDalObject(plugin); dal.LastModifiedBy = QPContext.CurrentUserId; dal.Modified = timeStamp; dal.Created = timeStamp; entities.Entry(dal).State = EntityState.Added; DefaultRepository.TurnIdentityInsertOn(EntityTypeCode.QpPlugin, plugin); if (plugin.ForceId != 0) { dal.Id = plugin.ForceId; } entities.SaveChanges(); DefaultRepository.TurnIdentityInsertOff(EntityTypeCode.QpPlugin); Common.CreatePluginTables(scope.DbConnection, (int)dal.Id); var forceIds = plugin.ForceFieldIds == null ? null : new Queue <int>(plugin.ForceFieldIds); var fields = new List <PluginFieldDAL>(); foreach (var field in plugin.Fields) { var dalField = MapperFacade.QpPluginFieldMapper.GetDalObject(field); dalField.PluginId = dal.Id; if (forceIds != null) { dalField.Id = forceIds.Dequeue(); } entities.Entry(dalField).State = EntityState.Added; fields.Add(dalField); } DefaultRepository.TurnIdentityInsertOn(EntityTypeCode.QpPluginField); entities.SaveChanges(); DefaultRepository.TurnIdentityInsertOff(EntityTypeCode.QpPluginField); foreach (var field in fields) { Common.AddPluginColumn(scope.DbConnection, field); } return(MapperFacade.QpPluginMapper.GetBizObject(dal)); } }
public static void CreateVersion(QpPlugin plugin) { var entities = QPContext.EFContext; var version = new QpPluginVersion { Contract = plugin.OldContract, Modified = plugin.OldModified, LastModifiedBy = plugin.OldLastModifiedBy, Created = DateTime.Now, Plugin = plugin, PluginId = plugin.Id }; var dal = MapperFacade.QpPluginVersionMapper.GetDalObject(version); entities.Entry(dal).State = EntityState.Added; entities.SaveChanges(); }
public QpPlugin Save(QpPlugin plugin) => QpPluginRepository.SaveProperties(plugin);
public QpPlugin New(int parentId) => QpPlugin.Create();