/// <summary> /// Creates the new element. /// </summary> /// <param name="elementDefinition">The element definition.</param> /// <returns></returns> /// <exception cref="EngineException"> /// Error creating new element. The parent task not exists. /// or /// Error creating new element. The element type not exists. /// </exception> public Guid CreateNewElement(IElementDefinitionCreate elementDefinition) { IElementEntry elementEntry = null; using (var transaction = uow.BeginTransaction()) { // Load parent task var taskEntry = engineRepository.GetTaskById(elementDefinition.ParentTaskId); // Check if parent task exists if (taskEntry == null) { throw new EngineException(logger, "Error creating new element. The parent task not exists."); } // get the engine element IEngineElement engineElement = GetEngineElement(elementDefinition.ElementTypeKey); // Get the right entry model for this engine element type elementEntry = (IElementEntry)engineElement.GetEmptyEntity(); // Populate the entry element whit data provided by user elementEntry.ParentTask = taskEntry; elementEntry.Name = elementDefinition.Name; elementEntry.Description = elementDefinition.Description; elementEntry.IsEnabled = true; // create the element in db engineRepository.CreateElement(elementEntry); } return(elementEntry.Id); }
public Guid UpdateElement(IElementDefinitionCreate elementDefinition) { IElementEntry elementEntry = null; using (var transaction = uow.BeginTransaction()) { elementEntry = engineRepository.GetElementById(elementDefinition.Id); // Populate the entry element whit data provided by user elementEntry.Name = elementDefinition.Name; elementEntry.Description = elementDefinition.Description; elementEntry.IsEnabled = true; // update the element in db engineRepository.UpdateElement(elementEntry); } return(elementEntry.Id); }