Esempio n. 1
0
        /*Skapar en ny relation mellan branscher, där branchA är branschen som användaren väljer först och
         * branchB är den bransch som användaren väljer bland relevanta förslagen*/
        public void CreateBranchRelation(int branchA, int branchB)
        {
            try {
                //Hämtar första branschen och kontrollerar att den är branchA
                Branch fromBranch = ApplicationDbContext.Branches.Include(x => x.BranchRelations).Single(f => f.BranchId == branchA);

                //Om branchA inte finns skapas det en ny relation som kan göras mot branchA
                if (fromBranch.BranchRelations == null)
                {
                    fromBranch.BranchRelations = new List <BranchRelation>();
                }

                /*Om det inte finns en tidigare relation mellan branchA och branchB skapas det en ny relation, och 1 poäng
                 * tilldelas efter att användaren har valt branchA efter branchB som sedan sparas i databasen*/
                if (fromBranch.BranchRelations.Where(x => x.branchBId2 == branchB.ToString()).Count() == 0)
                {
                    BranchRelation branchRelation = new BranchRelation();
                    branchRelation.branchBId2 = branchB.ToString();
                    branchRelation.CountClick = 1;
                    ApplicationDbContext.Branches.Single(x => x.BranchId == branchA).BranchRelations.Add(branchRelation);
                    ApplicationDbContext.SaveChanges();
                }

                /*Om det finns en tidigare relation mellan branscherna kommer det att tilldelas 1 poäng för varje gång man
                 * väljer samma bransch A och därefter samma bransch B*/
                else
                {
                    AddClickToBranchRelation(branchA, branchB);
                }
                ApplicationDbContext.SaveChanges();
            } catch (Exception e) {
                throw e;
            }
        }
Esempio n. 2
0
        //Hämtar antalet poäng som den valda tjänsten har fått
        private async Task <List <ClickOfService> > GetClickOfServices(List <DistanceScoreAndBookingSystem> distanceScoreAndBookingSystem, Service selectedService, int totClick)
        {
            BranchRepository branchRepository = new BranchRepository(ApplicationDbContext);

            List <ClickOfService> clickOfService = new List <ClickOfService>();

            foreach (var item in distanceScoreAndBookingSystem)
            {
                //Distanspoäng + baspoäng
                double counter = item.distanceScore + 5;

                foreach (var service in item.bookingSystemOfInterest.bookingSystem.Services)
                {
                    double score = 1;
                    if (selectedService.Branch.BranchRelations.Any(y => y.branchBId2 == service.Branch.BranchId.ToString()))
                    {
                        //Skapar en branschrelation med den valda tjänsten
                        BranchRelation branchRelation = selectedService.Branch.BranchRelations.Single(x => x.branchBId2 == service.Branch.BranchId.ToString());
                        //Räknar antalet bokningar(klick för att boka)
                        int click = branchRelation.CountClick;
                        score += (double)click / totClick;
                    }

                    ClickOfService aObject = new ClickOfService();
                    aObject.service = service;

                    aObject.score = score * counter;
                    clickOfService.Add(aObject);
                }
            }

            return(await Task.FromResult(clickOfService));
        }
Esempio n. 3
0
        //Uppdaterar en relation med ett till klick mellan bransch A och B.
        public void AddClickToBranchRelation(int branchA, int branchB)
        {
            //Hämtar bransch A, som är den första valda branschen i bokningsflödet.
            Branch fromBranch = ApplicationDbContext.Branches.Include(x => x.BranchRelations).Single(x => x.BranchId == branchA);

            //Hämtar bransch B, baserat på den tidigare valda branschen.
            BranchRelation branchRelation = fromBranch.BranchRelations.Single(x => Int32.Parse(x.branchBId2) == branchB);

            //Lägger till ett klick och sparar i databasen
            branchRelation.CountClick++;
            ApplicationDbContext.SaveChanges();
        }