public virtual Product GetProductById(int productId)
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.Product.Include(x => x.ProductCategory).Where(x => x.ProductId == productId).Single());
     }
 }
 public virtual ProductCategory GetCategoryById(int id)
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.ProductCategory.Where(x => x.ProductCategoryId == id).Include(x => x.ParentProductCategory).Single());
     }
 }
 public virtual List <Product> GetAllProducts()
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.Product.Include(x => x.ProductCategory).ToList());
     }
 }
 public virtual List <Business> GetBusinesses()
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.Business.Include(x => x.Address).ToList());
     }
 }
 public virtual int SaveOrder(Order order)
 {
     using (var context = new JPNFinalProjectContext()) {
         context.Order.Add(order);
         context.SaveChanges();
         return(context.Order.Last().OrderId);
     }
 }
        public virtual Person GetPersonByOrderId(int orderId)
        {
            using (var context = new JPNFinalProjectContext()) {
                var personId = context.Order.Where(x => x.OrderId == orderId).Select(x => x.PersonId).Single();

                return(context.Person.Where(x => x.PersonId == personId).Include(x => x.Address).Select(x => x).Single());
            }
        }
 public virtual void AddCategory(ProductCategory category)
 {
     using (var context = new JPNFinalProjectContext())
     {
         context.Add(category);
         context.SaveChanges();
     }
 }
        public virtual int SavePerson(Person person)
        {
            using (var context = new JPNFinalProjectContext()) {
                context.Person.Add(person);
                context.SaveChanges();

                return(context.Person.Last().PersonId);
            }
        }
 public virtual List <OrderProduct> GetOrderProducts(int orderId)
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.OrderProduct.Where(x => x.OrderId == orderId).Select(x => x)
                .Include(x => x.Product)
                .ToList());
     }
 }
 public virtual Business GetBusinessOrder(int orderId)
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.BusinessOrder.Where(x => x.OrderId == orderId)
                .Select(x => x.Business)
                .Single());
     }
 }
        public virtual int SaveBusiness(Business business)
        {
            using (var context = new JPNFinalProjectContext()) {
                context.Business.Add(business);
                context.SaveChanges();

                return(context.Business.Last().BusinessId);
            }
        }
 public virtual List <Business> GetBusinessesByPostal(string postalCode)
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.Business
                .Where(x => x.Address.PostalCode == postalCode)
                .Include(x => x.Address)
                .ToList());
     }
 }
 public virtual void SaveOrderProduct(List <OrderProduct> orderProducts)
 {
     using (var context = new JPNFinalProjectContext()) {
         foreach (var op in orderProducts)
         {
             context.OrderProduct.Add(op);
         }
         context.SaveChanges();
     }
 }
 public virtual void AddRandomProduct(Product input, int CategoryID)
 {
     using (var context = new JPNFinalProjectContext())
     {
         var cat = context.ProductCategory.FirstOrDefault(x => x.ProductCategoryId == CategoryID);
         input.ProductCategory = cat;
         context.Product.Add(input);
         context.SaveChanges();
     }
 }
 public virtual void SaveBusinessOrder(int businessId, int orderId)
 {
     using (var context = new JPNFinalProjectContext()) {
         BusinessOrder entity = new BusinessOrder()
         {
             BusinessId = businessId, OrderId = orderId
         };
         context.BusinessOrder.Add(entity);
         context.SaveChanges();
     }
 }
 public virtual List <ProductCategory> GetAllCategoriesWithProducts()
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.ProductCategory
                .Include(x => x.Product)
                .Include(x => x.ParentProductCategory)
                .Where(x => x.Product.Count != 0)
                .ToList());
     }
 }
 public virtual List <Order> GetOrders()
 {
     using (var context = new JPNFinalProjectContext())
     {
         return(context.Order
                .Include(x => x.Person)
                .Include(x => x.Person.Address)
                .Include(x => x.BusinessOrder)
                .Include(x => x.OrderProduct)
                .ToList());
     }
 }
 public virtual List <Product> GetAllProductsByIdV2(List <OrderProduct> orderProducts)
 {
     using (var context = new JPNFinalProjectContext())
     {
         List <Product> products = new List <Product>();
         foreach (var op in orderProducts)
         {
             var p = context.Product.Where(x => x.ProductId == op.ProductId).Select(x => x).Single();
             products.Add(p);
         }
         return(products);
     }
 }
        public virtual void DeleteOrder(int orderId)
        {
            using (var context = new JPNFinalProjectContext()) {
                var businessOrder = context.BusinessOrder.Where(x => x.OrderId == orderId).Select(x => x).Single();
                context.BusinessOrder.Remove(businessOrder);

                var orderProducts = context.OrderProduct.Where(x => x.OrderId == orderId).Select(x => x).ToList();
                orderProducts.ForEach(x => context.OrderProduct.Remove(x));

                var order = context.Order.Where(x => x.OrderId == orderId).Select(x => x).Single();

                var person = context.Person.Where(x => x.PersonId == order.PersonId).Select(x => x).Single();
                context.Person.Remove(person);

                context.Order.Remove(order);

                context.SaveChanges();
            }
        }
        public virtual void DeleteProductsFromOrder(int orderId, List <int> productIds)
        {
            using (var context = new JPNFinalProjectContext()) {
                foreach (var pId in productIds)
                {
                    foreach (var op in context.OrderProduct.Where(x => x.OrderId == orderId).Select(x => x).ToList())
                    {
                        if (op.ProductId == pId)
                        {
                            context.OrderProduct.Remove(op);
                            context.SaveChanges();
                        }
                    }
                }

                var priceSum     = context.OrderProduct.Where(x => x.OrderId == orderId).Select(x => x.Price).ToList().Sum();
                var VATFromPrice = (priceSum / 100) * 25;
                var priceWithVAT = priceSum + VATFromPrice;
                context.Order.Where(x => x.OrderId == orderId).Select(x => x).Single().TotalPrice = priceWithVAT;

                context.SaveChanges();
            }
        }
        public static void Seed()
        {
            var streets = new List <string>()
            {
                "Møllebakken 17",
                "Møllebakken 48",
                "Bakkelunden 92",
                "Præstelund 60",
                "Mølleløkken 55"
            };
            var postalcodes = new List <string>()
            {
                "5260",
                "5250",
                "5700",
                "5800",
                "5000"
            };
            var cities = new List <string>()
            {
                "Odense S",
                "Odense SV",
                "Svendborg",
                "Nyborg",
                "Odense C"
            };

            var businessNames = new List <string>()
            {
                "Matas Odense S",
                "Matas Odense C",
                "Matas Nyborg",
                "Matas Svendborg"
            };

            var phonenumbers = new List <string>()
            {
                "61634047",
                "43257692",
                "78593871",
                "12893738",
                "56784721"
            };
            var businessEmail = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**"
            };
            var personNames = new List <string>()
            {
                "Ida Iversen",
                "Mads Moelgaard",
                "Christa Christensen",
                "Lars Lersø",
                "Jette Jerspersen"
            };
            var categoryNames = new List <string>()
            {
                "Barbering",
                "Skraber",
                "Hudpleje",
                "Ansigtpleje"
            };

            // Creating
            using (var context = new JPNFinalProjectContext())
            {
                //address
                for (int i = 0; i < streets.Count; i++)
                {
                    context.Address.Add(new Address()
                    {
                        Street     = streets[i],
                        PostalCode = postalcodes[i],
                        City       = cities[i],
                        Country    = "Denmark"
                    });
                }
                //business
                context.SaveChanges();
                for (int i = 0; i < businessNames.Count; i++)
                {
                    context.Business.Add(new Business()
                    {
                        Name            = businessNames[i],
                        Address         = context.Address.Where(x => x.Street == streets[i]).FirstOrDefault(),
                        Phone           = phonenumbers[i],
                        Email           = businessEmail[i],
                        OperationalHour = "24/7"
                    });
                }
                //person
                context.SaveChanges();
                for (int i = 0; i < streets.Count; i++)
                {
                    context.Person.Add(new Person()
                    {
                        Name     = personNames[i],
                        Email    = "*****@*****.**",
                        Password = "******",
                        Phone    = phonenumbers[i],
                        Type     = "????",
                        Address  = context.Address.Where(x => x.Street == streets[i]).FirstOrDefault()
                    });
                }
                context.SaveChanges();
                // Productcategories
                context.ProductCategory.Add(new ProductCategory()
                {
                    Name = "Barbering",
                    ParentProductCategory = null
                });
                context.ProductCategory.Add(new ProductCategory()
                {
                    Name = "Skraber",
                    ParentProductCategory = context.ProductCategory.Where(x => x.Name == "Barbering").FirstOrDefault()
                });
                context.ProductCategory.Add(new ProductCategory()
                {
                    Name = "Hudpleje",
                    ParentProductCategory = null
                });
                context.ProductCategory.Add(new ProductCategory()
                {
                    Name = "Ansigtpleje",
                    ParentProductCategory = context.ProductCategory.Where(x => x.Name == "Hudpleje").FirstOrDefault()
                });
                context.SaveChanges();

                // products
                context.Product.Add(new Product()
                {
                    Name            = "Matas Fugtighedscreme 250 ml",
                    Price           = 54,
                    Description     = "Matas Fugtighedscreme 250 ml",
                    ItemNumber      = "34897537",
                    Amount          = 500,
                    DeliveryTime    = new DateTimeOffset(),
                    ProductCategory = context.ProductCategory.Where(x => x.Name == "Ansigtpleje").FirstOrDefault()
                });

                context.Product.Add(new Product()
                {
                    Name            = "baKblade barberblade",
                    Price           = 129,
                    Description     = "3-pak barberblade til baKblade rygskraber",
                    ItemNumber      = "34297537",
                    Amount          = 50,
                    DeliveryTime    = new DateTimeOffset(),
                    ProductCategory = context.ProductCategory.Where(x => x.Name == "Skraber").FirstOrDefault()
                });

                context.Product.Add(new Product()
                {
                    Name            = "Barberians cph, Barber Kniv",
                    Price           = 700,
                    Description     = "Barberians cph, Barber Kniv",
                    ItemNumber      = "14297537",
                    Amount          = 5,
                    DeliveryTime    = new DateTimeOffset(),
                    ProductCategory = context.ProductCategory.Where(x => x.Name == "Skraber").FirstOrDefault()
                });
                context.SaveChanges();

                // Product product
                context.BusinessProduct.Add(new BusinessProduct()
                {
                    Business = context.Business.Where(x => x.Name == "Matas Odense S").FirstOrDefault(),
                    Product  = context.Product.Where(x => x.Name == "Barberians cph, Barber Kniv").FirstOrDefault()
                });
                context.BusinessProduct.Add(new BusinessProduct()
                {
                    Business = context.Business.Where(x => x.Name == "Matas Nyborg").FirstOrDefault(),
                    Product  = context.Product.Where(x => x.Name == "baKblade barberblade").FirstOrDefault()
                });
                context.BusinessProduct.Add(new BusinessProduct()
                {
                    Business = context.Business.Where(x => x.Name == "Matas Svendborg").FirstOrDefault(),
                    Product  = context.Product.Where(x => x.Name == "Matas Fugtighedscreme 250 ml").FirstOrDefault()
                });
                context.SaveChanges();
            }
        }
 public virtual Order GetOrderByOrderNumber(int orderId)
 {
     using (var context = new JPNFinalProjectContext()) {
         return(context.Order.Include(x => x.Person).Include(x => x.Person.Address).Include(x => x.BusinessOrder).Include(x => x.OrderProduct).Where(x => x.OrderId == orderId).Select(x => x).Single());
     }
 }
 public virtual Business GetBusinessById(int id)
 {
     using (var context = new JPNFinalProjectContext()) {
         return(context.Business.Where(x => x.BusinessId == id).Select(x => x).Include(x => x.Address).First());
     }
 }