Exemplo n.º 1
0
        /// <summary>
        /// Ajoute une tâche dans la dgv
        /// </summary>
        /// <param name="tache">Données à insérer</param>
        private async Task AddToDgv(TacheReadDto tache)
        {
            string dateFin;

            if (tache.Cycle == 0)             // si la tâche n'a pas de cycle fixe
            {
                dateFin = "";
            }
            else             // sinon on ajoute le cycle à la date de fin
            {
                dateFin = tache.DateFin.ToShortDateString();
            }

            LocataireReadDto idLocataireSuivant = await new ControllerTaches().LocataireSuivant(tache.Id, tache.LocataireId);             // récupère l'id du locataire suivant

            LocataireReadDto locataireSuivant = await _repositoryLocataires.LireId(idLocataireSuivant.Id);

            // todo mettre la datte de fin en rouge si dépassée
            _list.Add(
                new object[]
            {
                tache.Id,
                tache.Nom,
                tache.Locataire.Nom,
                locataireSuivant.Nom,
                dateFin
            }
                );
        }
Exemplo n.º 2
0
        [HttpGet("duLocataire/{id:int}", Name = "GetTachesDuLocataire")]         // indique que cette méthode répond à une requete http
        public async Task <ActionResult <IEnumerable <TacheReadDto> > > GetTachesDuLocataire(int id)
        {
            Locataire locataire = InstanceLocataire.GetById(id);

            if (locataire == null)
            {
                return(NotFound($"Locataire {id} introuvable"));                // si pas trouvé renvoie 404 not found
            }
            // récupère toutes les tâches où le locataire est inscrit
            IList <LiaisonTacheLocataire> liaisons = await
                                                     new LiaisonTacheLocataireRepo(_repository.Context).GetTachesFromLocataire(id)
                                                     as IList <LiaisonTacheLocataire>;

            if (liaisons == null)             // si le locataire n'existe pas
            {
                return(Content("Liste de liaisons nulle"));
            }

            IList <TacheReadDto> tachesReadDtos = new List <TacheReadDto>(liaisons.Count);

            foreach (LiaisonTacheLocataire liaison in liaisons)
            {
                var tacheReadDto = new TacheReadDto();
                _mapper.Map(liaison.Tache, tacheReadDto);

                if (tacheReadDto.LocataireId == id)                // si le locataire actuel est celui renseigné en paramètre
                {
                    tachesReadDtos.Add(tacheReadDto);
                }
            }

            return(Ok(tachesReadDtos));
        }
Exemplo n.º 3
0
        /**
         * <summary>Navigue vers la page de détail de la tâche sélectionnée</summary>
         * <param name="tache">Données de la tâche sélectionnée</param>
         */
        public async Task OnItemSelected(TacheReadDto tache)
        {
            if (tache == null)
            {
                return;
            }

            // This will push the ItemDetailPage onto the navigation stack
            await App.Container.GetService <INavigation>().PushAsync <DetailPage>(nameof(DetailViewModel.TacheId), tache.Id);
        }
Exemplo n.º 4
0
        public ActionResult <TacheReadDto> Create(TacheCreateDto tacheCreateDto)
        {
            Tache tache = _mapper.Map <Tache>(tacheCreateDto); // trouve le model à utiliser

            _repository.Create(tache);                         // crée la command en ram
            _repository.SaveChanges();                         // sauvegarde les changements dans la bdd

            TacheReadDto tacheReadDto = _mapper.Map <TacheReadDto>(tache);

            tacheReadDto.Locataire = InstanceLocataire.GetById(tacheReadDto.LocataireId);

            //return CreatedAtRoute(nameof(GetById), new { Id = commandReadDto.Id }, commandReadDto);
            return(Ok(tacheReadDto));
        }
Exemplo n.º 5
0
        /**
         * <summary>Valide une tâche dans la bdd</summary>
         * <param name="tache">Donnée de la tâche à valider</param>
         */
        public async Task <string> ValidTache(TacheReadDto tache)
        {
            string result;

            try
            {
                // récupère l'id du locataire suivant
                LocataireReadDto locataireSuivant = await _tacheController.TrouveLocataireSuivant(tache.Id, Session.Instance.Get.Id);

                await _tacheController.LocataireSuivant(tache.Id, locataireSuivant.Id);                 // modifie le locataire devant effectuer la tâche

                result = $"La tâche {tache.Nom} est validée";
            }
            catch
            {
                result = "Une erreur est survenue pendant la validation de la tâche";
            }

            return(result);
        }
