/// <summary> /// Adds the actual .dmp file from sourcePath to the repo+storage /// Does NOT start analysis /// </summary> /// <returns></returns> public async Task <DumpMetainfo> CreateDump(string bundleId, FileInfo sourcePath) { DumpMetainfo dumpInfo; string dumpId; lock (sync) { dumps.TryAdd(bundleId, new ConcurrentDictionary <string, DumpMetainfo>()); dumpId = CreateUniqueDumpId(); dumpInfo = new DumpMetainfo() { BundleId = bundleId, DumpId = dumpId, DumpFileName = Utility.MakeRelativePath(pathHelper.GetUploadsDir(), sourcePath), DumpType = DetermineDumpType(sourcePath), Created = DateTime.Now, Status = DumpStatus.Created }; dumps[bundleId][dumpId] = dumpInfo; } storage.Create(bundleId, dumpId); FileInfo destFile = await storage.AddFileCopy(bundleId, dumpId, sourcePath); AddSDFile(bundleId, dumpId, destFile.Name, SDFileType.PrimaryDump); return(dumpInfo); }