public int SaveBlob(IBlobDb blobDb, int? transactionNumber = null) { if (blobDb.InstanceId != _instanceId) throw new Exception("Attempt to save Blob with wrong InstanceId"); Blob record; var recordOld = new Blob(); if (blobDb.BlobId == 0) { record = new Blob(); Context.AddToBlobs(record); } else { record = Context.Blobs.Where(r => r.BlobId == blobDb.BlobId).First(); ReflectionHelper.CopyAllProperties(record, recordOld); } record.InstanceId = _instanceId; record.Data = blobDb.Data; Context.SaveChanges(); if (blobDb.BlobId == 0) { blobDb.BlobId = record.BlobId; LogToDb(UserId, "Blobs", record.BlobId, "I", XmlHelper.GetObjectXml(record), transactionNumber); } else { LogToDb(UserId, "Blobs", record.BlobId, "U", XmlHelper.GetDifferenceXml(recordOld, record), transactionNumber); } return blobDb.BlobId; }
protected AbstractEngine(IBlobDb db, IBlobUi io) { this.Db = db; this.Io = io; this.VerbosityLevel = OutputEventsConstants.MessageIdStatus; }
public Engine(IBlobDb db, IBlobUi io) : base(db, io) { }