public CacheContributingObjectReader(ClientTransaction transaction, IClientSlotCache
     slotCache, ByteArrayBuffer reader)
 {
     _reader = reader;
     _transaction = transaction;
     _slotCache = slotCache;
 }
 public void AllowedMembers()
 {
     CheckAllowed(ctx => ctx.ClientTransaction, ClientTransaction.CreateRootTransaction());
     CheckAllowed(ctx => ctx.IsInvalid, true);
 }
Exemplo n.º 3
0
 private void CheckStateIsInvalid(DomainObject domainObject, ClientTransaction clientTransaction)
 {
     Assert.That(clientTransaction.IsInvalid(domainObject.ID), Is.True);
     Assert.That(domainObject.TransactionContext[clientTransaction].IsInvalid, Is.True);
     Assert.That(domainObject.TransactionContext[clientTransaction].State, Is.EqualTo(StateType.Invalid));
 }
Exemplo n.º 4
0
 public UnlockingCommandDecorator(IDataManagementCommand decoratedCommand, ClientTransaction transactionToBeUnlocked)
     : base(decoratedCommand)
 {
     _transactionToBeUnlocked = transactionToBeUnlocked;
 }
Exemplo n.º 5
0
        public override bool Execute(CommandActivity commandActivity)
        {
            //Set template reference for FF
            const string fileCaseFfTypeReferenceId = "589AFF8A-7737-40DE-BBA4-8FA2A3178058";
            const string incomingTypeVeReferenceId = "ABC5B6D0-6764-4801-AC36-7B42B80F63D3";

            var restoreCtxId = ApplicationContext.CurrentID;

            try
            {
                var sourceFileCase = (FileCase)commandActivity.WorkItem;

                if (sourceFileCase == null)
                {
                    throw new ActivityCommandException("").WithUserMessage(LocalizedUserMessages.NoFileCase
                                                                           .ToLocalizedName()
                                                                           .FormatWith(commandActivity));
                }

                if (!sourceFileCase.CanEdit(true))
                {
                    throw new ActivityCommandException("").WithUserMessage(LocalizedUserMessages.NotEditable
                                                                           .ToLocalizedName()
                                                                           .FormatWith(sourceFileCase));
                }

                //Read specialdata and document values
                //Null values handled via SpecialdataCalculatedProperty.ExpressionString
                var terminGs    = sourceFileCase.GetProperty("#LHIND_Mitbericht_TerminGs").ToString() ?? "";
                var datum       = sourceFileCase.GetProperty("#LHIND_Mitbericht_Datum").ToString() ?? "";
                var titelIdp    = sourceFileCase.GetProperty("#LHIND_Mitbericht_TitelIdp") ?? "";
                var bemerkungen = sourceFileCase.GetProperty("#LHIND_Mitbericht_Bemerkungen") ?? "";

                var ffAmt = (sourceFileCase.GetProperty("#LHIND_Mitbericht_FederführendesAmt") == null)
                    ? ""
                    : (sourceFileCase.GetProperty("#LHIND_Mitbericht_FederführendesAmt") as SpecialdataCatalogValue)
                            .DisplayName;

                var mbAemter = (sourceFileCase.GetProperty("#LHIND_Mitbericht_MitbeteiligtFdListe") == null) ? "" :
                               String.Join(", ",
                                           (sourceFileCase.GetProperty("#LHIND_Mitbericht_MitbeteiligtFdListe") as SpecialdataListPropertyValueCollection).ToList()
                                           .Select(m => m.WrappedValue.GetProperty("DisplayName"))
                                           .ToList()
                                           .ToArray());

                var rueckmeldung = (sourceFileCase.GetProperty("#LHIND_Mitbericht_Rückmeldung") == null) ? "" :
                                   String.Join(", ",
                                               (sourceFileCase.GetProperty("#LHIND_Mitbericht_Rückmeldung") as SpecialdataListPropertyValueCollection).ToList()
                                               .Select(m => m.WrappedValue.GetProperty("DisplayName"))
                                               .ToList()
                                               .ToArray());

                var auftragsart =
                    (sourceFileCase.GetProperty("#LHIND_Mitbericht_AuftragsartMitberichtsverfahren") == null)
                        ? ""
                        : (sourceFileCase.GetProperty("#LHIND_Mitbericht_AuftragsartMitberichtsverfahren") as
                           SpecialdataCatalogValue).DisplayName;

                var rueckfragenAn = (sourceFileCase.GetProperty("#LHIND_Mitbericht_RückfragenAn") == null)
                    ? ""
                    : (sourceFileCase.GetProperty("#LHIND_Mitbericht_RückfragenAn") as TenantUser).DisplayName;

                var istFederfuehrung = (sourceFileCase.Type.ToHasReferenceID().ReferenceID.ToUpper() ==
                                        fileCaseFfTypeReferenceId.ToUpper());

                var sourceFileCaseUrl = UrlProvider.Current.GetOpenWorkListItemUrl(sourceFileCase);


                //Create eCH-0147 container
                var messageExport = Containers.Global.Resolve <IMessageExport>();
                var eCHExport     = messageExport.Export(sourceFileCase);

                sourceFileCase.AddFileCaseContent(eCHExport);

                //switch tenant
                using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
                    using (TenantSection.SwitchToTenant(UserHelper.Current.Tenant))
                    {
                        //Create new incoming, set specialdata properties
                        var incoming = Incoming.NewObject();
                        ApplicationContext.CurrentID = incoming.ApplicationContextID;

                        incoming.Subject      = sourceFileCase.DisplayName + " - eCH-Dossier";
                        incoming.IncomingType =
                            new ReferenceHandle <IncomingTypeClassificationType>(incomingTypeVeReferenceId).GetObject();
                        incoming.ExternalNumber = sourceFileCase.FormattedNumber;
                        incoming.Remark         = sourceFileCase.WorkInstruction;

                        using (new SpecialdataIgnoreReadOnlySection())
                        {
                            incoming.SetProperty("#LHIND_Mitbericht_VE_TerminGs", terminGs);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_TitelIdp", titelIdp);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_FederführendesAmt", ffAmt);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_MitbeteiligtFdListe", mbAemter);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_Rückmeldung", rueckmeldung);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_AuftragsartMitberichtsverfahren", auftragsart);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_Bemerkungen", bemerkungen);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_Datum", datum);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_RückfragenAn", rueckfragenAn);
                            incoming.SetProperty("#LHIND_Mitbericht_SourceFileCaseUrl", sourceFileCaseUrl);
                            incoming.SetProperty("#LHIND_Mitbericht_VE_IstFederfuehrung", istFederfuehrung);
                        }

                        var targeteCHDocument = Document.NewObject(incoming);
                        ((IDocument)targeteCHDocument).Name = sourceFileCase.GetMultilingualValue(fc => fc.Title) + " (" +
                                                              sourceFileCase.FormattedNumber + ") - eCH Import";
                        targeteCHDocument.PhysicallyPresent = false;
                        targeteCHDocument.Type = (DocumentClassificationType)ClassificationType.GetObject(Rubicon.Gever
                                                                                                          .Bund.EGovInterface.Domain.WellKnownObjects.DocumentClassification.EchImport.GetObjectID());

                        using (TenantSection.DisableQueryRestrictions())
                            using (var handle = eCHExport.ActiveContent.GetContent())
                                targeteCHDocument.ActiveContent.SetContent(handle, "zip", "application/zip");

                        var targetFile = ImportHelper.TenantKnowsObject(targeteCHDocument, true);
                        if (targetFile != null)
                        {
                            incoming.LeadingGroup = targetFile.LeadingGroup;
                            incoming.Insert(targetFile);
                        }
                        else
                        {
                            incoming.LeadingGroup = UserHelper.Current.GetActaNovaUserExtension().StandardGroup != null
                            ? UserHelper.Current.GetActaNovaUserExtension().StandardGroup.AsTenantGroup()
                            : UserHelper.Current.OwningGroup.AsTenantGroup();
                        }

                        ClientTransaction.Current.Commit();
                    }
            }
            catch (Exception ex)
            {
                s_logger.Error(ex.Message, ex);
                throw;
            }
            finally
            {
                ApplicationContext.CurrentID = restoreCtxId;
            }

            return(true);
        }
 private void CheckTransactionalStatus(ClientTransaction clientTransaction)
 {
     Assertion.DebugAssert(ReferenceEquals(ClientTransaction, clientTransaction));
     DomainObjectCheckUtility.EnsureNotInvalid(_domainObject, clientTransaction);
 }
 public NullRealObjectEndPoint(ClientTransaction clientTransaction, IRelationEndPointDefinition definition)
     : base(clientTransaction, definition)
 {
 }
 protected void CheckDataNotLoaded(ClientTransaction clientTransaction, ObjectID objectID)
 {
     Assert.That(ClientTransactionTestHelper.GetIDataManager(clientTransaction).DataContainers[objectID], Is.Null);
 }
