示例#1
0
        protected void btnSaveChoice_Click(object sender, EventArgs e)
        {
            DataAccess.AssessmentItemXChoice objXChoice = new DataAccess.AssessmentItemXChoice();
            objXChoice.AssessmentItemID = AssessmentItemID;
            objXChoice.IsDefault        = chk_ChoiceIsDefault.Checked;
            objXChoice.Order            = Convert.ToInt32(txtChoiceOrder.Text);
            objXChoice.ScoreValue       = Convert.ToInt32(txtScoreValue.Text);
            objXChoice.Value            = txtChoicevalue.Text;

            DataAccess.AssessmentItemChoice objChoice = null;
            if (gIsMultipleChoice)
            {
                objChoice = new AssessmentItemChoice()
                {
                    Text = txtChoicevalue.Text
                };
            }
            bool res = gAssessment.Save_Assessment_Item_X_Choice(objXChoice, objChoice);

            if (res == false)
            {
                Set_Error_Message("An error occured during assessment item X choice save process");
            }
            else
            {
                ListChoice.Add(objXChoice);
                Prepare_Choice_Section();
            }
        }
示例#2
0
 protected void btnAddGridChoice_Click(object sender, EventArgs e)
 {
     foreach (var item in ListSubAI)
     {
         DataAccess.AssessmentItemXChoice objXChoice = new DataAccess.AssessmentItemXChoice()
         {
             AssessmentItemID = item.AssessmentItemID,
             IsDefault        = chk_ChoiceIsDefault.Checked,
             Order            = Convert.ToInt32(txtChoiceOrder.Text),
             ScoreValue       = Convert.ToInt32(txtScoreValue.Text),
             Value            = txtChoicevalue.Text
         };
         DataAccess.AssessmentItemChoice objChoice = new AssessmentItemChoice()
         {
             Text = txtChoicevalue.Text
         };
         objXChoice.AssessmentItemChoice = objChoice;
         ListChoice.Add(objXChoice);
     }
     divSaveAll.Visible = true;
     Prepare_Choice_Section();
 }
示例#3
0
        private void Create_Choice_Grid()
        {
            StringBuilder sb = new StringBuilder();
            List <DataAccess.AssessmentItemXChoice> listAdded = new List <DataAccess.AssessmentItemXChoice>();

            foreach (DataAccess.AssessmentItemXChoice item in ListChoice)
            {
                DataAccess.AssessmentItemXChoice        added_obj = listAdded.Find(o => o.Value == item.Value && o.ScoreValue == item.ScoreValue);
                List <DataAccess.AssessmentItemXChoice> listFound = ListChoice.FindAll(o => o.Value == item.Value && o.ScoreValue == item.ScoreValue);

                if (added_obj != null && listFound != null && listFound.Count > 1)
                {
                    continue;
                }

                sb.Append("<tr>");
                sb.Append("<th scope='row'>");
                sb.Append(item.Order.ToString());
                sb.Append("</th>");
                sb.Append("<td>");
                sb.Append(CommonUtilities.EditGridText(item.Value));
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(item.ScoreValue.ToString());
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(item.IsDefault.ToString());
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(@"<a href=javascript:DeleteItem('" + CommonUtilities.GlobalEncrypt(item.ID.ToString(), BSWSession.SessionKey) + "'); class='fa fa-remove' style='color:red;' ></a>");
                sb.Append("</td>");
                sb.Append("</tr>");
                listAdded.Add(item);
            }
            grdChoiceBody.InnerHtml = sb.ToString();
        }
