public object Upload()
        {
            HttpPostedFile file = HttpContext.Current.Request.Files["file"];

            if (file == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "No file specified."));
            }

            if (file.ContentType != "application/octet-stream" || !file.FileName.ToLower().EndsWith(".csv"))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Specified file must be a CSV file."));
            }

            RedirectsProviderFile pfile = new RedirectsProviderFile(new HttpPostedFileWrapper(file));

            Dictionary <string, string> body = new Dictionary <string, string>();

            foreach (string key in HttpContext.Current.Request.Form.Keys)
            {
                body[key] = HttpContext.Current.Request.Form[key];
            }

            return(new RedirectsImportService().Import(pfile, CsvImportOptions.FromDictionary(body)));
        }
        public void CSVImport([NotNull] CsvImportOptions args)
        {
            Logger.Info("Running LoadProfileGenerator Version " + Assembly.GetExecutingAssembly().GetName().Version);
            CsvTimeProfileImporter ctpi = new CsvTimeProfileImporter(ConnectionString);

            ctpi.Import(args, out _);
        }
        public void RunTest()
        {
            //make dummy csv file
            using (WorkingDir wd = new WorkingDir(Utili.GetCurrentMethodAndClass()))
            {
                string       csvfn = wd.Combine("mycsv.csv");
                StreamWriter sw    = new StreamWriter(csvfn);
                sw.WriteLine("Date;Value");
                sw.WriteLine("01.01.2019 00:00;1");
                sw.WriteLine("01.01.2019 00:01;2");
                sw.Close();
                CsvImportOptions cio = new CsvImportOptions();
                using (DatabaseSetup db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
                {
                    cio.Input     = csvfn;
                    cio.Delimiter = ";";
                    CsvTimeProfileImporter ctpi = new CsvTimeProfileImporter(db.ConnectionString);
                    if (!ctpi.Import(cio, out var dbp))
                    {
                        throw new LPGCommandlineException("Option not set. Cannnot proceed.");
                    }
                    if (dbp == null)
                    {
                        throw new LPGException("failed to import");
                    }

                    foreach (DateProfileDataPoint dataPoint in dbp.Datapoints)
                    {
                        Logger.Info(dataPoint.DateAndTimeString + " - " + dataPoint.Value);
                    }
                }
            }
        }
        /// <summary />
        public static MockTable FromCsv(string content, string delimiter, CsvImportOptions options)
        {
            var table = MockTable.Empty();

            Type[] types                = null;
            bool   isFirstRow           = true;  // First row = Column names
            bool   isFirstDataRow       = false; // Second row = First data row
            bool   mustRemoveEmptyLines = (options & CsvImportOptions.RemoveEmptyLines) == CsvImportOptions.RemoveEmptyLines;
            bool   mustTrimLines        = (options & CsvImportOptions.TrimLines) == CsvImportOptions.TrimLines;

            foreach (string row in content.Split(SPLIT_NEWLINE, StringSplitOptions.None))
            {
                if (mustRemoveEmptyLines && string.IsNullOrEmpty(row))
                {
                }
                else
                {
                    string[] data;
                    string[] split_delimiter = new string[] { delimiter };

                    if (mustTrimLines)
                    {
                        data = row.Trim().Split(split_delimiter, StringSplitOptions.None);
                    }
                    else
                    {
                        data = row.Split(split_delimiter, StringSplitOptions.None);
                    }

                    if (isFirstRow)
                    {
                        table.AddColumns(data);
                    }
                    else
                    {
                        if (isFirstDataRow)
                        {
                            types = GetTypesOfFirstDataRow(data);
                        }

                        table.AddRow(ConvertStringToTypes(data, types));
                    }

                    isFirstRow     = false;
                    isFirstDataRow = !isFirstDataRow ? true : isFirstDataRow;
                }
            }

            return(table);
        }
        internal void Import(RedirectImportItem redirect, CsvImportOptions options)
        {
            // TODO: Use dependency injection
            var service = Current.Factory.GetInstance <IRedirectsService>();

            // TODO: Check whether redirect exists

            try {
                service.AddRedirect(redirect.AddOptions);
                redirect.Status = RedirectImportStatus.Success;
            } catch (Exception ex) {
                redirect.Errors.Add(ex.Message);
                redirect.Status = RedirectImportStatus.Failed;
            }
        }
 public object Import(RedirectsProviderFile file, CsvImportOptions options)
 {
     return(new CsvRedirectsProvider().Import(file, options));
 }
 public object Import(RedirectsProviderFile file, JObject options)
 {
     return(Import(file, CsvImportOptions.Parse(options)));
 }
 public object Import(RedirectsProviderFile file, Dictionary <string, string> options)
 {
     return(Import(file, CsvImportOptions.FromDictionary(options)));
 }