Exemplo n.º 9
0
 public static T CreateObjectInOtherTransaction <T> () where T : DomainObject
 {
     return(CreateObjectInTransaction <T> (ClientTransaction.CreateRootTransaction()));
 }
Exemplo n.º 10
0
 public static T CreateObjectInTransaction <T> (ClientTransaction transaction) where T : DomainObject
 {
     return((T)LifetimeService.NewObject(transaction, typeof(T), ParamList.Empty));
 }
Exemplo n.º 11
0
 public override void SetUp()
 {
     base.SetUp();
     SecurityManagerPrincipal.Current = SecurityManagerPrincipal.Null;
     ClientTransaction.CreateRootTransaction().EnterDiscardingScope();
 }
 public bool TryEnsureDataAvailable()
 {
     return(ClientTransaction.TryEnsureDataAvailable(DomainObject.ID));
 }
        public static VirtualObjectEndPoint CreateVirtualObjectEndPoint(RelationEndPointID endPointID, ClientTransaction clientTransaction)
        {
            var lazyLoader           = ClientTransactionTestHelper.GetDataManager(clientTransaction);
            var endPointProvider     = ClientTransactionTestHelper.GetDataManager(clientTransaction);
            var transactionEventSink = ClientTransactionTestHelper.GetEventBroker(clientTransaction);
            var dataManagerFactory   = new VirtualObjectEndPointDataManagerFactory();

            return(new VirtualObjectEndPoint(
                       clientTransaction,
                       endPointID,
                       lazyLoader,
                       endPointProvider,
                       transactionEventSink,
                       dataManagerFactory));
        }
