public virtual IQueryable <K2Field.SmartForms.Workspace.Data.WorkspaceUser> All(Func <K2Field.SmartForms.Workspace.Data.WorkspaceUser, bool> where)
 {
     return(DBSet.Where(where).AsQueryable());
 }
Esempio n. 2
0
 public IList <TEntity> InsertAll(IEnumerable <TEntity> entities)
 {
     return(DBSet.AddRange(entities).ToList());
 }
Esempio n. 3
0
 public TEntity Delete(TEntity entity)
 {
     return(DBSet.Remove(entity));
 }
 public virtual List <T> Find <T>(Expression <Func <TEntity, bool> > predicate, Expression <Func <TEntity, T> > selector)
 {
     return(DBSet.Where(predicate).Select(selector).ToList());
 }
Esempio n. 5
0
 public int Count()
 {
     return(DBSet.Count());
 }
 public int GetMaxIndex()
 {
     return(DBSet.Any() ? DBSet.Max(m => m.Index) : 0);
 }
 public virtual bool Exists(Expression <Func <TEntity, bool> > predicate)
 {
     return(DBSet.Any(predicate));
 }
 public async Task <IEnumerable <ClienteProduto> > GetByProd(long prodId)
 {
     return(await DBSet.Where(x => x.ProdutoId == prodId).ToListAsync());
 }
Esempio n. 9
0
 public virtual Task <List <TEntity> > GetAll()
 {
     return(DBSet.ToListAsync());
 }
 public async Task <IEnumerable <ClienteProduto> > GetAllWithInclude()
 {
     return(await DBSet.Include(x => x.Cliente).Include(x => x.Produto).ToListAsync());
 }
 public async Task <IEnumerable <ClienteProduto> > GetByCilent(long clientId)
 {
     return(await DBSet.Where(x => x.ClienteId == clientId).ToListAsync());
 }
 public bool ExistRelaionship(ClienteProduto cliProd)
 {
     return(DBSet.AsNoTracking().Any(x => (x.ClienteId == cliProd.ClienteId && x.ProdutoId == cliProd.ProdutoId) && x.Id != cliProd.Id));
 }
 public bool ExistBarCode(ClienteProduto cliProd)
 {
     return(DBSet.AsNoTracking().Any(x => x.CodigoBarra == cliProd.CodigoBarra && x.Id != cliProd.Id));
 }
Esempio n. 14
0
 public override Candidato Recuperar(Expression <Func <Candidato, bool> > predicate) => DBSet
 .Include(h => h.lstCandidatoDisponibilidadeHoras)
 .Include(p => p.lstCandidatoDisponibilidadePeriodo)
 .Include(l => l.lstCandidatoLinguagem)
 .FirstOrDefault(predicate);
 /// <summary>
 /// 执行sql
 /// 使用方式 FormattableString sql=$"select * from xx where name ={xx} and pwd={xx1} ",
 /// FromSqlInterpolated内部处理sql注入的问题,直接在{xx}写对应的值即可
 /// 注意:sql必须 select * 返回所有TEntity字段,
 /// </summary>
 /// <param name="formattableString"></param>
 /// <returns></returns>
 public virtual IQueryable <TEntity> FromSqlInterpolated([NotNull] FormattableString sql)
 {
     //DBSet.FromSqlInterpolated(sql).Select(x => new { x,xxx}).ToList();
     return(DBSet.FromSqlInterpolated(sql));
 }
Esempio n. 16
0
 public virtual TEntity GetByID(params object[] keyValues)
 {
     return(DBSet.Find(keyValues));
 }
Esempio n. 17
0
 public T GetById(int id)
 {
     return(DBSet.Find(id));
 }
 private void UpdateIamgeTagStatus(ImageTag item, string status)
 {
     using var db = DBSet.GetCon(DBSet.SqliteDBName.Bilibili);
     item.Status  = status;
     db.Update(currentShowTag);
 }
