Exemple #1
0
 public void InitView(List <String> availableWords, String activeWord, AlphabetDisplayMode displayMode = AlphabetDisplayMode.none)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         if (displayMode == AlphabetDisplayMode.none)
         {
             displayMode = AlphabetDisplayMode.commonletters | AlphabetDisplayMode.allCharsItem | AlphabetDisplayMode.otherCharsItem | AlphabetDisplayMode.addUnmatchLetters;
         }
         View.DisplayMode = displayMode;
         LoadItems(availableWords, activeWord, displayMode);
     }
 }
Exemple #2
0
        private void LoadItems(List <String> availableWords, String activeWord, AlphabetDisplayMode displayMode)
        {
            Boolean             hasOtherChars = false;
            List <AlphabetItem> items         = new List <AlphabetItem>();
            List <AlphabetItem> otherChars    = new List <AlphabetItem>();

            if (displayMode.IsFlagSet(AlphabetDisplayMode.commonletters) || displayMode.IsFlagSet(AlphabetDisplayMode.extendedletters))
            {
                items = (from n in Enumerable.Range(97, 26) select new AlphabetItem()
                {
                    isEnabled = false, Value = Char.ConvertFromUtf32(n), DisplayName = Char.ConvertFromUtf32(n).ToString().ToUpper(), isSelected = false
                }).ToList();
            }
            if (displayMode.IsFlagSet(AlphabetDisplayMode.extendedletters))
            {
                items.AddRange(GetOtherAlphabetItems(false));
            }
            if (displayMode.IsFlagSet(AlphabetDisplayMode.addUnmatchLetters))
            {
                otherChars = GetOtherAlphabetItems(true);
            }

            foreach (String l in availableWords)
            {
                if (items.Where(i => i.Value == l).Any())
                {
                    items.Where(i => i.Value == l).FirstOrDefault().isEnabled = true;
                }
                else if (System.Text.RegularExpressions.Regex.IsMatch(l, @"[^\w\.@-]", System.Text.RegularExpressions.RegexOptions.None) && displayMode.IsFlagSet(AlphabetDisplayMode.addUnmatchLetters))
                {
                    String upper = "";
                    try
                    {
                        upper = l.ToUpper();
                    }
                    catch (Exception ex)
                    {
                        upper = l;
                    }
                    items.Add(new AlphabetItem()
                    {
                        isEnabled = true, Value = l, DisplayName = upper
                    });
                }
                else if (otherChars.Where(i => i.Value == l).Any())
                {
                    items.AddRange(otherChars.Where(i => i.Value == l).ToList());
                }
                else
                {
                    hasOtherChars = true;
                }
            }

            items = items.OrderBy(i => i.Value).ToList();

            if (displayMode.IsFlagSet(AlphabetDisplayMode.otherCharsItem))
            {
                items.Insert(0, new AlphabetItem()
                {
                    Type = AlphabetItemType.otherChars, isEnabled = hasOtherChars, Value = "#", DisplayName = ""
                });
            }
            if (displayMode.IsFlagSet(AlphabetDisplayMode.allCharsItem))
            {
                items.Insert(0, new AlphabetItem()
                {
                    DisplayAs = AlphabetItem.AlphabetItemDisplayAs.first, isEnabled = true, Type = AlphabetItemType.all, Value = ""
                });
            }
            items.LastOrDefault().DisplayAs = AlphabetItem.AlphabetItemDisplayAs.last;

            if (activeWord != "-1")
            {
                if (items.Where(i => i.Value == activeWord && i.isEnabled).Any())
                {
                    items.Where(i => i.Value == activeWord && i.isEnabled).FirstOrDefault().isSelected = true;
                }
                else if (items.Where(i => i.Value == activeWord && !i.isEnabled).Any() && displayMode.IsFlagSet(AlphabetDisplayMode.allCharsItem))
                {
                    items.Where(i => i.Type == DomainModel.Helpers.AlphabetItemType.all).FirstOrDefault().isSelected = true;
                    activeWord = "";
                }
                else
                {
                    activeWord = "";
                }
                View.SelectedItem = activeWord;
            }

            View.LoadItems(items);
        }