public DatabasePresentationWindow()
        {
            InitializeComponent();
            using (DatabaseContext siContext = new DatabaseContext())
            {
                var query = (from Product in siContext.Product
                            select  Product).ToList();
                List<Product> comments = new List<Product>();

                foreach (var comment in query)
                {
                    comments.Add(comment);
                }
                productsDb.ItemsSource = comments.ToList();
            }
            using (DatabaseContext siContext = new DatabaseContext())
            {
                var query = (from Product in siContext.Product
                             select Product.Comments).ToList();
                List<CommentDb> comments = new List<CommentDb>();

                foreach (var comment in query)
                {
                    if (comment.Count > 0)
                    {
                        foreach (var com in comment)
                        {
                            com.Comment = Regex.Replace(com.Comment, @"<[^>]+>|&nbsp;", "").Trim();
                            comments.Add(com);
                        }
                    }
                }
                commentData.ItemsSource = comments.ToList();
            }
        }
Exemplo n.º 2
0
 private void buttonClearDb(object sender, RoutedEventArgs e)
 {
     DatabaseContext context = new DatabaseContext();
     context.Comments.RemoveRange(context.Comments);
     context.Product.RemoveRange(context.Product);
     context.SaveChanges();
 }
Exemplo n.º 3
0
        /// <summary>
        /// Dla serwisu skapiec.pl pobiera całą zawartość z komentarzami
        /// </summary>
        /// <param name="statistic"></param>
        /// <param name="product"></param>
        /// <returns></returns>
        public Product getPagesContent(IStatisctics statistic, Product product)
        {
            System.Net.WebClient client = new System.Net.WebClient();
            client.Encoding = Encoding.UTF8;
            ILinkProvider provider = new SkapiecLinkProvider(m_downloadString);
            using (var db = new DatabaseContext())
            {

                string link = "";
                while ((link = provider.getLink()) != "")
                {
                    statistic.addDowlodedPage(link);
                    string pageContent = client.DownloadString(link);
                    pagesContent.Add(pageContent);
                }
                return product;
            }
        }
        private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            using (DatabaseContext siContext = new DatabaseContext())
            {
                var query = (from Product in siContext.Product
                             select Product.Comments).ToList();
                List<CommentDb> comments = new List<CommentDb>();

                foreach (var comment in query)
                {
                    if (comment.Count > 0)
                    {
                        foreach (var com in comment)
                        {
                            com.Comment = Regex.Replace(com.Comment, @"<[^>]+>|&nbsp;", "").Trim();
                            comments.Add(com);
                        }
                    }
                }
                commentData.ItemsSource = comments.ToList();
            }
        }
        private void productSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            using (DatabaseContext siContext = new DatabaseContext())
            {
                if (productsDb.SelectedItem is Product)
                {

                var item = (Product)productsDb.SelectedItem;
                   var getProduct = from Product in siContext.Product where Product.Model.Equals(item.Model) select Product.Comments;
                    List<CommentDb> comments = new List<CommentDb>();

                    foreach (var comment in getProduct)
                    {
                        if (comment.Count > 0)
                        {
                            foreach (var com in comment)
                            {
                                com.Comment = Regex.Replace(com.Comment, @"<[^>]+>|&nbsp;", "").Trim();
                                comments.Add(com);
                            }
                        }
                    }
                    commentData.ItemsSource = comments.ToList();
                }
                else
                {
                    commentData.ItemsSource = new List<Product>();

                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Funcja dodająca proddukt do bd, wraz ze sprawdzaniem czy dany komentarz dla danego produktu istnieje
        /// </summary>
        /// <param name="product"></param>
        /// <param name="statistic"></param>
        private void addProductToDatabase(Product product, IStatisctics statistic)
        {
            try
            {
                using (var db = new DatabaseContext())
                {
                    IQueryable<Product> productsInDb = from p in db.Product
                                                       where
                         p.Brand.Equals(product.Brand) &&
                         p.Model.Equals(product.Model) &&
                         p.Type.Equals(product.Type)
                                                       select p;// select db.Product;//and p.Model.E;

                    if (productsInDb != null)
                    {
                        foreach (Product productInDb in productsInDb)
                        {
                            DateTime time = DateTime.Now;

                            foreach (CommentDb dowloadedProd in product.Comments)
                            {
                                bool contains = productInDb.Comments.Any(x => {
                                    bool returnValue = true;
                                    if (dowloadedProd.Advantages != null && x.Advantages != null)
                                        returnValue &= dowloadedProd.Advantages.Equals(x.Advantages);
                                    if (dowloadedProd.Disadvantages != null && x.Disadvantages != null)
                                        returnValue &= dowloadedProd.Disadvantages.Equals(x.Disadvantages);
                                    if (dowloadedProd.Comment != null && x.Comment != null)
                                        returnValue &= dowloadedProd.Comment.Equals(x.Comment);
                                    if (dowloadedProd.Date != null && x.Date != null)
                                        returnValue &= dowloadedProd.Date.Equals(x.Date);
                                    returnValue &= dowloadedProd.Recommend.Equals(x.Recommend);
                                    returnValue &= dowloadedProd.Stars.Equals(x.Stars);
                                    returnValue &= dowloadedProd.Usability.Equals(x.Usability);
                                    returnValue &= dowloadedProd.UsabilityVotes.Equals(x.UsabilityVotes);
                                    returnValue &= dowloadedProd.Author.Equals(x.Author);
                                    return returnValue;
                                });
                                if (contains) { }
                                else
                                {
                                    dowloadedProd.LoadDate = time;
                                    statistic.addAddedComment(dowloadedProd.Comment);

                                    productInDb.Comments.Add(dowloadedProd);
                                }
                            }
                        }
                        if (productsInDb.Count() == 0)
                        {
                            DateTime time = DateTime.Now;
                            foreach (CommentDb com in product.Comments)
                            {
                                com.LoadDate = time;
                                statistic.addAddedComment(com.Comment);
                            }

                            db.Product.Add(product);
                        }

                    }
                    else
                    {
                        DateTime time = DateTime.Now;
                        foreach (CommentDb com in product.Comments)
                        {
                                com.LoadDate = time;
                                statistic.addAddedComment(com.Comment);
                        }
                        db.Product.Add(product);
                    }
                    db.SaveChanges();
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                        .SelectMany(x => x.ValidationErrors)
                        .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new System.Data.Entity.Validation.DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
        }
Exemplo n.º 7
0
        private void buttonSaveToFile(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.SaveFileDialog dialog = new Microsoft.Win32.SaveFileDialog();
            dialog.FileName = "Document"; // Default file name
            dialog.DefaultExt = ".xml"; // Default file extension
            dialog.Filter = "Xml documents (.xml)|*.xml"; // Filter files by extension
            if (dialog.ShowDialog(this) == true)
            {
                using (DatabaseContext siContext = new DatabaseContext())
                {
                    List<Product> query = (from Product in siContext.Product
                                           select Product).ToList();
                    using (var writer = System.Xml.XmlWriter.Create(dialog.FileName))
                    {
                        writer.WriteStartDocument();
                        writer.WriteStartElement("InfoDb");
                        foreach (Product product in query)
                        {
                            writer.WriteStartElement("Product");
                            writer.WriteElementString("ProductId", product.ProductId.ToString());
                            writer.WriteElementString("Type", product.Type);
                            writer.WriteElementString("Brand", product.Brand);
                            writer.WriteElementString("Model", product.Model);
                            foreach (CommentDb comment in product.Comments)
                            {
                                writer.WriteStartElement("CommentBlock");
                                writer.WriteElementString("CommentDbID", comment.CommentDbID.ToString());
                                writer.WriteElementString("Comment", comment.Comment);
                                writer.WriteElementString("Stars", comment.Stars.ToString());
                                writer.WriteElementString("Advantages", comment.Advantages);
                                writer.WriteElementString("Disadvantages", comment.Disadvantages);
                                writer.WriteElementString("Author", comment.Author);
                                writer.WriteElementString("Date", comment.Date.ToString());
                                writer.WriteElementString("Recomend", comment.Recommend.ToString());
                                writer.WriteElementString("Usability", comment.Usability.ToString());
                                writer.WriteElementString("UsabilityVotes", comment.UsabilityVotes.ToString());
                                writer.WriteElementString("PortalName", comment.PortalName);
                                writer.WriteEndElement();

                            }
                            writer.WriteEndElement();
                        }
                    }
                }
            }
        }