コード例 #1
0
        /// <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);
        }