Пример #1
0
        public Member Create(Member member)
        {
            IInvitationRepository _invitationRepository = new InvitationRepository();

            // interdiction de créer un membre s'il n'y a pas d'invitation en cours
            Invitation invitation = _invitationRepository.GetByUserAndPlanning(member.IdUser, member.IdPlanning);

            if (invitation == null)
            {
                return(null);
            }

            using (var connection = Database.GetConnection())
            {
                connection.Open();
                var command = connection.CreateCommand();

                command.CommandText = MemberQueries.ReqCreate;
                command.Parameters.AddWithValue($"@{MemberQueries.ColIdUser}", member.IdUser);
                command.Parameters.AddWithValue($"@{MemberQueries.ColIdPlanning}", member.IdPlanning);
                command.Parameters.AddWithValue($"@{MemberQueries.ColIsGranted}", member.IsGranted);

                command.ExecuteNonQuery();
            }

            // une fois le membre présent, plus besoin de l'invitation
            _invitationRepository.Delete(invitation.Id);

            return(member);
        }
Пример #2
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);
        }
 public ActionResult<Invitation> GetByIdUserRecever(int idUserRecever, int idPlanning)
 {
     Invitation invitation = _invitationRepository.GetByUserAndPlanning(idUserRecever, idPlanning);
     return invitation != null ? (ActionResult<Invitation>)Ok(invitation) : NotFound();
 }