示例#4
0
        /// <summary>
        /// Script parcourant toutes les roms d'un répertoire.
        /// </summary>
        /// <param name="romsDirectory">Répertoire contenant toutes les roms.</param>
        /// <param name="exportDirectory">Répertoire vers lequelle les roms validées seront exportées.</param>
        /// <param name="worldZones">Zones géographiques à exporter (ex : {"(U)", "(E)"}).</param>
        /// <param name="patchsToApply">Patchs de traduction à appliquer (ex : {"Fre", "Eng"}).</param>
        private static void BrowseRoms(string romsDirectory, string exportDirectory, string[] worldZones)
        {
            // Si le répertoire que l'utilisateur a spécifié n'existe pas, on balance une exception et on l'insulte.
            if (!Directory.Exists(romsDirectory))
            {
                throw new Exception("Le répertoire que vous avez spécifié comme source pour les roms n'existe pas. Vous êtes mauvais.");
            }

            // Si le répertoire que l'utilisateur a spécifié n'existe pas, on balance une exception et on l'insulte un peu plus fort.
            if (!Directory.Exists(romsDirectory))
            {
                throw new Exception("Le répertoire que vous avez spécifié pour l'export n'existe pas. Vous êtes très mauvais.");
            }

            // On va parcourir le dossier censé contenir les roms
            string[] files = Directory.GetFiles(romsDirectory);

            for (int i = 0; i < files.Count(); i++)
            {
                try
                {
                    Console.Title = "RomRight : " + Math.Round(((i / (double)files.Count()) * 100)) + "%";

                    string romArchive = files[i];

                    if (Path.GetExtension(romArchive) == ".7z")
                    {
                        // Seuil de note en dessous duquel les roms ne seront pas prises
                        int threshold = 100;

                        // Pour éviter une sortie du buffer (fixé à 800) lors des déplacements de curseur
                        // On clear la console de temps en temps
                        if (Console.CursorTop > 700)
                        {
                            Console.Clear();
                        }

                        Utils.WriteLineInLog("\n======= Parcourt de " + romArchive);

                        string[] romFiles;

                        // On récupère tous les fichiers de roms
                        using (var tmp = new SevenZipExtractor(romArchive))
                        {
                            romFiles = tmp.ArchiveFileNames.ToArray();
                        }

                        // On va créer une liste des variations de roms, regroupées par leur nom commun
                        // Par exemple, "Sonic 1 [!]" et "Sonic 1 (W) [b1]" seront tous deux rangés sous l'id "Sonic 1"
                        Dictionary <string, List <RatedRom> > sortedRomsFiles = new Dictionary <string, List <RatedRom> >();

                        // On va trier les fichiers qu'on a récupéré
                        foreach (string romFile in romFiles)
                        {
                            // Expressions régulières correspondantes aux tags () et []
                            Regex regexParenthesis = new Regex("\\(.*?\\)");
                            Regex regexBracket     = new Regex("\\[.*?\\]");

                            // On va récupérer les noms des roms sans les variantes () et []
                            string uid = Path.GetFileNameWithoutExtension(romFile);
                            uid = regexParenthesis.Replace(uid, "");
                            uid = regexBracket.Replace(uid, "");
                            uid = uid.Trim();

                            // Si on a encore jamais croisé cet uid, il faut créer la liste qui va contenir les noms des roms
                            if (!sortedRomsFiles.ContainsKey(uid))
                            {
                                sortedRomsFiles[uid] = new List <RatedRom>();
                            }

                            // On ajoute le fichier de rom à la liste
                            sortedRomsFiles[uid].Add(new RatedRom(Path.GetFileName(romFile), 0));
                        }

                        // On va lancer le système de notation des roms qui va permettre de choisir automatiquement
                        // la plus pertinente pour la collection.
                        foreach (string uid in sortedRomsFiles.Keys)
                        {
                            foreach (RatedRom ratedRom in sortedRomsFiles[uid])
                            {
                                ratedRom.Rate(worldZones);

                                // On calcule le seuil de la rom (le plancher de centaines le plus proche de sa note)
                                // Ex : pour une rom avec une note de 345, on aura 300.
                                int floorMark = (int)Math.Floor(ratedRom.Mark / 100.0) * 100;

                                // Si le seuil est plus bas, on le réhausse
                                if (threshold < floorMark)
                                {
                                    threshold = floorMark;
                                }
                            }
                        }

                        List <string> finalRomList = new List <string>();

                        // On va chercher les roms les plus pertinentes (celles qui ont eu la meilleure note)
                        foreach (string uid in sortedRomsFiles.Keys)
                        {
                            List <RatedRom> topRoms = new List <RatedRom>();
                            int             maxMark = 0;

                            foreach (RatedRom ratedRom in sortedRomsFiles[uid])
                            {
                                Utils.WriteLineInLog("--- " + ratedRom.Mark + " : " + ratedRom.RomFileName);

                                // On ignore les roms qui ont une note inférieur au seuil
                                if (ratedRom.Mark >= threshold)
                                {
                                    // Si la rom actuelle a une note strictement supérieure au maximum trouvé jusqu'à maintenant
                                    if (ratedRom.Mark > maxMark)
                                    {
                                        maxMark = ratedRom.Mark;

                                        // On efface toutes les roms de la top list car on a trouvé mieux
                                        topRoms.Clear();
                                        topRoms.Add(ratedRom);
                                    }
                                    // Si la rom actuelle a une note identique à celle max trouvée, on ajoute simplement la rom à la liste
                                    else if (ratedRom.Mark == maxMark)
                                    {
                                        topRoms.Add(ratedRom);
                                    }
                                }
                            }

                            // Si l'algorithme n'a pas réussi à départager plusieurs roms, il faut demander à l'utilisateur de choisir manuellement
                            if (topRoms.Count() > 1)
                            {
                                // On construit le selecteur pour que l'utilisateur choisisse
                                ListChoice[] romChoices = new ListChoice[topRoms.Count()];

                                for (int j = 0; j < topRoms.Count(); j++)
                                {
                                    romChoices[j] = new ListChoice(topRoms[j].RomFileName, topRoms[j].RomFileName);
                                }

                                Selecter selectBestRom = new Selecter(romChoices);

                                // On récupère la rom choisie par l'utilisateur et on l'ajoute dans la liste finale
                                ListChoice choosenRom = selectBestRom.Choose();
                                finalRomList.Add(choosenRom.Choice);
                            }
                            // Si on a qu'une seule rom dans le top, on la prend
                            else if (topRoms.Count() == 1)
                            {
                                finalRomList.Add(topRoms[0].RomFileName);
                            }
                        }

                        // On exporte les roms qui ont été sélectionnées comme les plus pertinentes
                        using (var tmp = new SevenZipExtractor(romArchive))
                        {
                            tmp.ExtractFiles(exportDirectory, finalRomList.ToArray());
                        }

                        // On affiche tous les fichiers de roms
                        foreach (string romFileName in finalRomList)
                        {
                            Utils.WriteLineInLog("*** " + romFileName);
                        }
                    }
                }
                catch (Exception e)
                {
                    Utils.WriteLineInLog("Erreur lors du traitement de la rom : " + e.Message);
                }
            }
        }