Exemplo n.º 14
0
 public virtual IFixedSizeIntIterator4 Unmarshall(ClientTransaction transaction, IClientSlotCache
     slotCache, ByteArrayBuffer reader)
 {
     return new CacheContributingObjectReader(transaction, slotCache, reader).Iterator
         ();
 }
Exemplo n.º 15
0
 public void PropertyValueRead(ClientTransaction clientTransaction, DomainObject domainObject, PropertyDefinition propertyDefinition, object value, ValueAccess valueAccess)
 {
     throw CreateException();
 }
Exemplo n.º 16
0
 public virtual IFixedSizeIntIterator4 Unmarshall(ClientTransaction transaction, IClientSlotCache
     slotCache, ByteArrayBuffer reader)
 {
     var size = reader.ReadInt();
     return new _IFixedSizeIntIterator4_34(size, reader);
 }
Exemplo n.º 17
0
        public static T GetObjectInOtherTransaction <T> (ObjectID objectID) where T : DomainObject
        {
            var transaction = ClientTransaction.CreateRootTransaction();

            return(GetObjectInTransaction <T> (transaction, objectID));
        }
 protected void CheckEndPointNull(ClientTransaction clientTransaction, RelationEndPointID relationEndPointID)
 {
     Assert.That(ClientTransactionTestHelper.GetIDataManager(clientTransaction).RelationEndPoints[relationEndPointID], Is.Null);
 }
Exemplo n.º 19
0
 public static T GetObjectInTransaction <T> (ClientTransaction transaction, ObjectID objectID) where T : DomainObject
 {
     return((T)LifetimeService.GetObject(transaction, objectID, true));
 }
Exemplo n.º 20
0
 public override void SetUp()
 {
     base.SetUp();
     _subTransaction = TestableClientTransaction.CreateSubTransaction();
 }
Exemplo n.º 21
0
 public static T CreateFakeObject <T> (ObjectID id) where T : DomainObject
 {
     return(GetObjectReference <T> (ClientTransaction.CreateRootTransaction(), id));
 }
