public async Task <ActionResult <string> > PostFiche_Suivi([FromBody] Fiche_Suivi fiche_Suivi)
        {
            ValidationContraint validationFiche_Suivi = new ValidationContraint(_context);

            string testval = validationFiche_Suivi.testPost(fiche_Suivi);

            if (testval == "true")
            {
                return(await mediator.Send(new CreateGenericCommand <Fiche_Suivi>(fiche_Suivi)));
            }
            else
            {
                return(testval);
            }
        }
        public async Task <ActionResult <string> > PostFiche_Suivi(IFormFile fiche_SuiviFormFile)
        {
            ValidationContraint validationFiche_Suivi = new ValidationContraint(_context);

            // fiche_SuiviFormFile.

            StringValues EquipementFilialeID;
            StringValues Index_Debitmetre;
            StringValues FraisEntretienReparation;
            StringValues Date;
            StringValues Etat;
            StringValues PointDeRoseeDuSecheur;
            StringValues THuileC;
            StringValues TempsArret;
            StringValues Nbre_Heurs_Total;
            StringValues TSecheurC;
            StringValues Remarques;
            StringValues PriseCompteurDernierEntretien;
            StringValues Nbre_Heurs_Charge;
            StringValues Index_Electrique;
            StringValues TypeDernierEntretien;
            StringValues NombreHeuresProductionUsineLeJourPrecedent;
            StringValues NombreDeJoursOuvrablesDuMois;


            //
            Request.Form.TryGetValue("Date", out Date);
            Request.Form.TryGetValue("EquipementFilialeID", out EquipementFilialeID);
            Request.Form.TryGetValue("Nbre_Heurs_Total", out Nbre_Heurs_Total);
            Request.Form.TryGetValue("Nbre_Heurs_Charge", out Nbre_Heurs_Charge);
            Request.Form.TryGetValue("TempsArret", out TempsArret);
            Request.Form.TryGetValue("Etat", out Etat);
            Request.Form.TryGetValue("PointDeRoseeDuSecheur", out PointDeRoseeDuSecheur);
            Request.Form.TryGetValue("Index_Debitmetre", out Index_Debitmetre);
            Request.Form.TryGetValue("FraisEntretienReparation", out FraisEntretienReparation);
            Request.Form.TryGetValue("PriseCompteurDernierEntretien", out PriseCompteurDernierEntretien);
            Request.Form.TryGetValue("Remarques", out Remarques);
            Request.Form.TryGetValue("THuileC", out THuileC);
            Request.Form.TryGetValue("Index_Electrique", out Index_Electrique);
            Request.Form.TryGetValue("TypeDernierEntretien", out TypeDernierEntretien);
            Request.Form.TryGetValue("NombreHeuresProductionUsineLeJourPrecedent", out NombreHeuresProductionUsineLeJourPrecedent);
            Request.Form.TryGetValue("NombreDeJoursOuvrablesDuMois", out NombreDeJoursOuvrablesDuMois);

            if (Request.Form.TryGetValue("NombreDeJoursOuvrablesDuMois", out NombreDeJoursOuvrablesDuMois) == false)
            {
                NombreDeJoursOuvrablesDuMois = "0";
            }


            var fiche_Suivi = new Fiche_Suivi()
            {
                EquipementFilialeID      = Guid.Parse(EquipementFilialeID),
                FraisEntretienReparation = Convert.ToInt32(FraisEntretienReparation),
                Date = Convert.ToDateTime(Date),
                Etat = ConvertFromStringToListeEtat(Etat),
                PointDeRoseeDuSecheur = PointDeRoseeDuSecheur,
                THuileC          = Convert.ToDouble(THuileC),
                TempsArret       = Convert.ToDouble(TempsArret),
                Nbre_Heurs_Total = Convert.ToInt32(Nbre_Heurs_Total),
                Remarques        = Remarques,
                PriseCompteurDernierEntretien = Convert.ToInt32(PriseCompteurDernierEntretien),
                Nbre_Heurs_Charge             = Convert.ToInt32(Nbre_Heurs_Charge),
                Index_Electrique     = Convert.ToInt32(Index_Electrique),
                TypeDernierEntretien = ConvertFromStringToTypeEntretien(TypeDernierEntretien),
                NombreHeuresProductionUsineLeJourPrecedent = Convert.ToInt32(NombreHeuresProductionUsineLeJourPrecedent),
                NombreDeJoursOuvrablesDuMois = Convert.ToInt32(NombreDeJoursOuvrablesDuMois),
                Index_Debitmetre             = Convert.ToInt32(Index_Debitmetre)
            };
            //Request.Form.Files
            string testval = validationFiche_Suivi.testPost(fiche_Suivi);

            if (testval == "true")
            {
                // fiche_Suivi.FicheSuiviID= await mediator.Send(new CreateFicheSuiviCommand(fiche_Suivi));
                _context.Fiche_Suivis.Add(fiche_Suivi);
                _context.SaveChanges();
                foreach (IFormFile formFile in Request.Form.Files)
                {
                    if (formFile.Length > 0)
                    {
                        var filePath = Path.GetTempFileName();

                        using (var stream = System.IO.File.Create(filePath))
                        {
                            await formFile.CopyToAsync(stream);
                        }
                    }

                    var tempAttachement = new Attachment();
                    _context.Attachments.Add(tempAttachement);

                    try
                    {
                        var file       = formFile;
                        var folderName = Path.Combine("Resources", "FicheSuiviFiles");
                        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

                        if (file.Length > 0)
                        {
                            var OriginFileName   = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                            var OriginFileFormat = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1, ((file.FileName.Length - 1) - file.FileName.LastIndexOf('.')));
                            var fileName         = "pieceJointeFS" + tempAttachement.AttachmentId;
                            var fullPath         = Path.Combine(pathToSave, fileName);
                            var dbPath           = Path.Combine(folderName, fileName);

                            using (var stream = new FileStream(fullPath, FileMode.Create))
                            {
                                file.CopyTo(stream);
                            }


                            //create attachement for DB table
                            tempAttachement.AttachmentName           = fileName;
                            tempAttachement.AttachmentFileFormat     = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1, ((file.FileName.Length - 1) - file.FileName.LastIndexOf('.')));
                            tempAttachement.AttachmentOriginFileName = OriginFileName;
                            tempAttachement.FicheSuiviID             = fiche_Suivi.FicheSuiviID;
                            tempAttachement.AttachmentPhysicalPath   = fullPath;


                            //assign attachement to fichSuivi
                            _context.Entry(tempAttachement).State = EntityState.Added;
                            _context.SaveChanges();
                        }
                        _context.SaveChanges();
                    }

                    catch (Exception ex)
                    {
                    }
                }
                return("Added done");
            }
            else
            {
                return(testval);
            }
        }