Exemplo n.º 6
0
        /**
         * <summary>Met à jour le locataire courant en passant au suivant</summary>
         * <param name="id">Id de la tâche concernée</param>
         * <param name="idLocataire">Id du locataire à mettre</param>
         */
        public async Task LocataireSuivant(int id, int idLocataire)
        {
            try
            {
                TacheReadDto tacheReadDto = await _tachesApi.GetById <TacheReadDto>(id);     // récupère les infos du locataire actuel

                tacheReadDto.DateFin     = tacheReadDto.DateFin.AddDays(tacheReadDto.Cycle); // met à jour la datte de fin
                tacheReadDto.LocataireId = idLocataire;                                      // met à jour le locataire courant

                //Initialize the mapper
                MapperConfiguration config = new MapperConfiguration(cfg =>
                                                                     cfg.CreateMap <TacheReadDto, TacheUpdateDto>()
                                                                     );
                Mapper         mapper         = new Mapper(config);
                TacheUpdateDto tacheUpdateDto = mapper.Map <TacheUpdateDto>(tacheReadDto);

                await _tachesApi.Update(tacheUpdateDto);                 // met à jour le locataire
            }
            catch (Exception ex)
            {
                throw new Exception("Impossible de modifier la tâche avec l'id " + id + "  : \n" + ex.Message);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Fourni des paramètres à donner à la page lors de son chargement
        /// </summary>
        /// <param name="args">Arguments pouvant être passé en paramètre lors du chargement d'une page</param>
        public override async void Hydrate(params object[] args)
        {
            base.Hydrate(args);

            if (!AnyArgs())
            {
                return;                                      // si aucun argument on arrête
            }
            _controllerAjouter.IdTache = (int)_arguments[0]; // récupère l'id de la tâche

            UseGridView.ResetAllData();
            flatDataGridView.DataSource = null;
            flatDataGridView.Rows.Clear();

            flatDataGridView.DgvFilled += _controllerAjouter.UpdateDgv;
            //_controllerAjouter.InitColonnes();
            //await _controllerAjouter.FillDgv(); // rempli la dgv
            AfterLoad();

            TacheReadDto tache = await _controllerAjouter.GetTache();      // récupère la tâche

            SetTitre("Modification de la tâche " + tache.Nom);             // modifie le titre

            // modifie les champs
            flatTextName.Text          = tache.Nom;
            flatTextBoxDatteDebut.Text = tache.DateFin.AddDays(-tache.Cycle).ToShortDateString();
            flatTextBoxCycle.Text      = tache.Cycle.ToString();

            // todo reactiver locataire courant
            //flatLabelLocataireCourant.Visible = true;
            //flatListBoxLocataireCourant.Visible = true;
            //flatListBoxLocataireCourant.Text = _controllerAjouter.FillFieldLocataireCourant(tache.Locataire);

            //flatListBoxLocataireCourant.Add(_controllerAjouter.FillListLocataireCourant());

            flatButtonAjouter.Text = @"Modifier";             // modifie le texte du bouton de validation
        }
Exemplo n.º 8
0
        private async Task Ajouter(string name, DateTime datteDebut, int cycle, List <int> idLocataires)
        {
            // Crée la tâche
            TacheReadDto tache = new TacheReadDto()
            {
                Nom         = name,
                DateFin     = datteDebut,
                Active      = true,
                LocataireId = idLocataires[0],
                Cycle       = cycle
            };

            // validation des données
            ValidationResult result = new TacheValidator().Validate(tache);

            if (!result.IsValid)
            {
                Dialog.Show($"{result.Errors[0].PropertyName} : {result.Errors[0].ErrorMessage}");
                return;
            }

            TacheCreateDto tacheCreateDto = TachesProfile.ReadToCreate().Map <TacheCreateDto>(tache);

            // Ajout de la tâche à la bdd
            int idTache = (await _repositoryTaches.Ajouter(tacheCreateDto)).Id;

            // Ajout les locataires à la tâche dans la bdd (table liaison)
            foreach (int idSelected in idLocataires)
            {
                await _liaison.Ajouter(
                    idSelected,
                    idTache
                    );
            }

            Dialog.Show("La tâche " + name + " a bien été ajoutée");
        }
Exemplo n.º 9
0
        /// <summary>
        /// Met à jour la tâche et définit un nouveau locataire devant effectuer la tâche
        /// </summary>
        /// <param name="id">Id de la tâche</param>
        /// <param name="idLocataire">Id du locataire devant effectuer la tâche</param>
        public async Task ModifierLocataireCourant(int id, int idLocataire)
        {
            try
            {
                //todo optimiser avec un patch au lieu de put
                TacheReadDto tacheReadDto = await ApiController.GetById <TacheReadDto>(id);

                tacheReadDto.DateFin     = tacheReadDto.DateFin.AddDays(tacheReadDto.Cycle); // met à jour la datte de fin
                tacheReadDto.LocataireId = idLocataire;                                      // met à jour le locataire courant

                //Initialize the mapper
                MapperConfiguration config = new MapperConfiguration(cfg =>
                                                                     cfg.CreateMap <TacheReadDto, TacheUpdateDto>()
                                                                     );
                Mapper         mapper         = new Mapper(config);
                TacheUpdateDto tacheUpdateDto = mapper.Map <TacheUpdateDto>(tacheReadDto);

                await ApiController.Update(tacheUpdateDto);
            }
            catch (Exception ex)
            {
                throw new Exception("Impossible de modifier la tâche " + id + "  : \n" + ex.Message);
            }
        }
Exemplo n.º 10
0
 public async Task Hydrate(int idTache)
 {
     _tacheReadDto = await _repositoryTaches.LireId(idTache);
 }