Esempio n. 19
0
        public void OnPost(List <IFormFile> files, string imageUrl)
        {
            long size = 0;

            this.ViewData["error"] = -1;

            if (files != null && files.Count > 0)
            {
                var file   = files[0];
                var stream = file.OpenReadStream();
                size = stream.Length;
                var bytes = new byte[size];
                stream.Read(bytes, 0, (int)size);

                var ret = faceDb.SereachUserByImage(bytes);

                if ((int)ret["error_code"] != 0)
                {
                    this.ViewData["error"] = -1;
                    // ErrorMessage = JsonConvert.SerializeObject(ret, Formatting.Indented);
                    ErrorMessage = ret["error_msg"].ToString();
                    return;
                }

                // 能找到对应的人脸
                ErrorMessage = JsonConvert.SerializeObject(ret, Formatting.Indented);
            }
            else if (!string.IsNullOrEmpty(imageUrl))
            {
                var ret = faceDb.SereachUserByUrl(imageUrl);

                if ((int)ret["error_code"] != 0)
                {
                    this.ViewData["error"] = -1;
                    // ErrorMessage = JsonConvert.SerializeObject(ret, Formatting.Indented);
                    ErrorMessage = ret["error_msg"].ToString();
                    return;
                }

                // ErrorMessage = JsonConvert.SerializeObject(ret, Formatting.Indented);

                List <UPModel> ups = new List <UPModel>();

                var arr = ret["result"]["user_list"] as JArray;

                if (arr != null && arr.Count > 0)
                {
                    using (var db = DBSet.GetCon(DBSet.SqliteDBName.Bilibili))
                    {
                        foreach (var item in arr)
                        {
                            var id     = int.Parse(item["user_id"].ToString());
                            var dbItem = db.SingleById <UP>(id);

                            if (dbItem != null)
                            {
                                ups.Add(new UPModel
                                {
                                    UPId    = id.ToString(),
                                    Name    = dbItem.name,
                                    FaceUrl = dbItem.face,
                                    Rate    = ((double)item["score"]).ToString("f2")
                                });
                            }
                        }
                    }
                }

                FindUP = ups.ToArray();
            }
            else
            {
                ErrorMessage = "上传图片或者url,你总得设置一个吧";
            }
        }
Esempio n. 20
0
        /// <summary>
        /// 将视频封面照,拿去百度检查
        /// </summary>
        private static void DetectFace2(int maxGetCount = 60 * 2 * 30) // 30分钟的数据)
        {
            var      baiduai      = new FaceDetect();
            int      i            = 0;
            DateTime nextCallTime = DateTime.Now;

            using (var db = DBSet.GetCon(DBSet.SqliteDBName.Bilibili))
            {
                foreach (var up in db.Select <UP>(o => o.follower > 3000).OrderByDescending(o => o.follower).ToArray())
                {
                    foreach (var av in db.Select <AV>(o => o.UpId == up.Id))
                    {
                        if (isExit)
                        {
                            break;
                        }

                        var pic = new Uri(av.pic).AbsolutePath.Replace("/", "_");

                        // 只按照本地文件名做验证
                        var detect = db.Single <ImageDetect>(o => o.LocalFile == pic);

                        if (detect == null)
                        {
                            byte[] bytes = null;

                            if (FromWeb)
                            {
                                try
                                {
                                    bytes = new WebClient().DownloadData(av.pic);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine(e);
                                }
                            }
                            else
                            {
                                // 封面照落地,根据目前采集到数据,如果将宅舞区的封面照落地的话,估计要100多G
                                // 再加上三次元区,估计服务器硬盘干不动
                                var imagePath = SpiderConfig.GetPath($"imgs/{av.UpId}/{av.Id}");

                                var imageFile = Path.Combine(imagePath, pic);
                                if (!File.Exists(imageFile))
                                {
                                    continue;
                                }

                                bytes = File.ReadAllBytes(imageFile);
                            }

                            if (bytes == null)
                            {
                                continue;
                            }

                            var wait = (int)(nextCallTime - DateTime.Now).TotalMilliseconds + 1;

                            if (wait > 0)
                            {
                                Console.WriteLine($"wait {wait}");
                                Thread.Sleep(wait);
                            }

                            var start = DateTime.Now;
                            var ret   = baiduai.DetectFromBytes(bytes);
                            Console.Write($"useTime:{ (DateTime.Now - start).TotalMilliseconds} ms ");
                            nextCallTime = DateTime.Now.AddMilliseconds(500);

                            if (ret != null)
                            {
                                var dbItem = new ImageDetect
                                {
                                    AVId      = av.Id,
                                    UpId      = av.UpId,
                                    LocalFile = pic,
                                    Url       = av.pic,
                                    Detect    = ret.result,
                                };

                                if (ret.error_code == 0)
                                {
                                    dbItem.face_num = ret.result.face_num;
                                    if (ret.result.face_num > 0)
                                    {
                                        dbItem.max_face_probability = ret.result.face_list.Max(o => o.face_probability);
                                        dbItem.max_quality          = ret.result.face_list.Max(o => GetQuality(o));
                                    }
                                }

                                db.Insert(dbItem);

                                Console.WriteLine(av.title);
                                if (maxGetCount-- < 0)
                                {
                                    return;
                                }

                                // Thread.Sleep(500); // 百度的免费接口只有 2 qps,所以在这里做一下延迟。
                            }
                        }
                        else
                        {
                            // Console.WriteLine("忽略 " + av.title);
                        }
                    }
                }
            }
        }
 public virtual Task <bool> ExistsAsync(Expression <Func <TEntity, bool> > predicate)
 {
     return(DBSet.AnyAsync(predicate));
 }
