public async Task <IActionResult> PostAsync(ProjectInsert model)
        {
            try
            {
                Project_AIModelConfigController aiModelConfigController = new Project_AIModelConfigController();
                Project project = new Project();
                project.CopyProperties(model);
                project = await InsertModelAsync(project);

                foreach (var item in model.AiModelConfigIds)
                {
                    await aiModelConfigController.PostAsync(new Project_AIModelConfig(item, project.Id));
                }
                var images = new MultipleData()
                {
                    Data = model.Images
                };
                foreach (var data in images.Data)
                {
                    data.ProjectId = project.Id;
                }
                await Base64Controller.MultipleImageUpload(images);

                return(Ok());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(StatusCode(500));
            }
        }
        public async Task <Model> PutAsync(Model model)
        {
            Model oldProject = await GetAsyncOnlyProject(model.Id);

            Model oldProjectConverted = await GetAsync(model.Id);

            string labelPath = oldProject.LabeledPath;

            if (oldProjectConverted.LabeledPath != model.LabeledPath)
            {
                labelPath = await Base64Controller.CocoUploadAsync(new Data(model.Id, model.Name, "", model.LabeledPath));
            }
            List <Data> removes1 = new List <Data>();
            List <Data> removes2 = new List <Data>();

            foreach (Data data in model.Images)
            {
                bool done = false;

                if (oldProjectConverted.Images != null)
                {
                    foreach (var image in oldProjectConverted.Images)
                    {
                        if (image.Base64 == data.Base64 && image.Id == data.Id)
                        {
                            removes1.Add(data);
                            removes2.Add(image);
                            done = true;
                        }
                    }
                }
                if (!done)
                {
                    await Base64Controller.ImageUploadAsync(data);
                }
            }

            foreach (var data in removes1)
            {
                model.Images.Remove(data);
            }

            foreach (var data in removes2)
            {
                oldProjectConverted.Images?.Remove(data);
            }

            if (oldProjectConverted.Images != null)
            {
                foreach (var data in oldProjectConverted.Images)
                {
                    await Base64Controller.RemoveImageAsync(data);
                }
            }

            Model newModel = new Project()
            {
                CreationDate       = model.CreationDate,
                Description        = model.Description,
                FinishedAnnotation = model.FinishedAnnotation,
                LabeledPath        = labelPath,
                Name      = model.Name,
                Timestamp = model.Timestamp,
                Id        = model.Id
            };
            Model respondModel = await UpdateModelAsync(newModel);

            string dir_path = $"./Ressources/Labels/{newModel.Id}_{newModel.Name}";

            if (System.IO.File.Exists(dir_path))
            {
                respondModel.LabeledPath = System.IO.File.ReadAllText(dir_path);
            }
            return(respondModel);
        }
 public Task UploadSingleCoco(Data data)
 {
     return(Base64Controller.CocoUploadAsync(data));
 }