public async Task <bool> SetAccommodationAttachmentsAsync(AccommodationAttachmentsFormModel accommodationAttachmentsForm)
        {
            try
            {
                var accommodation = _context.Accommodations.FirstOrDefault(c => c.Id == accommodationAttachmentsForm.AccommodationId);
                if (accommodation is null)
                {
                    throw new ReservationGlobalException(AccommodationServiceErrors.AccommodationNotExistError);
                }

                if (accommodationAttachmentsForm.UploadFiles != null && accommodationAttachmentsForm.UploadFiles.Count > 0)
                {
                    var notFoundFiles = 0;
                    var filesAddress  = new List <FileAddress>();
                    accommodationAttachmentsForm.UploadFiles.ForEach(uf =>
                    {
                        var fileAddress = _context.FileAddresses.Find(uf);
                        if (fileAddress == null)
                        {
                            notFoundFiles++;
                        }
                        filesAddress.Add(fileAddress);
                    });
                    if (notFoundFiles > 0)
                    {
                        throw new ReservationGlobalException(AccommodationServiceErrors.NotExistFileAddresstError);
                    }

                    filesAddress.ForEach(async fa =>
                    {
                        var accommodationAttachment = new AccommodationAttachment()
                        {
                            Accommodation = accommodation,
                            FileId        = fa.FileId,
                            FileSize      = fa.FileSize,
                            FileType      = fa.FileType,
                        };
                        await _context.AccommodationAttachments.AddAsync(accommodationAttachment);
                    });
                    await _context.SaveChangesAsync();
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw new ReservationGlobalException(AccommodationServiceErrors.SetAccommodationAttachmentsError, ex);
            }
        }
Exemplo n.º 2
0
 public async Task <IActionResult> SetAccommodationAttachments([FromBody] AccommodationAttachmentsFormModel accommodationAttachmentsForm)
 {
     return(Ok(GetRequestResult(await _accommodationService.SetAccommodationAttachmentsAsync(accommodationAttachmentsForm))));
 }