/// <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()); }
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()); }
/// <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()); }
/// <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(); }
/// <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; } }
/// <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()); }