/// <summary>
        /// Closes the assignment.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void CloseAssignment(BusinessContext context)
        {
            CloseAssignmentRequest request = (CloseAssignmentRequest)context.Request;

            // Load Assignment
            MetaObject metaObject = MetaObjectActivator.CreateInstance(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);

            if (((int)metaObject[AssignmentEntity.FieldState]) != (int)AssignmentState.Active)
            {
                throw new InvalidOperationException();
            }

            DateTime dateTimeNow = DataContext.Current.CurrentUserTimeZone.ToLocalTime(DateTime.UtcNow);

            // Update Meta Object Fields
            metaObject[AssignmentEntity.FieldClosedBy]         = (int)DataContext.Current.CurrentUserId;
            metaObject[AssignmentEntity.FieldState]            = (int)AssignmentState.Closed;
            metaObject[AssignmentEntity.FieldExecutionResult]  = request.ExecutionResult;
            metaObject[AssignmentEntity.FieldComment]          = request.Comment;
            metaObject[AssignmentEntity.FieldActualFinishDate] = dateTimeNow;

            // Save Meta Object
            metaObject.Save();

            if (metaObject[AssignmentEntity.FieldWorkflowInstanceId] != null)
            {
                // Run Workflow
                AssignmentEntity entity = (AssignmentEntity)BusinessManager.Load(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);
                RunWorkflow(entity);
            }

            context.SetResponse(new Response());
        }
Beispiel #2
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (!this.Page.IsValid)
            {
                return;
            }

            MetaObject mo = null;

            if (StateId > 0)
            {
                mo = StateMachineManager.GetState(ClassName, StateId);
                mo.Properties["FriendlyName"].Value = txtFriendlyName.Text;
                mo.Save();
            }
            else
            {
                StateMachineManager.AddState(ClassName, txtName.Text, txtFriendlyName.Text);
            }


            // Closing window
            if (RefreshButton == String.Empty)
            {
                CHelper.CloseItAndRefresh(Response);
            }
            else              // Dialog Mode
            {
                CHelper.CloseItAndRefresh(Response, RefreshButton);
            }
        }
        /// <summary>
        /// Suspends the assignment.
        /// </summary>
        /// <param name="context">The context.</param>
        private void SuspendAssignment(BusinessContext context)
        {
            // Load Assignment
            MetaObject metaObject = MetaObjectActivator.CreateInstance(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);

            if (((int)metaObject[AssignmentEntity.FieldState]) != (int)AssignmentState.Active)
            {
                throw new InvalidOperationException();
            }

            // Load Meta Object

            metaObject[AssignmentEntity.FieldState] = (int)AssignmentState.Suspended;

            // Save Meta Object
            metaObject.Save();

            if (metaObject[AssignmentEntity.FieldWorkflowInstanceId] != null)
            {
                // Run Workflow
                AssignmentEntity entity = (AssignmentEntity)BusinessManager.Load(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);
                RunWorkflow(entity);
            }


            context.SetResponse(new Response());
        }
        /// <summary>
        /// Activates the assignment.
        /// </summary>
        /// <param name="context">The context.</param>
        private void ActivateAssignment(BusinessContext context)
        {
            // Load Assignment
            MetaObject metaObject = MetaObjectActivator.CreateInstance(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);

            if (((int)metaObject[AssignmentEntity.FieldState]) != (int)AssignmentState.Pending)
            {
                throw new InvalidOperationException();
            }

            // Load Meta Object
            DateTime dateTimeNow = DataContext.Current.CurrentUserTimeZone.ToLocalTime(DateTime.UtcNow);

            metaObject[AssignmentEntity.FieldState]           = (int)AssignmentState.Active;
            metaObject[AssignmentEntity.FieldActualStartDate] = dateTimeNow;

            // Save Meta Object
            metaObject.Save();

            //if (entity.WorkflowInstanceId.HasValue)
            //{
            //    // Run Workflow
            //    RunWorkflow(entity);
            //}

            context.SetResponse(new Response());
        }
        private void Reactivate(BusinessContext context)
        {
            // Load Assignment
            MetaObject metaObject = MetaObjectActivator.CreateInstance(AssignmentEntity.ClassName, context.GetTargetPrimaryKeyId().Value);

            if (((int)metaObject[AssignmentEntity.FieldState]) != (int)AssignmentState.Closed)
            {
                throw new InvalidOperationException();
            }

            // Load Meta Object
            metaObject[AssignmentEntity.FieldState]            = (int)AssignmentState.Active;
            metaObject[AssignmentEntity.FieldActualFinishDate] = null;
            metaObject[AssignmentEntity.FieldActualWork]       = null;

            // Save Meta Object
            metaObject.Save();

            //if (entity.WorkflowInstanceId.HasValue)
            //{
            //    // Run Workflow
            //    RunWorkflow(entity);
            //}

            context.SetResponse(new Response());
        }
