public async void AddTeamImages() { try { var teamImagesDto = new TeamImagesDto() { TeamId = 1, DateCreated = DateTime.UtcNow, IsActive = true, Images = new List <ImageDto>() { new ImageDto() { Url = "https://tppapp.blob.core.windows.net/content/Images/Edit_BG.jpg" }, new ImageDto() { Url = "https://tppapp.blob.core.windows.net/content/Images/ChelseaFC_Logo.png" } } }; var result = await _service.AddTeamImages(teamImagesDto); Assert.Equal(true, result); } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <IActionResult> AddTeamImages([FromBody, Required] TeamImagesDto teamImages) { try { if (teamImages == null) { return(BadRequest()); } if (await _service.AddTeamImages(teamImages)) { return(CreatedAtRoute("default", true)); } return(BadRequest("Failed to update the database")); } catch (Exception ex) { Log.Error(ex, ex.Message); return(BadRequest(ex.Message)); } }
public async Task <bool> AddTeamImages(TeamImagesDto teamImages) { var result = true; //Map to the Data Entity object var recDb = Mapper.Map <TeamImages>(teamImages); foreach (var image in teamImages.Images) { //Update a Image DB Record by creating a new one and updating the TeamImage ID, but only if the URL has changed var imageRec = await _db.FindAsync <Image>(query => query .Where($"{nameof(Image.Url):C} = @imageUrl") .WithParameters(new { imageUrl = image.Url })); var imageId = (imageRec != null && imageRec.Any()) ? imageRec.First().Id : 0; if (imageId == 0) { var imgDb = new Image() { Url = image.Url }; await _db.InsertAsync(imgDb); result &= imgDb.Id > 0; imageId = imgDb.Id; } //Update the new record recDb.ImageId = imageId; //Insert the new record into the TeamImages table await _db.InsertAsync(recDb); result &= recDb.Id > 0; } return(result); }