Esempio n. 22
0
        public static bool GetZhaiWuNewList(int page = 0, int rid = 20)
        {
            var  ret    = new Newlist().Download(page, 50, rid);
            bool hasNew = false;

            using (var historyCon = DBSet.GetCon(DBSet.SqliteDBName.History))
            {
                using (var con = DBSet.GetCon(DBSet.SqliteDBName.Bilibili))
                {
                    foreach (var item in ret.archives)
                    {
                        var dbItem = con.SingleById <AV>(item.aid);

                        if (dbItem == null)
                        {
                            dbItem = new AV()
                            {
                                Id   = item.aid,
                                UpId = item.owner.mid,
                                rid  = rid,
                            };

                            Console.WriteLine(item.title);
                            UpdateAVData(dbItem, item);

                            con.Insert(dbItem);
                            // 更新封面照片
                            //var imagePath = SpiderConfig.GetPath($"imgs/{dbItem.UpId}/{dbItem.Id}");

                            //var pic = new Uri(item.pic).AbsolutePath.Replace("/","_");
                            //var imageFile = Path.Combine(imagePath, pic);

                            //if (!File.Exists(imageFile))
                            //{
                            //    Console.WriteLine(imageFile);
                            //    var bytes = new WebClient().DownloadData(item.pic);
                            //    File.WriteAllBytes(imageFile, bytes);
                            //}

                            hasNew = true;
                        }
                        else
                        {
                            UpdateAVData(dbItem, item);
                            con.Update(dbItem);
                        }

                        var upItem = con.SingleById <UP>(item.owner.mid);

                        if (upItem == null)
                        {
                            var upspider = new UpSpider();
                            int mid      = item.owner.mid;
                            Console.WriteLine($"get up {mid}");

                            var info   = upspider.GetUpInfo(mid);
                            var face   = upspider.GetFaceStat(mid);
                            var upstat = upspider.GetUpStat(mid);

                            upItem = new UP
                            {
                                Id        = mid,
                                follower  = face.follower,
                                following = face.following,
                                face      = info.face,
                                jointime  = info.jointime,
                                level     = info.jointime,
                                name      = info.name,
                                rank      = info.rank,
                                sex       = info.sex,
                                sign      = info.sign,
                                views     = upstat.archive.view,
                            };

                            con.Insert(upItem);
                        }

                        var dbHistoryItem = historyCon.SingleById <AVHistory>(item.aid);

                        if (dbHistoryItem == null)
                        {
                            dbHistoryItem = new AVHistory
                            {
                                Id      = item.aid,
                                History = new List <ArchivesItem> {
                                    item
                                }
                            };
                            historyCon.Insert(dbHistoryItem);
                        }
                        else
                        {
                            dbHistoryItem.History.Add(item);
                            historyCon.Update(dbHistoryItem);
                        }
                    }
                }
            }

            return(hasNew);
        }
 public virtual List <TEntity> FromSql(string sql, params SqlParameter[] sqlParameters)
 {
     return(DBSet.FromSql(sql, sqlParameters).ToList());
 }