Beispiel #6
0
        /// <summary>
        /// Customs the method.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void SetDefaultAddress(BusinessContext context)
        {
            // Load Address
            MetaObject newDefaultAddress = MetaObjectActivator.CreateInstance(AddressEntity.GetAssignedMetaClassName(),
                                                                              context.GetTargetPrimaryKeyId().Value);


            if (newDefaultAddress["ContactId"] != null)
            {
                // Find default addresses
                MetaObject[] defaultAddressList = MetaObject.List(DataContext.Current.GetMetaClass(AddressEntity.GetAssignedMetaClassName()),
                                                                  FilterElement.EqualElement("ContactId", newDefaultAddress["ContactId"]),
                                                                  FilterElement.EqualElement("IsDefaultContactElement", true));

                // Reset default addresses
                foreach (MetaObject defaultAddress in defaultAddressList)
                {
                    defaultAddress["IsDefaultContactElement"] = false;
                    defaultAddress.Save();
                }

                // Set default address
                newDefaultAddress["IsDefaultContactElement"] = true;
                newDefaultAddress.Save();
            }
            else if (newDefaultAddress["OrganizationId"] != null)
            {
                // Find default addresses
                MetaObject[] defaultAddressList = MetaObject.List(DataContext.Current.GetMetaClass(AddressEntity.GetAssignedMetaClassName()),
                                                                  FilterElement.EqualElement("OrganizationId", newDefaultAddress["OrganizationId"]),
                                                                  FilterElement.EqualElement("IsDefaultOrganizationElement", true));

                // Reset default addresses
                foreach (MetaObject defaultAddress in defaultAddressList)
                {
                    defaultAddress["IsDefaultOrganizationElement"] = false;
                    defaultAddress.Save();
                }

                // Set default address
                newDefaultAddress["IsDefaultOrganizationElement"] = true;
                newDefaultAddress.Save();
            }

            context.SetResponse(new Response());
        }
Beispiel #7
0
        /// <summary>
        /// Resets the delivery attempts.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void ResetDeliveryAttempts(BusinessContext context)
        {
            MetaObject metaObject = MetaObjectActivator.CreateInstance(context.GetTargetMetaClassName(), context.GetTargetPrimaryKeyId().Value);

            metaObject[OutgoingMessageQueueEntity.FieldDeliveryAttempts] = 0;

            metaObject.Save();
        }