Exemplo n.º 22
0
        /// <summary>
        /// Initializes the <see cref="PropertyAccessor"/> object.
        /// </summary>
        /// <param name="domainObject">The domain object whose property is to be encapsulated.</param>
        /// <param name="propertyData">a <see cref="PropertyAccessorData"/> object describing the property to be accessed.</param>
        /// <param name="clientTransaction">The transaction to be used for accessing the property.</param>
        /// <exception cref="ArgumentNullException">One of the parameters passed to the constructor is <see langword="null"/>.</exception>
        /// <exception cref="ArgumentException">The domain object does not have a property with the given identifier.</exception>
        public PropertyAccessor(IDomainObject domainObject, PropertyAccessorData propertyData, ClientTransaction clientTransaction)
        {
            ArgumentUtility.CheckNotNull("domainObject", domainObject);
            ArgumentUtility.CheckNotNull("propertyData", propertyData);
            ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction);
            DomainObjectCheckUtility.CheckIfRightTransaction(domainObject, clientTransaction);

            _domainObject      = domainObject;
            _clientTransaction = clientTransaction;
            _propertyData      = propertyData;
        }
Exemplo n.º 23
0
 public static DomainObject CreateFakeObject(ObjectID id = null)
 {
     return(LifetimeService.GetObjectReference(ClientTransaction.CreateRootTransaction(), id ?? new ObjectID(typeof(Order), Guid.NewGuid())));
 }
Exemplo n.º 24
0
        public override bool Execute(CommandActivity commandActivity)
        {
            const string incomingTypeVeReferenceId = "ABC5B6D0-6764-4801-AC36-7B42B80F63D3";
            const string incomingTypeGsReferenceId = "64E46ED4-14C2-4E3D-A5D0-F3E2E39C2E73";

            var restoreCtxId = ApplicationContext.CurrentID;

            try
            {
                var sourceFileCase = (FileCase)commandActivity.WorkItem;

                if (sourceFileCase == null)
                {
                    throw new ActivityCommandException("").WithUserMessage(LocalizedUserMessages.NoFileCase
                                                                           .ToLocalizedName()
                                                                           .FormatWith(commandActivity));
                }

                if (!sourceFileCase.CanEdit(true))
                {
                    throw new ActivityCommandException("").WithUserMessage(LocalizedUserMessages.NotEditable
                                                                           .ToLocalizedName()
                                                                           .FormatWith(sourceFileCase));
                }

                //Parse tenant information from incoming
                string targetTenantId = String.Empty;

                var sourceIncoming = sourceFileCase.BaseFile.BaseIncomings
                                     .Where(i => i.IncomingType.ToHasReferenceID().ReferenceID.ToUpper() ==
                                            incomingTypeVeReferenceId.ToUpper())
                                     .OrderByDescending(t => t.CreatedAt)
                                     .FirstOrDefault();
                if (sourceIncoming == null)
                {
                    throw new ActivityCommandException("").WithUserMessage(LocalizedUserMessages.IncomingNotFound
                                                                           .ToLocalizedName()
                                                                           .FormatWith(sourceFileCase.BaseFile));
                }

                var targetFileCaseUri = new Uri(sourceIncoming.GetProperty("#LHIND_Mitbericht_SourceFileCaseUrl") as string);

                targetTenantId = HttpUtility.ParseQueryString(targetFileCaseUri.Query).Get("TenantID");

                var sourceFileCaseUrl = UrlProvider.Current.GetOpenWorkListItemUrl(sourceFileCase);

                //Create eCH-0147 container
                var messageExport = Containers.Global.Resolve <IMessageExport>();
                var eCHExport     = messageExport.Export(sourceFileCase);

                sourceFileCase.AddFileCaseContent(eCHExport);

                //switch tenant
                using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope())
                    using (TenantSection.SwitchToTenant(Tenant.FindByUnqiueIdentifier(targetTenantId)))
                    {
                        //Create new incoming, set specialdata properties
                        var incoming = Incoming.NewObject();
                        ApplicationContext.CurrentID = incoming.ApplicationContextID;

                        incoming.Subject      = sourceFileCase.DisplayName + " - eCH Response";
                        incoming.IncomingType = new ReferenceHandle <IncomingTypeClassificationType>(incomingTypeGsReferenceId)
                                                .GetObject();
                        incoming.ExternalNumber = sourceFileCase.FormattedNumber;
                        incoming.Remark         = sourceFileCase.WorkInstruction;
                        using (new SpecialdataIgnoreReadOnlySection())
                            incoming.SetProperty("#LHIND_Mitbericht_SourceFileCaseUrl", sourceFileCaseUrl);

                        var targeteCHDocument = Document.NewObject(incoming);
                        ((IDocument)targeteCHDocument).Name = sourceFileCase.GetMultilingualValue(fc => fc.Title) + " (" +
                                                              sourceFileCase.FormattedNumber + ") - eCH Import";
                        targeteCHDocument.PhysicallyPresent = false;
                        targeteCHDocument.Type = (DocumentClassificationType)ClassificationType.GetObject(Rubicon.Gever
                                                                                                          .Bund.EGovInterface.Domain.WellKnownObjects.DocumentClassification.EchImport.GetObjectID());

                        using (SecurityFreeSection.Activate())
                            using (TenantSection.DisableQueryRestrictions())
                                using (var handle = eCHExport.ActiveContent.GetContent())
                                {
                                    targeteCHDocument.ActiveContent.SetContent(handle, "zip", "application/zip");

                                    var targetFile = ImportHelper.TenantKnowsObject(targeteCHDocument, true);
                                    if (targetFile != null)
                                    {
                                        incoming.LeadingGroup = targetFile.LeadingGroup;
                                        incoming.Insert(targetFile);
                                    }
                                    else
                                    {
                                        incoming.LeadingGroup = UserHelper.Current.GetActaNovaUserExtension().StandardGroup != null
                                ? UserHelper.Current.GetActaNovaUserExtension().StandardGroup.AsTenantGroup()
                                : UserHelper.Current.OwningGroup.AsTenantGroup();
                                    }
                                }

                        ClientTransaction.Current.Commit();
                    }
            }
            catch (Exception ex)
            {
                s_logger.Error(ex.Message, ex);
                throw;
            }
            finally
            {
                ApplicationContext.CurrentID = restoreCtxId;
            }

            return(true);
        }
