public Task <ApiResponse <SolutionDto> > UpdateSolutionAsync(UpdateSolutionDto dto) { return(PutAsync <UpdateSolutionDto, ApiResponse <SolutionDto> >(_clientOptions.UpdateSolutionUrl, dto)); }
/// <summary> /// Обновить солюшн /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <SolutionDto> UpdateAsync(UpdateSolutionDto dto) { var sol = await _solutionRepository.GetAsync(dto.Id); if (dto.Name != null) { sol.Name = dto.Name; } if (dto.Description != null) { sol.Description = dto.Description; } if (dto.CategoryId != null) { sol.CategoryId = (long)dto.CategoryId; } if (dto.Cloud != null) { sol.Cloud.Name = dto.Cloud.Name; sol.Cloud.Url = dto.Cloud.Url; if (dto.Cloud.Container != null) { sol.Cloud.Container.Image = dto.Cloud.Container.Image; } } ICollection <Photo> photos = new List <Photo>(); if (dto.Photos?.Length > 0) { if (sol.Photos?.Count > 0) { foreach (Photo ph in sol.Photos) { photos.Add(new Photo { Id = ph.Id, Solution = ph.Solution, SolutionId = ph.SolutionId, Data = ph.Data, Type = ph.Type }); } } sol.Photos = _mapper.Map <ICollection <Photo> >(dto.Photos); //await _solutionRepository.UpdateAsync(sol); } await _solutionRepository.SaveChangesAsync(); if (photos.Count > 0) { try { foreach (Photo ph in photos) { await _photoRepository.RemoveAsync(ph); } await _photoRepository.SaveChangesAsync(); } catch (Exception ex) { } } return(_mapper.Map <SolutionDto>(sol)); }
public async Task <IActionResult> UpdateAsync([FromBody] UpdateSolutionDto solution) { return(ApiResult(await _solutionService.UpdateAsync(solution))); }