public void CreatePicture(PictureBll picture) { if (picture == null) { throw new ArgumentNullException("picture"); } var pictureDal = picture.ToDal(); repository.Create(pictureDal); uow.Commit(); }
public async Task <IActionResult> CreatePictures([FromRoute] Guid experienceId, [FromForm] List <IFormFile> files) { var err = new ErrorObject() { Method = "POST", At = $"/api/experiences/{experienceId}/pictures", StatusCode = 400 }; if (files.Count < 1) { err.Error = "No file sent"; return(BadRequest(err)); } if (files.Count > 3) { err.Error = "Too many files sent"; return(BadRequest(err)); } if (await _experienceRepository.GetFirstByExpressionAsync(x => x.Id == experienceId) == null) { err.StatusCode = 404; err.Error = "No experience found"; return(NotFound(err)); } // get the amount of numbers to make sure we don't cross 3 pictures to an experience var pictures = await _pictureRepository.GetAllByExperienceAsync(experienceId); if (pictures.Count() == 3) { err.Error = "There is already 3 pictures, please remove one before adding another"; return(BadRequest(err)); } foreach (var file in files) { var path = Path.Combine(_fileOptions.Path, $"{Guid.NewGuid()}_{DateTime.UtcNow.Ticks}.jpg"); // save the picture object in database _pictureRepository.Create(new Picture { Path = path, CreatedOn = DateTime.UtcNow, ExperienceId = experienceId, }); if (!await _pictureRepository.SaveAsync()) { err.Error = "Error on saving picture object"; err.StatusCode = 500; _logger.Error(err.Error); return(StatusCode(500, err)); } // save the picture on disk try { using (var stream = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(stream); } } catch (Exception) { err.Error = "Error on saving picture on disk"; err.StatusCode = 500; _logger.Error(err.Error); return(StatusCode(500, err)); } } return(NoContent()); }
public void Create(Picture item) { repository.Create(item); }
public IResult Create(Picture model) { _pictureRepository.Create(model); return(new SuccessResult(Messages.ProductPhotosAdded)); }