Ejemplo n.º 1
0
        // ----------------------------------------------------------------------------------------------------------
        // INTERNAL
        // ----------------------------------------------------------------------------------------------------------

        internal EntityArchetype CreateArchetype(ComponentType *types, int count)
        {
            ComponentTypeInArchetype *typesInArchetype = stackalloc ComponentTypeInArchetype[count + 1];
            var cachedComponentCount = FillSortedArchetypeArray(typesInArchetype, types, count);

            // Lookup existing archetype (cheap)
            EntityArchetype entityArchetype;

            entityArchetype.Archetype =
                EntityComponentStore->GetExistingArchetype(typesInArchetype, cachedComponentCount);
            if (entityArchetype.Archetype != null)
            {
                return(entityArchetype);
            }

            // Creating an archetype invalidates all iterators / jobs etc
            // because it affects the live iteration linked lists...
            BeforeStructuralChange();

            var archetypeChanges = EntityComponentStore->BeginArchetypeChangeTracking();

            entityArchetype.Archetype = EntityComponentStore->GetOrCreateArchetype(typesInArchetype,
                                                                                   cachedComponentCount);

            var changedArchetypes = EntityComponentStore->EndArchetypeChangeTracking(archetypeChanges);

            EntityQueryManager.AddAdditionalArchetypes(changedArchetypes);

            return(entityArchetype);
        }
Ejemplo n.º 2
0
        public TaskExecutionMessage Execute(TaskExecutionPayload payloadObj)
        {
            IEntityQueryManager entityQueryManager = new EntityQueryManager();
            var draftId          = entityQueryManager.GetSpecificIdByQuery(payloadObj.TenantId, "Product", payloadObj.Id, "DraftVersion");
            var executionMessage = new TaskExecutionMessage();


            if (draftId != null)
            {
                executionMessage.Message = TaskExecutionCode.AlreadyAdded;
                return(executionMessage);
            }
            var versionId = entityQueryManager.GetSpecificIdByQuery(payloadObj.TenantId, "Product", payloadObj.Id, "ActiveVersion");
            var cloneId   = entityQueryManager.SelectInsert("ProductVersion", payloadObj.TenantId, versionId, Guid.Empty);

            if (cloneId != Guid.Empty)
            {
                var updateStatus = entityQueryManager.UpdateSpecificField(payloadObj.TenantId, "Product", payloadObj.Id, "DraftVersion", cloneId.ToString());

                executionMessage.Message = TaskExecutionCode.Redirect;
                executionMessage.Id      = cloneId;
                return(executionMessage);
            }
            return(null);
        }
