예제 #1
0
        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;
        }
예제 #2
0
 protected AbstractEngine(IBlobDb db, IBlobUi io)
 {
     this.Db = db;
     this.Io = io;
     this.VerbosityLevel = OutputEventsConstants.MessageIdStatus;
 }
예제 #3
0
파일: Engine.cs 프로젝트: byclops/softuni
 public Engine(IBlobDb db, IBlobUi io)
     : base(db, io)
 {
 }