public async Task <IActionResult> ExecuteAsync(CancellationToken token, [FromBody] Package pckg)
        {
            try
            {
                await _schema.Init(token);

                _log.Debug("Starting processing of package...");
                var tasks = new List <Task <Tuple <string, string> > >();

                foreach (var scriptSource in pckg.Scripts)
                {
                    tasks.Add(Task.Run(async() =>
                    {
                        var pTables = await _dependencyBuilder.PrepareAsync(token, scriptSource);

                        return(new Tuple <string, string>(_sqlBuilder.Build(pTables, _schema), "{0}_p_{1}.sql".FormIt(scriptSource.Order, scriptSource.ScriptName)));
                    }));
                }

                await Task.WhenAll(tasks);

                _log.Debug("Finished processing of package.");

                return(new FileContentResult(await PrepareStream(tasks.Select(_ => _.Result)), new MediaTypeHeaderValue("application/zip"))
                {
                    FileDownloadName = "scripts.zip"
                });
            }
            catch (Exception e)
            {
                throw e;
            }
        }