Esempio n. 24
0
            public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs)
            {
                global::System.Xml.Schema.XmlSchemaComplexType type     = new global::System.Xml.Schema.XmlSchemaComplexType();
                global::System.Xml.Schema.XmlSchemaSequence    sequence = new global::System.Xml.Schema.XmlSchemaSequence();
                DBSet ds = new DBSet();

                global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny();
                any1.Namespace       = "http://www.w3.org/2001/XMLSchema";
                any1.MinOccurs       = new decimal(0);
                any1.MaxOccurs       = decimal.MaxValue;
                any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
                sequence.Items.Add(any1);
                global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny();
                any2.Namespace       = "urn:schemas-microsoft-com:xml-diffgram-v1";
                any2.MinOccurs       = new decimal(1);
                any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
                sequence.Items.Add(any2);
                global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute();
                attribute1.Name       = "namespace";
                attribute1.FixedValue = ds.Namespace;
                type.Attributes.Add(attribute1);
                global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute();
                attribute2.Name       = "tableTypeName";
                attribute2.FixedValue = "DataTable1DataTable";
                type.Attributes.Add(attribute2);
                type.Particle = sequence;
                global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable();
                if (xs.Contains(dsSchema.TargetNamespace))
                {
                    global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream();
                    global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream();
                    try {
                        global::System.Xml.Schema.XmlSchema schema = null;
                        dsSchema.Write(s1);
                        for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();)
                        {
                            schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current));
                            s2.SetLength(0);
                            schema.Write(s2);
                            if ((s1.Length == s2.Length))
                            {
                                s1.Position = 0;
                                s2.Position = 0;
                                for (; ((s1.Position != s1.Length) &&
                                        (s1.ReadByte() == s2.ReadByte()));)
                                {
                                    ;
                                }
                                if ((s1.Position == s1.Length))
                                {
                                    return(type);
                                }
                            }
                        }
                    }
                    finally {
                        if ((s1 != null))
                        {
                            s1.Close();
                        }
                        if ((s2 != null))
                        {
                            s2.Close();
                        }
                    }
                }
                xs.Add(dsSchema);
                return(type);
            }
Esempio n. 25
0
 public TEntity Insert(TEntity entity)
 {
     return(DBSet.Add(entity));
 }
Esempio n. 26
0
 public Guest FetchByGuestName(
     string fullname)
 {
     return(DBSet
            .Single(t => t.FullName == fullname));
 }
Esempio n. 27
0
 public IList <TEntity> DeleteAll(IEnumerable <TEntity> entities)
 {
     return(DBSet.RemoveRange(entities).ToList());
 }
Esempio n. 28
0
        void TreadTrain()
        {
            this.Dispatcher.Invoke(() => {
                labStatus.Content = "保存训练数据中...";
            });

            using var db = DBSet.GetCon(DBSet.SqliteDBName.Bilibili);
            var tags = db.Select <ImageTag>(o => o.Status == "completed");

            var folder     = Path.Combine(Utils.DefaultDataFolder, "TrainData/");
            var saveResult = TagsDataSet.WriteSourceData2(tags, folder);

            this.Dispatcher.Invoke(() => {
                labStatus.Content = "开始加载训练数据";
            });

            var dataSet = TagsDataSet.ReadDataSets(folder);

            var model           = TFModels.GetBilibiliModelV1(dataSet.Width, dataSet.Height, dataSet.LabNames.Length);
            var weightsFileName = Path.Combine(folder, "bilibili.h5");

            //if (File.Exists(weightsFileName))
            //{
            //    model.load_weights(weightsFileName);
            //}

            isRuning = true;
            var epochs     = 0;
            var epochsStep = 5;

            this.Dispatcher.Invoke(() => {
                labStatus.Content = "开始训练";
                lab_pic.Content   = $"训练用图片:{saveResult.PicNum}";
                lab_label.Content = string.Join("\n", saveResult.LabelCount.OrderByDescending(o => o.Value).Select(o => $"{o.Key}({o.Value}) "));
            });

            DateTime start = DateTime.Now;

            while (isRuning)
            {
                model.fit(dataSet.Images, dataSet.Lables, epochs: epochsStep);
                var metrices = model.metrics.ToArray();
                var loss     = (float)metrices[0].result();
                var accuracy = (float)metrices[1].result();

                epochs += epochsStep;
                this.Dispatcher.Invoke(() =>
                {
                    labStatus.Content = $"训练中: {epochs} 轮 用时:{(DateTime.Now - start)}";

                    labLoss.Content     = $"损失率: {loss * 100}";
                    labAccuracy.Content = $"准确率: {accuracy * 100}";
                    pb.Value            = accuracy * 100;
                });

                if (accuracy > 0.95 && loss < 0.1)
                {
                    break;
                }
            }

            model.save_weights(weightsFileName);

            TagsDataSet.ChangeModel(model, dataSet);

            isSaveWeights = true;

            this.Dispatcher.Invoke(() => {
                btnQuit.Content = "退出";
            });
        }
Esempio n. 29
0
 public IList <TResult> Select <TResult>(Expression <Func <TEntity, TResult> > selector)
 {
     return(DBSet.Select(selector).ToList());
 }
Esempio n. 30
0
 public async Task <IReadOnlyCollection <T> > GetAllByCondition(Expression <Func <T, bool> > expression) =>
 await DBSet.Where(expression).AsNoTracking().ToListAsync();