public List <IndexBlogViewModel> GetAllPosts()
 {
     try {
         var db    = new DbEl();
         var posts = db.BlogPosts.OrderByDescending(i => i.Timestamp).ToList();
         var list  = new List <IndexBlogViewModel>();
         foreach (var item in posts)
         {
             var post = new IndexBlogViewModel
             {
                 BlogModelId = item.BlogModelId,
                 Timestamp   = item.Timestamp.ToString(),
                 Header      = item.Header,
                 ImagePath   = item.ImagePath,
                 Ingress     = item.Ingress
             };
             list.Add(post);
         }
         return(list);
     }
     catch (Exception exc)
     {
         throw exc;
     }
 }
        public List <ListCustomerViewModel> GetCustomers()
        {
            var _db       = new DbEl();
            var customers = _db.Customers.OrderByDescending(i => i.DaySigned).ToList();
            var list      = new List <ListCustomerViewModel>();

            foreach (var item in customers)
            {
                var model = new ListCustomerViewModel {
                    SocialSecurity = item.SocialSecurity,
                    CustomerId     = item.CustomerId,
                    Firstname      = item.Firstname,
                    Lastname       = item.Lastname,
                    Address        = item.Address,
                    City           = item.City,
                    Email          = item.Email,
                    Postnumber     = item.Postnumber,
                    ClientDeal     = item.ClientModel != null ? item.ClientModel : null,
                    ScrapeDeal     = item.ScrapeModel != null ? item.ScrapeModel : null,
                    Timestamp      = item.DaySigned.ToString(),
                    AreaCode       = item.AreaCode != null ? item.AreaCode : null,
                    HasConfirmed   = item.HasConfirmed,
                    IpAdress       = item.IpAdress,
                    LetUsGetInfo   = item.LetUsGetInfo,
                    Paymentmethod  = item.Paymentmethod,
                    PropertyCode   = item.PropertyCode != null ? item.PropertyCode : null,
                    StartDate      = item.StartDate
                };
                list.Add(model);
            }
            return(list);
        }
Example #3
0
        private void RemoveContent(string typ, int förbrukning, int ElområdeId)
        {
            DbEl db   = new DbEl();
            var  list = db.ScrapeModels.Where(i => i.Typ == typ && i.Förbrukning == förbrukning && i.ElområdeId == ElområdeId).ToList();

            db.ScrapeModels.RemoveRange(list);
            db.SaveChanges();
        }
        public void RemovePost(int id)
        {
            var db   = new DbEl();
            var post = db.BlogPosts.Find(id);

            db.BlogPosts.Remove(post);
            db.SaveChanges();
        }
        public void UpdatePost(AddBlogPostViewModel model)
        {
            var db   = new DbEl();
            var post = db.BlogPosts.Find(model.BlogModelId);

            post.Header      = model.Header;
            post.HtmlContent = model.HtmlContent;
            post.Ingress     = model.Ingress;
            post.Timestamp   = DateTime.Now;

            db.Entry(post).State = EntityState.Modified;
            db.SaveChanges();
        }
        public void SavePost(AddBlogPostViewModel model)
        {
            var db   = new DbEl();
            var post = new BlogModel
            {
                Header      = model.Header,
                HtmlContent = model.HtmlContent,
                ImagePath   = _ImageHelper.SaveImage(model.Image),
                Ingress     = model.Ingress,
                Timestamp   = DateTime.Now
            };

            db.BlogPosts.Add(post);
            db.SaveChanges();
        }
Example #7
0
        public void UpdateClientDeal(AddDealViewModel model)
        {
            var _db       = new DbEl();
            var deal      = _db.ClientModels.Find(model.ClientId);
            var HasChange = EqualsClient(model, deal);

            if (HasChange)
            {
                return;
            }

            if (_db.Customers.Any(i => i.ClientId == deal.ClientId))
            {
                throw new Exception();
            }

            _db.ClientModels.Remove(deal);
            SaveDeal(model);

            _db.SaveChanges();
        }
        public DisplayBlogPostViewModel GetSinglePost(int id)
        {
            var db = new DbEl();

            if (db.BlogPosts.Any(i => i.BlogModelId == id))
            {
                var post  = db.BlogPosts.Find(id);
                var model = new DisplayBlogPostViewModel
                {
                    Header      = post.Header,
                    HtmlContent = post.HtmlContent,
                    Ingress     = post.Ingress,
                    ImagePath   = post.ImagePath,
                    Timestamp   = post.Timestamp.ToString(),
                    BlogModelId = post.BlogModelId
                };
                return(model);
            }
            else
            {
                throw new Exception();
            }
        }
