Esempio n. 1
0
        internal static string GetEvaluation(string myTag, AvContentsService contentsService, MySqlDbConnection dockerMysqlConn)
        {
            string[] arrActresses = common.Actress.ParseTag(myTag);

            return(Actress.GetEvaluation(arrActresses, contentsService, new MySqlDbConnection()));
        }
Esempio n. 2
0
        internal static string GetEvaluation(string[] myArrayActress, AvContentsService contentsService, MySqlDbConnection dockerMysqlConn)
        {
            bool   isFav = false;
            string resultEvaluation = "", evaluation = "";
            int    maxFav     = 0;
            string maxActress = "";

            foreach (string actress in myArrayActress)
            {
                if (String.IsNullOrEmpty(actress))
                {
                    continue;
                }

                string[] arrFavActress = contentsService.GetFavoriteActresses(actress, dockerMysqlConn);

                List <AvContentsData> avContentsList             = new List <AvContentsData>();
                List <AvContentsData> avContentsFilenameLikeList = new List <AvContentsData>();
                if (arrFavActress.Length >= 1)
                {
                    isFav = true;
                    foreach (string favActress in arrFavActress)
                    {
                        List <AvContentsData> list = contentsService.GetActressList(actress, dockerMysqlConn);

                        foreach (AvContentsData data in list)
                        {
                            if (!avContentsList.Exists(x => x.Id == data.Id))
                            {
                                avContentsList.Add(data);
                            }
                        }
                    }
                }
                else
                {
                    avContentsList             = contentsService.GetActressList(actress, dockerMysqlConn);
                    avContentsFilenameLikeList = contentsService.GetActressLikeFilenameList("%" + actress + "%", dockerMysqlConn, avContentsList);
                }

                int sumEvaluate = 0, unEvaluate = 0, maxEvaluate = 0;

                if (avContentsList.Count > 0)
                {
                    sumEvaluate = avContentsList.Sum(x => x.Rating);
                    unEvaluate  = avContentsList.Where(x => x.Rating == 0).Count();
                    maxEvaluate = avContentsList.Max(x => x.Rating);
                }

                if (myArrayActress.Length > 1)
                {
                    if (maxFav < maxEvaluate)
                    {
                        maxFav     = maxEvaluate;
                        maxActress = actress;
                    }
                }

                if (sumEvaluate <= 0 || avContentsList.Count - unEvaluate <= 0)
                {
                    evaluation = String.Format("全未評価 {0} ({1})", avContentsList.Count, avContentsFilenameLikeList.Count);
                }
                else
                {
                    evaluation = String.Format("未 {0}/全 {1} Max {2} Avg {3} ({4})", unEvaluate, avContentsList.Count, maxEvaluate, sumEvaluate / (avContentsList.Count - unEvaluate), avContentsFilenameLikeList.Count);
                }

                if (myArrayActress.Length > 1)
                {
                    resultEvaluation = String.Format("{0} {1} {2}", resultEvaluation, actress, evaluation);
                }
                else
                {
                    resultEvaluation = evaluation;
                }
            }

            if (myArrayActress.Length > 1)
            {
                resultEvaluation = String.Format("【{0} Max{1}】{2}", maxActress, maxFav, resultEvaluation);
            }

            if (isFav)
            {
                resultEvaluation = "Fav " + resultEvaluation;
            }

            return(resultEvaluation);
        }