Пример #1
0
 public Task <ApiResponse <SolutionDto> > UpdateSolutionAsync(UpdateSolutionDto dto)
 {
     return(PutAsync <UpdateSolutionDto, ApiResponse <SolutionDto> >(_clientOptions.UpdateSolutionUrl, dto));
 }
Пример #2
0
        /// <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));
        }
Пример #3
0
 public async Task <IActionResult> UpdateAsync([FromBody] UpdateSolutionDto solution)
 {
     return(ApiResult(await _solutionService.UpdateAsync(solution)));
 }