public void Dispose()
 {
     try
     {
         ResultItems.Clear(batch: false, force: true);
         Contents = null;
     }
     catch (Exception ex) { ex.ERROR("DisposeSearchResult"); }
     finally { }
 }
Example #2
0
        public void ClearAll()
        {
            SelectedItems.Clear();
            ResultItemsCTable.Clear();
            ResultItems.Clear();
            ProcessingTree.Clear();

            CommissionItems.Clear();

            CustomerObj = null;

            Note           = "";
            IsModified     = true;
            BillSimulateID = "";
            BranchObj      = null;

            SetDbObject(new CTable(""));

            DocumentDate = DateTime.Now;
            SimulateTime = DateTime.Now;
        }
        private async void ShowResultInline(Pixeez.Tokens tokens, string content, string filter = "", string next_url = "", bool append = false)
        {
            try
            {
                if (string.IsNullOrEmpty(content))
                {
                    return;
                }

                ResultItems.Wait();
                var setting = Application.Current.LoadSetting();
                if (!append)
                {
                    ResultItems.Clear(setting.BatchClearThumbnails);
                    id_user.Clear();
                    id_illust.Clear();
                }

                var no_filter     = string.IsNullOrEmpty(filter);
                var filter_string = no_filter ? string.Empty : $" ({filter.Replace("users入り", "+ Favs")})";
                ResultExpander.Header = $"Search Results{filter_string}, {content}";

                if (content.StartsWith("UserID:", StringComparison.CurrentCultureIgnoreCase))
                {
                    SearchFilter.Visibility = Visibility.Collapsed;

                    var     query   = Regex.Replace(content, @"^UserId: *?(\d+).*?$", "$1", RegexOptions.IgnoreCase).Trim();
                    var     id      = Convert.ToInt64(query);
                    dynamic related = setting.UsingAjaxAPI ? null : await tokens.GetUsersAsync(Convert.ToInt64(query));

                    if (related == null)
                    {
                        related = await id.SearchUserById(tokens);
                    }

                    if (related is List <Pixeez.Objects.UserBase> )
                    {
                        foreach (Pixeez.Objects.UserBase user in related)
                        {
                            if (id_user.Contains(user.Id))
                            {
                                continue;
                            }
                            id_user.Add(user.Id);
                            user.Cache();
                            user.AddTo(ResultItems.Items, next_url);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("IllustID:", StringComparison.CurrentCultureIgnoreCase))
                {
                    var     query   = Regex.Replace(content, @"^IllustID: *?(\d+).*?$", "$1", RegexOptions.IgnoreCase).Trim();
                    var     id      = Convert.ToInt64(query);
                    dynamic related = setting.UsingAjaxAPI ? null : await tokens.GetWorksAsync(id) ?? await tokens.GetIllustDetailAsync(id);

                    if (related == null)
                    {
                        related = await id.SearchIllustById(tokens);
                    }
                    next_url = string.Empty;

                    if (related is List <Pixeez.Objects.Work> )
                    {
                        foreach (Pixeez.Objects.Work illust in related)
                        {
                            if (id_illust.Contains(illust.Id))
                            {
                                continue;
                            }
                            id_illust.Add(illust.Id);
                            illust.Cache();
                            illust.AddTo(ResultItems.Items, next_url);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("User:"******"^User:(.*?)$", "$1", RegexOptions.IgnoreCase).Trim();
                    query = string.IsNullOrEmpty(filter) ? query : $"{query} {filter}";
                    var related = string.IsNullOrEmpty(next_url) ? await tokens.SearchUserAsync(query) :
                                  await tokens.AccessNewApiAsync <Pixeez.Objects.UsersSearchResult>(next_url);

                    next_url = related.next_url ?? string.Empty;

                    if (related is Pixeez.Objects.UsersSearchResult)
                    {
                        ResultExpander.Tag = next_url;
                        foreach (var user in related.Users)
                        {
                            if (id_user.Contains(user.User.Id))
                            {
                                continue;
                            }
                            user.User.Cache();
                            user.User.AddTo(ResultItems.Items, next_url);
                            id_user.Add(user.User.Id);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("Fuzzy:", StringComparison.CurrentCultureIgnoreCase))
                {
                    var query = Regex.Replace(content, @"^Fuzzy:(.*?)$", "$1", RegexOptions.IgnoreCase).Trim();
                    query = string.IsNullOrEmpty(filter) ? query : $"{query} {filter}";
                    var related = string.IsNullOrEmpty(next_url) ? await tokens.SearchIllustWorksAsync(query, "title_and_caption") :
                                  await tokens.AccessNewApiAsync <Pixeez.Objects.Illusts>(next_url);

                    if (related is Pixeez.Objects.Illusts)
                    {
                        ResultExpander.Tag = next_url;
                        foreach (var illust in related.illusts)
                        {
                            if (id_illust.Contains(illust.Id))
                            {
                                continue;
                            }
                            illust.Cache();
                            illust.AddTo(ResultItems.Items, next_url);
                            id_illust.Add(illust.Id);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("Tag:", StringComparison.CurrentCultureIgnoreCase))
                {
                    var query = Regex.Replace(content, @"^Tag:(.*?)$", "$1", RegexOptions.IgnoreCase).Trim();
                    query = string.IsNullOrEmpty(filter) ? query : $"{query} {filter}";
                    var related = string.IsNullOrEmpty(next_url) ? await tokens.SearchIllustWorksAsync(query, "exact_match_for_tags") :
                                  await tokens.AccessNewApiAsync <Pixeez.Objects.RecommendedRootobject>(next_url);

                    next_url = related.next_url ?? string.Empty;

                    if (related is Pixeez.Objects.Illusts && related.illusts is Array)
                    {
                        ResultExpander.Tag = next_url;
                        foreach (var illust in related.illusts)
                        {
                            if (id_illust.Contains(illust.Id))
                            {
                                continue;
                            }
                            illust.Cache();
                            illust.AddTo(ResultItems.Items, related.next_url);
                            id_illust.Add(illust.Id);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("Fuzzy Tag:", StringComparison.CurrentCultureIgnoreCase))
                {
                    var query = Regex.Replace(content, @"^Fuzzy Tag:(.*?)$", "$1", RegexOptions.IgnoreCase).Trim();
                    query = string.IsNullOrEmpty(filter) ? query : $"{query} {filter}";
                    var related = string.IsNullOrEmpty(next_url) ? await tokens.SearchIllustWorksAsync(query, "partial_match_for_tags") : await tokens.AccessNewApiAsync <Pixeez.Objects.RecommendedRootobject>(next_url);

                    next_url = related.next_url ?? string.Empty;

                    if (related is Pixeez.Objects.Illusts && related.illusts is Array)
                    {
                        ResultExpander.Tag = next_url;
                        foreach (var illust in related.illusts)
                        {
                            if (id_illust.Contains(illust.Id))
                            {
                                continue;
                            }
                            illust.Cache();
                            illust.AddTo(ResultItems.Items, related.next_url);
                            id_illust.Add(illust.Id);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                else if (content.StartsWith("Caption:", StringComparison.CurrentCultureIgnoreCase))
                {
                    var query = Regex.Replace(content, @"^Caption:(.*?)$", "$1", RegexOptions.IgnoreCase).Trim();
                    query = string.IsNullOrEmpty(filter) ? query : $"{query} {filter}";
                    var related = string.IsNullOrEmpty(next_url) ? await tokens.SearchIllustWorksAsync(query, "title_and_caption") : await tokens.AccessNewApiAsync <Pixeez.Objects.RecommendedRootobject>(next_url);

                    next_url = related.next_url ?? string.Empty;

                    if (related is Pixeez.Objects.Illusts && related.illusts is Array)
                    {
                        ResultExpander.Tag = next_url;
                        foreach (var illust in related.illusts)
                        {
                            if (id_illust.Contains(illust.Id))
                            {
                                continue;
                            }
                            illust.Cache();
                            illust.AddTo(ResultItems.Items, related.next_url);
                            id_illust.Add(illust.Id);
                            this.DoEvents();
                        }
                        this.DoEvents();
                    }
                }
                ResultItems.UpdateTilesImage();

                if (ResultItems.Items.Count() == 1 && no_filter)
                {
                    ResultItems.SelectedIndex = 0;
                    Commands.Open.Execute(ResultItems);
                }
                if (ResultItems.Items.Count() <= 1 && no_filter)
                {
                    if (ResultItems.Items.Count() <= 0)
                    {
                        $"Searching \"{Contents}\" No Result".ShowToast("INFO");
                    }

                    if (ParentWindow != null)
                    {
                        this.DoEvents();
                        await Task.Delay(1);

                        ParentWindow.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ResultItems.Fail();
                if (ex is NullReferenceException)
                {
                    $"Searching \"{Contents}\" No Result".ShowToast("WARNING", tag: "ShowResultInline");
                }
                else
                {
                    ex.Message.ShowToast("ERROR", tag: "ShowResultInline");
                }
            }
            finally
            {
                if (ParentWindow is ContentWindow)
                {
                    ResultItems.Ready();
                    (ParentWindow as MetroWindow).AdjustWindowPos();
                }
            }
        }