예제 #1
0
        internal ScalingSequentialPipeline(PipelineContext context)
        {
            m_Pause            = new ManualResetEvent(true);
            m_LatestPauseState = false;
            m_DummyProgress    = new Progress <int>();
            m_ActualProgress   = new Progress <int>();
            m_PauseSyncRoot    = new object();
            m_Context          = context;
            m_LineBuffers      = new List <BoundedConcurrentQueu <string> >();
            m_RecordBuffers    = new List <BoundedConcurrentQueu <object[]> >();
            m_RowBuffers       = new List <BoundedConcurrentQueu <Row> >();
            if (context.SourceFilePath.Contains(".xls"))
            {
                m_ExcelReader = new ExcelDataExtractor();
            }
            else
            {
                m_Reader         = new DIALFlatFileExtractor();
                m_StringSplitter = new StringSplitter(context.Qualifier)
                {
                    Delimiter = context.Delimiter
                };
            }
            m_RowBuilder = new RecordToRowTransformer(context.ColumnNames, context.IsSkippingError);
            m_Loader     = new SQLTableLoader();
            //register event

            m_ActualProgress.ProgressChanged += OnReaderEvent;
        }
예제 #2
0
        public async Task <IActionResult> Index(EventCreateViewModel model, ICollection <IFormFile> files)
        {
            var uploads = Path.Combine(_environment.WebRootPath, "uploads");

            foreach (IFormFile file in files)
            {
                if (file.Length > 0)
                {
                    string[] paths    = file.FileName.Split('\\');
                    string   filePath = Path.Combine(uploads, paths[paths.Length - 1]);
                    using (var fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);

                        await fileStream.FlushAsync();

                        ExcelDataExtractor dataExtractor = new ExcelDataExtractor();
                        dataExtractor.Source    = filePath;
                        dataExtractor.DBcontext = ApplicationDbContext.GetDbContext();

                        Event e = new Event(model.EventName, dataExtractor);
                        e.EndDate         = model.EndDate;
                        e.StartDate       = model.StartDate;
                        e.Theme           = model.Theme;
                        e.Place           = model.Venue;
                        e.MingleAttendees = false;
                        e.Fee             = model.Fee;
                        e.Type            = EventTypeEnum.GRANDE_RETRAITE;
                        e.Persist();
                        Thread t = new Thread(() => ProcessEvent(e, dataExtractor.Source));
                        t.Start();
                    }
                }
            }
            return(View());
        }