private Guid?GetLastTransactionId() { using (IUnitOfWork uow = Manager.CreateUnitOfWork()) { uow.MapperFactory = this.mapperFactory; CommunicationPackageRepository repo = new CommunicationPackageRepository(uow); return(repo.GetLastReceivedTransacionId(repo.GetDatabaseId())); } }
/// <summary> /// Executes the communication package. /// </summary> /// <param name="communicationPackage">The communication package to execute.</param> /// <returns> /// <c>true</c> if execution succeeded; otherwise, <c>false</c> /// </returns> public override bool ExecutePackage(ICommunicationPackage communicationPackage) { SessionManager.VolatileElements.DeferredTransactionId = communicationPackage.XmlData.DeferredTransactionId; SessionManager.VolatileElements.LocalTransactionId = this.LocalTransactionId; try { XDocument commPkg = XDocument.Parse(communicationPackage.XmlData.Content); var commercialDocumentIdElement = commPkg.Root.Element("id"); if (commercialDocumentIdElement == null || commercialDocumentIdElement.Value.Length == 0) { throw new InvalidDataException("Invalid xml data."); } Guid commercialDocumentId = new Guid(commercialDocumentIdElement.Value); var pkgRepo = new CommunicationPackageRepository(this.UnitOfWork); this.repository.UnrelateCommercialDocument(commercialDocumentId, this.LocalTransactionId, communicationPackage.XmlData.DeferredTransactionId, pkgRepo.GetDatabaseId()); return(true); } catch (SqlException e) { this.Log.Error("UnrelateCommercialDocument:ExecutePackage " + e.ToString()); return(false); } }