Ejemplo n.º 1
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.º 2
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);
            }
        }