Esempio n. 1
0
        public async Task <ActionResult <CheckList> > Post([FromBody] CheckList checkList)
        {
            /*CheckList check = new CheckList()
             * {
             *  NombreP = checkList.NombreP,
             *  Transporteur = checkList.Transporteur,
             *  Tracteur = checkList.Tracteur,
             *  Date = checkList.Date,
             *  CatchAll = BsonDocument.Parse(checkList.CatchAll.ToString())
             * };*/
            var blockage = new Blockage();

            var jsonDoc = JsonConvert.SerializeObject(checkList.CatchAll);

            checkList.CatchAll = BsonSerializer.Deserialize <Dictionary <string, object> >(jsonDoc);
            System.Diagnostics.Debug.WriteLine(jsonDoc);
            System.Diagnostics.Debug.WriteLine(checkList.CatchAll);

            var conducteur = _conducteurRepo.GetConducteurByCIN(checkList.Conducteur["cin"]);
            var vehicule   = _vehiculeRepo.GetVehiculeByMatricule(checkList.Vehicule["matricule"]);
            var site       = _siteRepo.GetSiteByLibelle(checkList.Site);

            var conducteurID = conducteur != null ? conducteur.Id : -1;
            var vehiculeID   = vehicule != null ? vehicule.Id : -1;
            var siteID       = site != null ? site.Id : -1;

            // var blockageID = -1;
            if (!string.IsNullOrEmpty(checkList.ImageURL))
            {
                var imagePath = ConvertImage(checkList.ImageURL);
                checkList.ImageURL = imagePath;

                /*foreach (var image in checkList.ImagesURL)
                 * {
                 *  var imagePath = ConvertImage(image.Value);
                 *  checkList.ImagesURL[image.Key] = imagePath;
                 *  var imageKey = image.Key;
                 *  var index = 0;
                 *  foreach (var item in image.Value)
                 *  {
                 *      var imagePath = ConvertImage(item);
                 *      checkList.ImagesURL[imageKey][index] = imagePath;
                 *      index++;
                 *      System.Diagnostics.Debug.WriteLine("Image Path: " + imagePath);
                 *      System.Diagnostics.Debug.WriteLine("Image Index: " + checkList.ImagesURL[imageKey][index]);
                 *  }
                 * }*/
            }


            if (conducteur == null)
            {
                Conducteur cond = new Conducteur()
                {
                    Cin        = checkList.Conducteur["cin"],
                    NomComplet = checkList.Conducteur["nomComplet"]
                };

                await _conducteurRepo.Create(cond);

                conducteurID = cond.Id;
            }

            if (vehicule == null)
            {
                Vehicule vehi = new Vehicule()
                {
                    Matricule = checkList.Vehicule["matricule"],
                    IdEngin   = _vehiculeRepo.GetEnginByName(checkList.Vehicule["engin"])
                };

                await _vehiculeRepo.Create(vehi);

                vehiculeID = vehi.Id;
            }

            if (site == null)
            {
                Site st = new Site()
                {
                    Libelle = checkList.Site,
                };

                await _siteRepo.Create(site);

                siteID = st.Id;
            }

            checkList.Vehicule["idVehicule"]     = vehiculeID.ToString();
            checkList.Conducteur["idConducteur"] = conducteurID.ToString();

            await _checkListRepo.Create(checkList);

            System.Diagnostics.Debug.WriteLine(checkList.Id.ToString());
            System.Diagnostics.Debug.WriteLine(checkList.Controlleur);
            _context.CheckListRef.Add(new CheckListRef()
            {
                IdCheckListRef = checkList.Id.ToString(),
                Date           = checkList.Date.Value.Date,
                Rating         = checkList.Rating,
                Etat           = checkList.Etat,
                IdConducteur   = conducteurID,
                IdVehicule     = vehiculeID,
                IdSite         = siteID,
                IdControlleur  = Convert.ToInt32(checkList.Controlleur["id"])
            });


            if (checkList.Etat)
            {
                blockage.IdVehicule   = vehiculeID;
                blockage.DateBlockage = checkList.Date.Value.Date;
                blockage.IdCheckList  = checkList.Id;
                blockage.ImageUrl     = checkList.ImageURL;
                _context.Blockage.Add(blockage);
            }

            _context.SaveChanges();
            // checkList.Vehicule["idBlockage"] = blockage.IdVehicule != null ? blockage.Id.ToString() : "-1";
            // System.Diagnostics.Debug.WriteLine("BlockageID:" + blockageID);
            return(CreatedAtAction("GetCheckList", new { id = checkList.Id.ToString() }, checkList));
        }
        public async Task <ActionResult <CheckList> > Post([FromBody] CheckList checkList)
        {
            /*CheckList check = new CheckList()
             * {
             *  NombreP = checkList.NombreP,
             *  Transporteur = checkList.Transporteur,
             *  Tracteur = checkList.Tracteur,
             *  Date = checkList.Date,
             *  CatchAll = BsonDocument.Parse(checkList.CatchAll.ToString())
             * };*/
            var blockage = new Blockage();

            var jsonDoc = JsonConvert.SerializeObject(checkList.CatchAll);

            checkList.CatchAll = BsonSerializer.Deserialize <Dictionary <string, object> >(jsonDoc);
            System.Diagnostics.Debug.WriteLine(jsonDoc);
            System.Diagnostics.Debug.WriteLine(checkList.CatchAll);

            var conducteur = _conducteurRepo.GetConducteurByNumBadge(checkList.Conducteur["numBadge"]);
            var vehicule   = _vehiculeRepo.GetVehiculeByMatricule(checkList.Vehicule["matricule"]);
            var site       = _siteRepo.GetSiteByLibelle(checkList.Site);

            var conducteurID = conducteur != null ? conducteur.Id : -1;
            var vehiculeID   = vehicule != null ? vehicule.Id : -1;
            var siteID       = site != null ? site.Id : -1;
            var blockageID   = -1;

            if (conducteur == null)
            {
                Conducteur cond = new Conducteur()
                {
                    NumBadge   = checkList.Conducteur["numBadge"],
                    NomComplet = checkList.Conducteur["nomComplet"]
                };

                await _conducteurRepo.Create(cond);

                conducteurID = cond.Id;
            }

            if (vehicule == null)
            {
                Vehicule vehi = new Vehicule()
                {
                    Matricule = checkList.Vehicule["matricule"],
                    IdEngin   = _vehiculeRepo.GetEnginByName(checkList.Vehicule["engin"])
                };

                await _vehiculeRepo.Create(vehi);

                vehiculeID = vehi.Id;
            }

            if (site == null)
            {
                Site st = new Site()
                {
                    Libelle = checkList.Site,
                };

                await _siteRepo.Create(site);

                siteID = st.Id;
            }

            checkList.Vehicule["idVehicule"]     = vehiculeID.ToString();
            checkList.Conducteur["idConducteur"] = conducteurID.ToString();

            await _checkListRepo.Create(checkList);

            System.Diagnostics.Debug.WriteLine(checkList.Id.ToString());

            _context.CheckListRef.Add(new CheckListRef()
            {
                IdCheckListRef = checkList.Id.ToString(),
                Date           = checkList.Date.Value.Date,
                Rating         = checkList.Rating,
                Etat           = checkList.Etat,
                IdConducteur   = conducteurID,
                IdVehicule     = vehiculeID,
                IdSite         = siteID
            });


            if (checkList.Etat)
            {
                blockage.IdVehicule   = vehiculeID;
                blockage.DateBlockage = checkList.Date.Value.Date;
                blockage.IdCheckList  = checkList.Id;
                _context.Blockage.Add(blockage);
            }
            _context.SaveChanges();
            checkList.Vehicule["idBlockage"] = blockage.IdVehicule != null?blockage.Id.ToString() : "-1";

            System.Diagnostics.Debug.WriteLine("BlockageID:" + blockageID);
            return(CreatedAtAction("GetCheckList", new { id = checkList.Id.ToString() }, checkList));
        }