public async Task <IActionResult> UpdatePlant(int id, [FromBody] UpdatePlantDto input) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (input.Id != id) { return(BadRequest("Ids mismatch")); } var plant = await _plantService.GetPlantById(id); var result = await _plantService.UpdatePlant(input); var slikeToAdd = input.Slike.Where(s => !plant.Slike.Any(sb => sb.Slika == s.Slika)).ToList(); var slikeUPrirodiToAdd = input.SlikeUPrirodi.Where(s => !plant.SlikeUPrirodi.Any(sb => sb.Slika == s.Slika)).ToList(); var slikeToAddAll = slikeToAdd.Concat(slikeUPrirodiToAdd).ToList(); var slikeToRemove = plant.Slike.Where(sb => !input.Slike.Any(s => s.Slika == sb.Slika)).ToList(); var slikeUPrirodiToRemove = plant.SlikeUPrirodi.Where(sb => !input.SlikeUPrirodi.Any(s => s.Slika == sb.Slika)).ToList(); var slikeToRemoveAll = slikeToRemove.Concat(slikeUPrirodiToRemove).ToList(); await _plantService.CreatePlantImages(slikeToAddAll); await _plantService.DeletePlantImages(slikeToRemoveAll); try { ImagesHelper.SaveImages(slikeToAddAll, _env.ContentRootPath); DeleteImages(slikeToRemoveAll); // byte[] bytes = Convert.FromBase64String(input.SlikaBase64); // var path = Path.Combine(_env.ContentRootPath, "wwwroot", "images", input.Slika); // System.IO.File.WriteAllBytes(path, bytes); } catch (System.Exception) { // } // try // { // byte[] bytes = Convert.FromBase64String(input.SlikaUPrirodiBase64); // var path = Path.Combine(_env.ContentRootPath, "wwwroot", "images", input.SlikaUPrirodi); // System.IO.File.WriteAllBytes(path, bytes); // } // catch (System.Exception) // { // // // } if (result == null) { return(NotFound(new { Message = $"Plant with id {id} not found" })); } return(Ok(result)); }
public void UpdatePlant([FromBody] Plant plant) { _plantService.UpdatePlant(plant); }