Beispiel #8
0
        /// <summary>
        /// Creates the meta objects.
        /// </summary>
        /// <param name="mcData">The mc data.</param>
        private void CreateMetaObjects(MappedObject mcData, DataSet dataSet)
        {
            MetaClass  metaType = DataContext.Current.GetMetaClass(mcData.ClassName);
            MetaObject mo       = null;
            DataTable  table    = null;
            DataRow    row      = null;
            int        rowIndex = 0;

            if (metaType == null)
            {
                throw new ObjectNotFoundException("Not found");
            }

            table = dataSet.Tables[mcData.MapElColl.TableName];

            //Create meta object from mapping data
            foreach (MetaObjectData moData in mcData.MetaObjets)
            {
                row = table.Rows[rowIndex++];

                try
                {
                    mo = MetaObjectActivator.CreateInstance(metaType);

                    foreach (KeyValuePair <String, object> pair in moData.MapMetaFieldData)
                    {
                        MetaField metaField = metaType.Fields[pair.Key];
                        mo.Properties[pair.Key].Value = pair.Value;
                    }
                    //Save changes
                    mo.Save();
                }
                catch (Exception e)
                {
                    MappingError errorInfo = new MappingError(MappingErrorType.MetaObjectCreation,
                                                              e.Message);
                    errorInfo.Exception = e;
                    errorInfo.Table     = table;
                    errorInfo.Row       = row;


                    MappingEngineErrorEventArgs args = new MappingEngineErrorEventArgs(errorInfo);
                    args.MappingElement = mcData.MapElColl;
                    args.MetaObject     = mo;

                    RaiseErrorEvent(args);

                    if (args.ResolveError)
                    {
                        //Try resolve error
                        try
                        {
                            args.MetaObject.Save();
                        }
                        catch (System.Exception)
                        {
                            _errorInfoList.Add(errorInfo);
                            continue;
                        }
                    }
                    else
                    {
                        _errorInfoList.Add(errorInfo);
                        continue;
                    }
                }

                moData.PrimaryKey = mo.PrimaryKeyId.Value;
            }
        }
Beispiel #9
0
        /// <summary>
        /// Customs the method.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void UpdateState(BusinessContext context)
        {
            // Load Meta Object
            MetaObject metaObject = MetaObjectActivator.CreateInstance(DocumentContentVersionEntity.GetAssignedMetaClassName(),
                                                                       context.GetTargetPrimaryKeyId().Value);

            // Extract old and new states
            DocumentContentVersionState newState = (DocumentContentVersionState)(int)context.Request.Target["State"];
            DocumentContentVersionState oldState = (DocumentContentVersionState)(int)metaObject["State"];

            if (oldState == newState)
            {
                return;
            }

            BusinessContext.Current.Items["MC_Document_SourceMetaObject"] = metaObject;
            BusinessContext.Current.Items["MC_Document_NewState"]         = newState;
            BusinessContext.Current.Items["MC_Document_OldState"]         = oldState;



            // Pre-Process
            switch (oldState)
            {
            case DocumentContentVersionState.Active:
            {
                // Reset Content Reference to Active Document here
                DocumentEntity document = (DocumentEntity)BusinessManager.Load(DocumentEntity.GetAssignedMetaClassName(), (PrimaryKeyId)metaObject["OwnerDocumentId"]);
                document.ActiveVersionId = null;
                BusinessManager.Update(document);
            }
            break;

            case DocumentContentVersionState.Draft:
                // Nothing
                break;

            case DocumentContentVersionState.Obsolete:
                // Nothing
                break;
            }

            // Process
            switch (newState)
            {
            case DocumentContentVersionState.Active:
            {
                DocumentEntity document = (DocumentEntity)BusinessManager.Load(DocumentEntity.GetAssignedMetaClassName(), (PrimaryKeyId)metaObject["OwnerDocumentId"]);

                // Reset Current Reference to Active Document here
                if (document.ActiveVersionId.HasValue)
                {
                    DocumentContentVersionEntity oldVersion = new DocumentContentVersionEntity(document.ActiveVersionId.Value);
                    oldVersion.State = (int)DocumentContentVersionState.Draft;

                    UpdateStateRequest request = new UpdateStateRequest(oldVersion);
                    BusinessManager.Execute(request);
                }

                // Update Current Reference to Active Document here
                document.ActiveVersionId = context.GetTargetPrimaryKeyId();
                BusinessManager.Update(document);
            }
            break;

            case DocumentContentVersionState.Draft:
                break;

            case DocumentContentVersionState.Obsolete:
                break;
            }

            // Update Data Storage And Save
            metaObject["State"] = (int)newState;
            metaObject.Save();

            context.SetResponse(new Response());
        }