Beispiel #1
0
        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));
        }
Beispiel #2
0
        public async Task <PlantDto> UpdatePlant(UpdatePlantDto input)
        {
            var plant = await _context.Plants.FirstOrDefaultAsync(p => p.Id == input.Id);

            if (plant != null)
            {
                _mapper.Map <UpdatePlantDto, Plant>(input, plant);
                await _context.SaveChangesAsync();

                return(_mapper.Map <Plant, PlantDto>(plant));
            }

            return(null);
        }