public InsertWords(MySortableBindingList<Rijec> lr)
 {
     lista_svih_rijeci = new List<Rijec>();
     lista_svih_rijeci_koje_su_root = new List<Rijec>();
     lista_tipova = new List<TipRijeci>();
     filtrirana_lista_rijeci = new MySortableBindingList<Rijec>();
     lista_rijeci = lr;
     brojUnesenihRijeci = 0;
     InitializeComponent();
 }
 public TextResult(MySortableBindingList<Rijec> lr, string n, Tekst t)
 {
     naziv = n;
     lista_rijeci = lr;
     lista_rijeci_gramatika = new MySortableBindingList<Rijec>();
     lista_rijeci_poslije_gramatike = new MySortableBindingList<Rijec>();
     Gramatika = false;
     tekst = t;
     InitializeComponent();
 }
 void loadGrid()
 {
     var hs = HistoryHoiVienController.GetToDay();
     MySortableBindingList<HistoryHoiVien> li =
         new MySortableBindingList<HistoryHoiVien>(hs);
     dataGridView1.DataSource = li;
 }
        private void OptionsCalculator_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                DataManager.Init();
                lstPortfolios = new BindingList<Entities.Portfolio>(DataManager.Portfolios);
                lstInstruments = new BindingList<Entities.Instrument>(DataManager.Instruments);
                lstDesc = new MySortableBindingList<ViewModel.DeskViewModel>();
                allViewModels = new BindingList<ViewModel.DeskViewModel>();
                listBaseContract = new List<string>();
                MatDates2BaseContracts=new Dictionary<string,List<DateTime>>();

                ConnectionManager.OnAccount += DataManager.UpdateAccount;
                ConnectionManager.OnNewInstrument += DataManager.AddInstrument;
                ConnectionManager.OnInstrument += DataManager.UpdateInstrument;
                ConnectionManager.OnPosition += DataManager.UpdatePosition;
                ConnectionManager.OnConnected += new Action<string>(ConnectionManager_OnConnected);
                ConnectionManager.OnError += new Action<string>(ConnectionManager_OnError);
                ConnectionManager.OnNewAccount+=DataManager.AddAccount;
                ConnectionManager.OnNewPosition += DataManager.AddPosition;

                dgrPortfolios.ItemsSource = lstPortfolios;
                //dgrODesk.ItemsSource = lstInstruments;
                dgrDesc.CanUserSortColumns = true;
                dgrDesc.ItemsSource = lstDesc;

                comboBoxBaseContract.ItemsSource = listBaseContract;
                comboBoxBaseContract.SelectionChanged += new SelectionChangedEventHandler(comboBoxBaseContract_SelectionChanged);

            }
            catch (Exception exp)
            {
                mainLog.Error("Error on DataManager or ConnectionManager initialization {0}",exp.Message);
            }
        }
 public ViewTexts(List<Tekst> lt)
 {
     lista_teksta = lt;
     lista_rijeci = new MySortableBindingList<Rijec>();
     InitializeComponent();
 }
        private static void LoadConfig()
        {
            authors.Clear();
            //author_texts.Clear();
            try
            {
                if (File.Exists(config))
                using (StreamReader st = new StreamReader(config))
                {
                    XmlSerializer sr = new XmlSerializer(typeof(MySortableBindingList<Author>));
                    authors = (MySortableBindingList<Author>)sr.Deserialize(st);
                }
                //if (File.Exists(author_texts_file))
                //    using (StreamReader st = new StreamReader(author_texts_file))
                //    {
                //        SerializableDictionary<string, MySortableBindingList<AuthorText>> author_texts_temp = new SerializableDictionary<string, MySortableBindingList<AuthorText>>();
                //        XmlSerializer sr = new XmlSerializer(typeof(SerializableDictionary<string, MySortableBindingList<AuthorText>>));
                //        author_texts = (SerializableDictionary<string, MySortableBindingList<AuthorText>>)sr.Deserialize(st);

                //    }
            }
            catch(Exception){}
        }
        public static bool UpdateAuthorInfo(string page, Author author)
        {
            Match match = Regex.Match(page, @"Обновлялось:</font></a></b>\s*(.*?)\s*$", RegexOptions.Multiline);
            DateTime date = DateTime.MinValue;
            bool retValue = false;
            if (match.Success)
            {
                string[] newDateStr = match.Groups[1].Value.Split('/');
                date = new DateTime(int.Parse(newDateStr[2]), int.Parse(newDateStr[1]), int.Parse(newDateStr[0]));
            }

            if (author != null)
            {
                #region проанализируем данные на страничке. если раньше их не загружали, то в любом случае не показываем, что есть обновления, просто заполняем данные
                MySortableBindingList<AuthorText> texts_temp = new MySortableBindingList<AuthorText>();
                MatchCollection matches = Regex.Matches(page, "<DL><DT><li>(?:<font.*?>.*?</font>)?\\s*(<b>(?<Authors>.*?)\\s*</b>\\s*)?<A HREF=(?<LinkToText>.*?)><b>\\s*(?<NameOfText>.*?)\\s*</b></A>.*?<b>(?<SizeOfText>\\d+)k</b>.*?<small>(?:Оценка:<b>(?<DescriptionOfRating>(?<rating>\\d+(?:\\.\\d+)?).*?)</b>.*?)?\\s*\"(?<Section>.*?)\"\\s*(?<Genres>.*?)?\\s*(?:<A HREF=\"(?<LinkToComments>.*?)\">Комментарии:\\s*(?<CommentsDescription>(?<CommentCount>\\d+).*?)</A>\\s*)?</small>.*?(?:<br><DD>(?<Description>.*?))?</DL>");
                if (matches.Count > 0)
                {
                    int cnt = 0;
                    foreach (Match m in matches)
                    {
                        AuthorText item = new AuthorText();
                        item.Description = NormalizeHTML(m.Groups["Description"].Value).Trim();
                        item.Genres = NormalizeHTML(m.Groups["Genres"].Value);
                        item.Link = m.Groups["LinkToText"].Value;
                        item.Name = NormalizeHTML(m.Groups["NameOfText"].Value);
                        item.Order = cnt;
                        item.SectionName = NormalizeHTML(m.Groups["Section"].Value).Replace("@","");
                        item.Size = int.Parse(m.Groups["SizeOfText"].Value);
                        texts_temp.Add(item);
                        cnt++;
                    }
                }
                if (author.Texts.Count > 0) // если раньше загружали проводим стравнение
                {
                    foreach (AuthorText txt in texts_temp)
                    {
                        bool bFound = false;
                        for (int i = 0; i < author.Texts.Count; i++)
                        {
                            if (txt.Description == author.Texts[i].Description
                                && txt.Name == author.Texts[i].Name
                                && txt.Size == author.Texts[i].Size)
                            {
                                bFound = true;
                                txt.IsNew = author.Texts[i].IsNew;// переносим значение isNew в новый массив, чтобы не потерять непрочитанные новые тексты
                                break;
                            }
                        }
                        if (!bFound)
                        {
                            txt.IsNew = author.IsNew = retValue = true;// да, автор обновился
                            if (date <= author.UpdateDate) // поменяем дату на сегодняшнюю, если дата обновления на страничке старее, чем зарегистрированная у нас
                                author.UpdateDate = DateTime.Today;
                            else // иначе ставим дату, указанную автором
                                author.UpdateDate = date;
                        }
                    }
                    // доп проверка по количеству произведений
                    if (texts_temp.Count != author.Texts.Count)
                    {
                        retValue = true;
                        if (date <= author.UpdateDate) // поменяем дату на сегодняшнюю, если дата обновления на страничке старее, чем зарегистрированная у нас
                            author.UpdateDate = DateTime.Today;
                        else// иначе ставим дату, указанную автором
                            author.UpdateDate = date;
                    }

                    // запоминаем новые данные
                }
                author.Texts = texts_temp;
                #endregion
            }
            return retValue;
        }