예제 #1
0
        public bool canCreate(Planning planning)
        {
            UserRepository     _userRepository     = new UserRepository();
            PlanningRepository _planningRepository = new PlanningRepository();

            if (_userRepository.Get(planning.IdSuperUser) == null)
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
        public bool canCreate(Event eventt)
        {
            EventCategoryRepository _eventCategoryRepository = new EventCategoryRepository();
            PlanningRepository      _planningRepository      = new PlanningRepository();
            EventRepository         _eventRepository         = new EventRepository();

            // interdiction de créer un évenement avec une catégorie qui n'existe pas
            if (_eventCategoryRepository.Get(eventt.IdEventCategory) == null)
            {
                return(false);
            }

            // interdiction de crééer un évenement dans un planning qui n'existe pas
            if (_planningRepository.Get(eventt.IdPlanning) == null)
            {
                return(false);
            }

            return(true);
        }
예제 #3
0
        public bool canCreate(Invitation invitation)
        {
            MemberRepository     _memberRepository     = new MemberRepository();
            UserRepository       _userRepository       = new UserRepository();
            PlanningRepository   _planningRepository   = new PlanningRepository();
            InvitationRepository _invitationRepository = new InvitationRepository();

            // interdiction d'inviter le même utilisateur pour le même planning
            if (_invitationRepository.GetByUserAndPlanning(invitation.IdUserRecever, invitation.IdUserRecever) != null)
            {
                return(false);
            }

            // interdiction d'inviter un utilisateur déjà existant dans le planning
            if (_memberRepository.Get(invitation.IdUserRecever, invitation.IdPlanning) != null)
            {
                return(false);
            }

            // interdiction d'inviter un utilisateur qui n'existe pas
            if (_userRepository.Get(invitation.IdUserRecever) == null)
            {
                return(false);
            }

            // interdiction d'inviter un superUtilisateur à son propre planning
            if (_planningRepository.GetBySuperUser(invitation.IdUserRecever) != null)
            {
                return(false);
            }

            // interdiction d'inviter un utilisateur vers un planning qui n'existe pas
            if (_planningRepository.Get(invitation.IdPlanning) == null)
            {
                return(false);
            }

            return(true);
        }
예제 #4
0
 public PlanningController(PlanningRepository planRepo)
 {
     _planRepo = planRepo;
 }
예제 #5
0
        /// <summary>
        /// Maakt een planning aan voor alle beschikbare inspecteurs
        /// </summary>
        /// <param name="id">Het ID van het festival</param>
        /// <param name="destination">De bestemming van het festival</param>
        /// <param name="inspectorNeeded">Hoeveelheid benodigde inspectoren</param>
        /// <returns></returns>
        public async Task <List <Account> > GetInspectorAsync(int id, string destination, int inspectorNeeded)
        {
            PlanningRepository repo    = new PlanningRepository();
            LocationService    service = new LocationService();

            List <Account> accounts   = repo.GetFreeInspectors(id);
            List <Account> inspectors = new List <Account>();

            string[] tempInspectors = new string[inspectorNeeded];
            double[] distances      = new double[accounts.Count];

            string[] data = new string[accounts.Count];

            // Role check
            for (int i = 0; i < accounts.Count; i++)
            {
                if (accounts[i].Rol != "in")
                {
                    accounts.Remove(accounts[i]);
                }
            }

            // Als er te weinig Inspectors zijn
            if (accounts.Count < inspectorNeeded)
            {
                return(null);
            }

            // Hier word de afstand berekend
            for (int i = 0; i < accounts.Count; i++)
            {
                string address = accounts[i].Straatnaam + " " + accounts[i].Huisnummer + " " + accounts[i].Stad;
                distances[i] = await service.CalculateDistance(address, destination);

                data[i] = accounts[i].Gebruikersnaam + " " + distances[i];
            }

            distances = distances.OrderBy(d => d).ToArray();

            for (int i = 0; i < inspectorNeeded; i++)
            {
                double tmp = distances[i];

                for (int y = 0; y < accounts.Count; y++)
                {
                    if (data[y].Contains(tmp.ToString()))
                    {
                        tempInspectors[i] = data[y];
                    }
                }

                for (int x = 0; x < accounts.Count; x++)
                {
                    if (tempInspectors[i].Contains(accounts[x].Gebruikersnaam))
                    {
                        inspectors.Add(accounts[i]);
                    }
                }
            }

            // Alles toevoegen aan de ingeplande inspecteurs YA GET MEE
            foreach (Account result in inspectors)
            {
                repo.AddToPlanning(result.AccountID, id);
            }


            return(inspectors);
        }
        public void ShouldReturnListOfPlansWithProjectNames()
        {
            var options = new DbContextOptionsBuilder <PlanningDataContext>()
                          .UseInMemoryDatabase(databaseName: "Test_Planning_Database")
                          .Options;


            using (var ctx = new PlanningDataContext(options, mockConfig.Object, true))
            {
                ctx.Plannings.AddRange(
                    new ProjectPlanning
                {
                    Id         = 1,
                    EmployeeId = 1,
                    ProjectId  = 1,
                    Q1         = 1,
                    Q2         = 1,
                    Q3         = 1,
                    Q4         = 1,
                    year       = 2018,
                    Deleted    = false
                },
                    new ProjectPlanning
                {
                    Id         = 2,
                    EmployeeId = 1,
                    ProjectId  = 2,
                    Q1         = 1,
                    Q2         = 1,
                    Q3         = 1,
                    Q4         = 1,
                    year       = 2018,
                    Deleted    = true
                },
                    new ProjectPlanning
                {
                    Id         = 3,
                    EmployeeId = 2,
                    ProjectId  = 2,
                    Q1         = 1,
                    Q2         = 1,
                    Q3         = 1,
                    Q4         = 1,
                    year       = 2018,
                    Deleted    = true
                }

                    );

                ctx.Projects.AddRange(
                    new Project
                {
                    Id          = 1,
                    ProjectName = "test1"
                },
                    new Project
                {
                    Id          = 2,
                    ProjectName = "test2"
                }
                    );

                ctx.SaveChanges();
            }

            // Use a clean instance of the context to run the test
            using (var ctx = new PlanningDataContext(options, mockConfig.Object, true))
            {
                var planningRepo = new PlanningRepository(ctx);
                var result       = planningRepo.GetEmployeePlansWithProjectName(1).ToList();

                Assert.Single(result);
            }
        }