示例#1
0
        public async Task CreateDataListedInfo(DataListedInfo data)
        {
            //var context = new MyDbContext(_connectionString);
            await _context.DataListedInfo.AddAsync(data);

            await _context.SaveChangesAsync();
        }
示例#2
0
        public async Task <int> Extract()
        {
            List <string> list = File.ReadAllLines(_settings.OpenDataString).ToList();
            int           i    = 0;

            int    blin = _settings.BacklinkIndex;
            int    dlin = _settings.DomainIndex;
            string del  = _settings.Delimeter;
            string dom  = _settings.SingleDomname;

            if (dom != null)
            {
                dlin = -1;
            }
            foreach (var x in list)
            {
                try
                {
                    var    arr     = x.Split(new string[] { del }, StringSplitOptions.None);
                    string rw      = arr[blin].Replace("\"", "");
                    string domname = dom == null ? arr[dlin] : dom;
                    if (!string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(rw))
                    {
                        DataBacklinkRow data = new DataBacklinkRow()
                        {
                            Domain = domname, Url = rw, Position = i
                        };

                        await _serv.CreateDataBacklinkRow(data);

                        if (ContainsExtraInfo)
                        {
                            DataListedInfo info = new DataListedInfo()
                            {
                                DataBacklinkRowID = i, Text = Newtonsoft.Json.JsonConvert.SerializeObject(arr.Where((x, j) => j != dlin && j != blin))
                            };

                            await _infoServ.CreateDataListedInfo(info);
                        }

                        i++;
                    }
                }
                catch
                {
                }
            }
            return(i);
        }
示例#3
0
        public async Task <int> Extract()
        {
            int    blin = _settings.BacklinkIndex;
            int    dlin = _settings.DomainIndex;
            string dom  = _settings.SingleDomname;

            if (dom != null)
            {
                dlin = -1;
            }

            SheetsService service;
            string        sheet = "Sheet1";

            string[] Scopes          = { SheetsService.Scope.Spreadsheets };
            string   ApplicationName = "ValidateLinks";

            GoogleCredential credential;

            using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                credential = GoogleCredential.FromStream(stream)
                             .CreateScoped(Scopes);
            }

            service = new SheetsService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });



            var range = $"{sheet}!A:G";

            SpreadsheetsResource.ValuesResource.GetRequest request =
                service.Spreadsheets.Values.Get(_settings.OpenDataString, range);

            var response = request.Execute();
            IList <IList <object> > values = response.Values;

            var dt = new DataTable();

            if (values != null && values.Count > 0)
            {
                for (int i = 0; i < values.Count; i++)
                {
                    IList <object> row = values[i];
                    List <object>  f   = row.AsEnumerable().ToList <object>();

                    for (int j = 0; j < f.Count; j++)
                    {
                        if (i == 0)
                        {
                            dt.Columns.Add(f[j].ToString());
                        }
                        if (i != 0)
                        {
                            if (j == 0)
                            {
                                DataRow dr = dt.NewRow();
                                dr[j] = f[j];
                                dt.Rows.Add(dr);
                            }
                            else
                            {
                                try
                                {
                                    DataRow dr = dt.Rows[i - 1];
                                    dr[j] = f[j];
                                }
                                catch
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Error...");
            }
            dt.TableName = "links";

            int len     = dt.Rows.Count;
            int clen    = dt.Columns.Count;
            int counter = 0;

            for (int i = 0; i < len; i++)
            {
                if (!string.IsNullOrEmpty(dt.Rows[i][dlin].ToString()) && !string.IsNullOrEmpty(dt.Rows[i][blin].ToString()) && dt.Rows[i][blin].ToString() != "n/a")
                {
                    var arr = dt.Rows[i].ItemArray;

                    DataBacklinkRow data = new DataBacklinkRow()
                    {
                        Domain = dt.Rows[i][blin].ToString(), Url = dt.Rows[i][dlin].ToString(), Position = counter
                    };

                    DataListedInfo info = new DataListedInfo()
                    {
                        DataBacklinkRowID = counter, Text = Newtonsoft.Json.JsonConvert.SerializeObject(arr.Where((x, j) => j != dlin && j != blin))
                    };

                    await _infoServ.CreateDataListedInfo(info);

                    await _serv.CreateDataBacklinkRow(data);

                    counter++;
                }
            }
            service.Dispose();
            return(counter);
        }