Example #9
0
        public async Task <bool> GetHtmlAsync(string typ, int förbrukning, string url, int ElområdeId)
        {
            DbEl db = new DbEl();
            var  r  = new Random();

            if (IsExisting(typ, förbrukning, ElområdeId))
            {
                RemoveContent(typ, förbrukning, ElområdeId);
            }

            var httpClient = new HttpClient();
            var html       = await httpClient.GetStringAsync(url);

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(html);

            var AllListElements = htmlDoc.DocumentNode.Descendants("li")
                                  .Where(node => node.GetAttributeValue("class", "")
                                         .StartsWith("panel epk-list-item")).ToList();

            var Links = htmlDoc.DocumentNode.Descendants("a")
                        .Where(node => node.GetAttributeValue("href", "")
                               .StartsWith("/sv/Elpriskollen/Avtalssida/?ellevid="))
                        .Select(i => i.GetAttributeValue("href", "").Replace("amp;", "")).ToList();

            var headers = AllListElements.Select(i => i.Descendants("h3").Select(x => x.InnerText).ToList()).ToList();

            var Price = htmlDoc.DocumentNode.Descendants("div")
                        .Where(node => node.GetAttributeValue("class", "")
                               .Equals("epk-list-price col-md-2 col-sm-3 ")).Select(i => i.InnerText).ToList();

            var Company = htmlDoc.DocumentNode.Descendants("dd")
                          .Where(node => node.GetAttributeValue("class", "")
                                 .Equals("epk-list-contract-company")).Select(i => i.InnerText).ToList();

            var Contract = htmlDoc.DocumentNode.Descendants("dd")
                           .Where(node => node.GetAttributeValue("class", "")
                                  .Equals("epk-list-contract-type")).Select(i => i.InnerText).ToList();



            var list = new List <ScrapeModel>();

            for (int i = 0; i < Links.Count; i++)
            {
                var model = new ScrapeModel();
                model.Company     = Company[i].Trim();
                model.Contract    = Contract[i].Trim();
                model.Price       = Price[i].Trim();
                model.ExtraInfo   = headers[i][0].Trim();
                model.Typ         = typ;
                model.Förbrukning = förbrukning;
                model.ElområdeId  = ElområdeId;
                model.Rating      = 0;
                var extraUrl    = "https://www.ei.se" + Links[i];
                var extraClient = new HttpClient();
                var extraHtml   = await httpClient.GetStringAsync(extraUrl);

                var extraHtmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(extraHtml);

                var ExtraAttributes = htmlDoc.DocumentNode.Descendants("td")
                                      .Where(node => node.GetAttributeValue("class", "")
                                             .StartsWith("value")).Select(node => node.InnerText.Trim()).ToList();

                var PaymentMethod = htmlDoc.DocumentNode.Descendants("td")
                                    .Where(node => node.GetAttributeValue("class", "")
                                           .Equals("well")).Select(x => x.InnerText).ToList()[5].Split(',');

                model.Autogiro       = PaymentMethod.Any(p => p.Trim().Equals("Autogiro")) ? true : false;
                model.EFaktura       = PaymentMethod.Any(p => p.Trim().Equals("E-faktura")) ? true : false;
                model.Pappersfaktura = PaymentMethod.Any(p => p.Trim().Equals("Traditionell")) ? true : false;


                var SunSource = htmlDoc.DocumentNode.Descendants("li")
                                .Where(node => node.GetAttributeValue("class", "")
                                       .Equals("epk-energy-type epk-energy-solar")).Select(x => x.InnerText).ToList();
                model.Sol = SunSource.Count > 0 ? true : false;

                var WindSource = htmlDoc.DocumentNode.Descendants("li")
                                 .Where(node => node.GetAttributeValue("class", "")
                                        .Equals("epk-energy-type epk-energy-wind")).Select(x => x.InnerText).ToList();
                model.Vind = WindSource.Count > 0 ? true : false;

                var WaterSource = htmlDoc.DocumentNode.Descendants("li")
                                  .Where(node => node.GetAttributeValue("class", "")
                                         .Equals("epk-energy-type epk-energy-water")).Select(x => x.InnerText).ToList();
                model.Vatten = WaterSource.Count > 0 ? true : false;

                var BioSource = htmlDoc.DocumentNode.Descendants("li")
                                .Where(node => node.GetAttributeValue("class", "")
                                       .Equals("epk-energy-type epk-energy-bio")).Select(x => x.InnerText).ToList();
                model.Bio = BioSource.Count > 0 ? true : false;

                var EnvironmentalSource = htmlDoc.DocumentNode.Descendants("li")
                                          .Where(node => node.GetAttributeValue("class", "")
                                                 .Equals("epk-energy-type epk-bramiljoval")).Select(x => x.InnerText).ToList();
                model.Miljömärkt = EnvironmentalSource.Count > 0 ? true : false;


                model.ÅrsAvgift          = ExtraAttributes[0];
                model.Engångsavgift      = ExtraAttributes[1];
                model.Fastpris           = ExtraAttributes[2];
                model.RörligtInköpsPris  = ExtraAttributes[3];
                model.RörligtPåslag      = ExtraAttributes[4];
                model.Miljöpåslag        = ExtraAttributes[5];
                model.RörligtMiljöpåslag = ExtraAttributes[6];
                model.Rabatt             = ExtraAttributes[7];
                model.Moms                  = ExtraAttributes[10];
                model.Uppsägningstid        = ExtraAttributes[15];
                model.Automatiskförlängning = ExtraAttributes[16];
                model.Omteckningsrätt       = ExtraAttributes[17];
                list.Add(model);
            }
            db.ScrapeModels.AddRange(list);
            db.SaveChanges();
            return(true);
        }