Ejemplo n.º 3
0
        WorkFlowProcessMessage IOperation.Execute(dynamic obj)
        {
            IMetadataManager    iMetadataManager = new MetadataManager.Contracts.MetadataManager();
            IEntityQueryManager _queryManager    = new EntityQueryManager();
            // IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
            var objWorkFlowProcessMessage = new WorkFlowProcessMessage();

            try
            {
                objWorkFlowProcessMessage = new WorkFlowProcessMessage {
                    Success = true
                };
                var workFlowProcessProperties = (WorkFlowProcessProperties)obj[0];
                var jObject  = (JObject)obj[1];
                var tenantId = (Guid)obj[2];

                var queryFilter1 = new List <QueryFilter> ();
                queryFilter1.Add(new QueryFilter {
                    FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString()
                });
                queryFilter1.Add(new QueryFilter {
                    FieldName = "ProductId", Operator = "Equal", Value = workFlowProcessProperties.resultId.ToString()
                });
                var queryContext1 = new QueryContext {
                    Fields = "VersionNo", Filters = queryFilter1, PageSize = 100, PageIndex = 1
                };
                DataTable productVersionDataTable = _queryManager.GetResult(tenantId, "productversion", queryContext1);



                var productVersionInfo = EntityMapper <ProductVersion> .Mapper(productVersionDataTable);

                var updateStatus = _queryManager.UpdateSpecificField(tenantId, "Product", workFlowProcessProperties.resultId, "ActiveVersion", productVersionInfo.InternalId.Value.ToString());

                //Update WorkFlowFirst step
                IOperationFlowEngine operationEngine = new OperationFlowEngine();
                var subTypeCode = iMetadataManager.GetSubTypeId("productversion", "standard");
                var properties  = new WorkFlowProcessProperties {
                    resultId = Guid.Parse(productVersionInfo.InternalId.Value), EntityName = "productversion", SubTypeCode = subTypeCode, UserId = workFlowProcessProperties.UserId, IsSuperAdmin = false
                };
                operationEngine.FirstOperation(tenantId, properties);
                return(objWorkFlowProcessMessage);
            }
            catch (System.Exception ex)
            {
                _log.Error("TenantEmailPostProcess  having exception message" + ex.Message);

                objWorkFlowProcessMessage.Success      = false;
                objWorkFlowProcessMessage.ErrorMessage = new ErrorMessage
                {
                    Code        = WorkFlowMessage.ApplicationError,
                    Description = ex.Message
                };
                return(objWorkFlowProcessMessage);
            }
        }
        WorkFlowProcessMessage IOperation.Execute(dynamic obj)
        {
            IEntityQueryManager _queryManager    = new EntityQueryManager();
            IMetadataManager    iMetadataManager = new MetadataManager.Contracts.MetadataManager();
            var objWorkFlowProcessMessage        = new WorkFlowProcessMessage();

            try
            {
                objWorkFlowProcessMessage = new WorkFlowProcessMessage {
                    Success = true
                };
                var workFlowProcessProperties = (WorkFlowProcessProperties)obj[0];
                var jObject  = (JObject)obj[1];
                var tenantId = (Guid)obj[2];



                var userObj = jObject.Children().FirstOrDefault(t => t.Path.ToLower().Equals("user"));
                var details = userObj.First().ToObject <JObject> ();


                var userEntity = EntityMapper <VPC.Entities.EntityCore.Metadata.User> .MapperJObject(details);

                var tenantCode = _queryManager.GetSpecificIdByQuery(tenantId, "Tenant", tenantId, "Code");

                details.Add(new JProperty("TenantCode", tenantCode));
                var template  = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "Emailtemplate", "User", (int)ContextTypeEnum.Welcome, details);
                var returnVal = DataUtility.SaveEmail(tenantId, workFlowProcessProperties.UserId, template, userEntity.UserCredential.Username.Value, "NewUserCredential", InfoType.User);
                return(objWorkFlowProcessMessage);
            }
            catch (System.Exception ex)
            {
                _log.Error("User_Email_Create_Post  having exception message" + ex.Message);

                objWorkFlowProcessMessage.Success      = false;
                objWorkFlowProcessMessage.ErrorMessage = new ErrorMessage
                {
                    Code        = WorkFlowMessage.ApplicationError,
                    Description = ex.Message
                };
                return(objWorkFlowProcessMessage);
            }
        }
        WorkFlowProcessMessage IOperation.Execute(dynamic obj)
        {
            IInitilizeManager   _initilizeManager = new InitilizeManager();
            IEntityQueryManager queryManager      = new EntityQueryManager();
            IManagerTenantSubscriptionEntity _managerSubscriptionEntity = new ManagerTenantSubscriptionEntity();
            var objWorkFlowProcessMessage = new WorkFlowProcessMessage();

            try
            {
                objWorkFlowProcessMessage = new WorkFlowProcessMessage {
                    Success = true
                };
                var workFlowProcessProperties = (WorkFlowProcessProperties)obj[0];
                var tenantId = (Guid)obj[2];

                var subscriptionId = queryManager.GetSpecificIdByQuery(tenantId, workFlowProcessProperties.EntityName, workFlowProcessProperties.resultId, "TenantSubscription");
                if (subscriptionId != null)
                {
                    var subscriptionEntities = _managerSubscriptionEntity.TenantSubscriptionEntities(tenantId, new Guid(subscriptionId.ToString()));
                    if (subscriptionEntities.Any())
                    {
                        var entityIds = subscriptionEntities.Select(p => p.EntityId).ToList();
                        var status    = _initilizeManager.Initilize(workFlowProcessProperties.resultId, entityIds, workFlowProcessProperties.UserId, subscriptionId);
                    }
                }


                return(objWorkFlowProcessMessage);
            }
            catch (System.Exception ex)
            {
                _log.Error("TenantInitilization_PostProcess  having exception message" + ex.Message);

                objWorkFlowProcessMessage.Success      = false;
                objWorkFlowProcessMessage.ErrorMessage = new ErrorMessage
                {
                    Code        = WorkFlowMessage.ApplicationError,
                    Description = ex.Message
                };
                return(objWorkFlowProcessMessage);
            }
        }