Пример #1
0
        /// <summary>
        /// Creates a new operation in the data load (e.g. copy files from A to B, load all CSV files to RAW table B etc)
        /// </summary>
        /// <param name="repository"></param>
        /// <param name="parent"></param>
        /// <param name="stage"></param>
        public ProcessTask(ICatalogueRepository repository, ILoadMetadata parent, LoadStage stage)
        {
            var order = repository.GetAllObjectsWithParent <ProcessTask>(parent).Select(t => t.Order).DefaultIfEmpty().Max() + 1;

            repository.InsertAndHydrate(this, new Dictionary <string, object>
            {
                { "LoadMetadata_ID", parent.ID },
                { "ProcessTaskType", ProcessTaskType.Executable.ToString() },
                { "LoadStage", stage },
                { "Name", "New Process" + Guid.NewGuid() },
                { "Order", order }
            });
        }