Example #10
0
        private bool IsExisting(string typ, int förbrukning, int ElområdeId)
        {
            DbEl db = new DbEl();

            return(db.ScrapeModels.Any(i => i.Typ == typ && i.Förbrukning == förbrukning && i.ElområdeId == ElområdeId));
        }
        public List <RemovedUserModel> GetDeletedUsers()
        {
            var db = new DbEl();

            return(db.DeletedCustomer.OrderByDescending(i => i.DaySigned).ToList());
        }
        private bool MoveCustomer(Customer c)
        {
            var httpContext = HttpContext.Current;
            var db          = new DbEl();

            if (c.ScrapeId != null)
            {
                var deleted = new RemovedUserModel
                {
                    Address        = c.Address,
                    AdminName      = httpContext.User.Identity.Name,
                    AreaCode       = c.AreaCode,
                    City           = c.City,
                    Company        = c.ScrapeModel.Company,
                    Contract       = c.ScrapeModel.Contract,
                    DateMoved      = DateTime.Now.ToString(),
                    DaySigned      = c.DaySigned,
                    Email          = c.Email,
                    ExtraInfo      = c.ScrapeModel.ExtraInfo,
                    Firstname      = c.Firstname,
                    Förbrukning    = c.ScrapeModel.Förbrukning,
                    HasConfirmed   = c.HasConfirmed,
                    IpAdress       = c.IpAdress,
                    Lastname       = c.Lastname,
                    LetUsGetInfo   = c.LetUsGetInfo,
                    Paymentmethod  = c.Paymentmethod,
                    Postnumber     = c.Postnumber,
                    Price          = c.ScrapeModel.Price,
                    PropertyCode   = c.PropertyCode,
                    SocialSecurity = c.SocialSecurity,
                    StartDate      = c.StartDate,
                    Typ            = c.ScrapeModel.Typ,
                    IsClient       = false,
                    Elområde       = c.ScrapeModel.Elområde.Area
                };
                db.DeletedCustomer.Add(deleted);
                db.SaveChanges();
                return(true);
            }
            else if (c.ClientId != null)
            {
                var deleted = new RemovedUserModel
                {
                    Address        = c.Address,
                    AdminName      = httpContext.User.Identity.Name,
                    AreaCode       = c.AreaCode,
                    City           = c.City,
                    Company        = c.ClientModel.ElBolag.Name,
                    Contract       = c.ClientModel.Contract,
                    DateMoved      = DateTime.Now.ToString(),
                    DaySigned      = c.DaySigned,
                    Email          = c.Email,
                    ExtraInfo      = c.ClientModel.ExtraInfo,
                    Firstname      = c.Firstname,
                    Förbrukning    = c.ClientModel.Förbrukning,
                    HasConfirmed   = c.HasConfirmed,
                    IpAdress       = c.IpAdress,
                    Lastname       = c.Lastname,
                    LetUsGetInfo   = c.LetUsGetInfo,
                    Paymentmethod  = c.Paymentmethod,
                    Postnumber     = c.Postnumber,
                    Price          = c.ClientModel.Price.ToString(),
                    PropertyCode   = c.PropertyCode,
                    SocialSecurity = c.SocialSecurity,
                    StartDate      = c.StartDate,
                    Typ            = c.ClientModel.Typ,
                    IsClient       = true,
                    Elområde       = c.ClientModel.Elområde.Area
                };
                db.DeletedCustomer.Add(deleted);
                db.SaveChanges();
                return(true);
            }
            return(false);
        }