Exemplo n.º 25
0
 public static T GetObjectReference <T> (ClientTransaction clientTransaction, ObjectID objectID) where T : DomainObject
 {
     return((T)LifetimeService.GetObjectReference(clientTransaction, objectID));
 }
Exemplo n.º 26
0
 private void CheckStateIsNotInvalid(DomainObject domainObject, ClientTransaction clientTransaction, StateType expectedState)
 {
     Assert.That(clientTransaction.IsInvalid(domainObject.ID), Is.False);
     Assert.That(domainObject.TransactionContext[clientTransaction].IsInvalid, Is.False);
     Assert.That(domainObject.TransactionContext[clientTransaction].State, Is.EqualTo(expectedState));
 }
Exemplo n.º 27
0
 public static DomainObject GetObjectReference(ClientTransaction clientTransaction, ObjectID objectID)
 {
     return(GetObjectReference <DomainObject> (clientTransaction, objectID));
 }
Exemplo n.º 28
0
 private SecurableObject CreateSecurableObject(ISecurityContextFactory securityContextFactory, ClientTransaction clientTransaction = null, Action <SecurableObject> action = null)
 {
     return(SecurableObject.NewObject(
                clientTransaction ?? _clientTransaction,
                ObjectSecurityStrategy.Create(securityContextFactory, InvalidationToken.Create()),
                action));
 }
 protected void CheckDataLoaded(ClientTransaction clientTransaction, DomainObject domainObject)
 {
     Assert.That(ClientTransactionTestHelper.GetIDataManager(clientTransaction).DataContainers[domainObject.ID], Is.Not.Null);
     CheckState(clientTransaction, domainObject, StateType.Unchanged);
 }
Exemplo n.º 30
0
        public override void SetUp()
        {
            base.SetUp();

            ClientTransaction.CreateRootTransaction().EnterDiscardingScope();
        }
 protected void CheckDataNotLoaded(ClientTransaction clientTransaction, DomainObject domainObject)
 {
     CheckDataNotLoaded(clientTransaction, domainObject.ID);
     CheckState(clientTransaction, domainObject, StateType.NotLoadedYet);
 }
Exemplo n.º 32
0
 public void PropertyValueChanged(ClientTransaction clientTransaction, DomainObject domainObject, PropertyDefinition propertyDefinition, object oldValue, object newValue)
 {
     throw CreateException();
 }
 protected void CheckState(ClientTransaction clientTransaction, DomainObject domainObject, StateType expectedState)
 {
     Assert.That(domainObject.TransactionContext[clientTransaction].State, Is.EqualTo(expectedState));
 }