示例#5
0
    public void ListControls(SadConsole.Input.Keyboard info)
    {
        if (info.IsKeyPressed(Keys.Up))
        {
            if (CanScrollUp)
            {
                startIndex--;
            }
        }
        else if (info.IsKeyPressed(Keys.Down))
        {
            if (CanScrollDown)
            {
                startIndex++;
            }
        }
        else if (info.IsKeyPressed(Keys.Left))
        {
            if (CanPageUp)
            {
                startIndex -= 26;
            }
            else
            {
                startIndex = 0;
            }
        }
        else if (info.IsKeyPressed(Keys.Right))
        {
            if (CanPageDown)
            {
                startIndex += 26;
            }
            else
            {
                startIndex = Math.Max(0, Choices.Count - 26);
            }
        }
        else
        {
            //If this key represents an item, then we select it
            foreach (var k in info.KeysPressed)
            {
                var key = k.Key;
                if (Keys.A <= key && key <= Keys.Z)
                {
                    //A represents the first displayed item (i.e. the one at startIndex). Z represents the last displayed item (startIndex + 25)
                    int index = (key - Keys.A) + startIndex;
                    if (index < Choices.Count)
                    {
                        //Select the item
                        ListChoice <T> selected = Choices.ToList()[index];
                        if (select.Invoke(selected.Value))
                        {
                            Choices.Remove(selected);

                            //If we're at the bottom of the menu and we're removing an item here, move the list view up so that we don't have empty slots
                            if (Choices.Count > 25 && !CanPageDown)
                            {
                                startIndex = Choices.Count - 26;
                            }
                        }
                    }
                    break;
                }
            }
        }
    }