public async Task <IActionResult> UpdateArtistByIdAsync(string id, UpdateArtist updateArtist) { logger.LogInformation($"Update Artist Body: {updateArtist} - Resource Requested."); var validateId = validation.ValidateId(id); if (validateId.resultValid) { var validateArtist = validation.ValidateUpdateArtistModel(updateArtist); if (validateArtist.resultValid) { if (ModelState.IsValid) { var updatedArtist = await artistManager.UpdateArtistAsync(id, updateArtist); if (updatedArtist != null) { return(Ok(updatedArtist)); } return(NotFound()); } else { return(BadRequest(ModelState)); } } return(BadRequest(validateArtist.message)); } return(BadRequest(validateId.message)); }
public void TaskFailTest() { var task = new UpdateArtist(EmptyDbContext, new FormattingService()); var result = task.DoTask(null); Assert.IsFalse(result.Success); Assert.IsNotNull(result.Exception); }
public void TaskSuccessTest() { var testArtist = TestsModel.Artist; var addArtistTask = new AddArtist(DbContext, new FormattingService()); var addArtistResult = addArtistTask.DoTask(testArtist); Assert.IsTrue(addArtistResult.Success); Assert.IsNull(addArtistResult.Exception); var task = new UpdateArtist(DbContext, new FormattingService()); var toUpdate = testArtist; UpdateArtistModel(toUpdate); var result = task.DoTask(toUpdate); Assert.IsTrue(result.Success); Assert.IsNull(result.Exception); Assert.IsNull(result.Data); var getArtistTask = new GetArtist(DbContext); var artist = getArtistTask.DoTask(toUpdate.Id)?.Data; var formattingService = new FormattingService(); Assert.IsNotNull(artist); Assert.AreEqual(toUpdate.Name, artist.Name); Assert.AreEqual(formattingService.FormatTaxId(toUpdate.TaxId), artist.TaxId); Assert.AreEqual(toUpdate.Email, artist.Email); Assert.AreEqual(toUpdate.Address.Street, artist.Address.Street); Assert.AreEqual(toUpdate.Address.City, artist.Address.City); Assert.AreEqual(toUpdate.Address.Region, artist.Address.Region); Assert.AreEqual(toUpdate.Address.PostalCode, artist.Address.PostalCode); Assert.AreEqual(toUpdate.Address.Country.Name, artist.Address.Country.Name); Assert.AreEqual(toUpdate.HasServiceMark, artist.HasServiceMark); Assert.AreEqual(toUpdate.WebsiteUrl, artist.WebsiteUrl); Assert.AreEqual(toUpdate.PressKitUrl, artist.PressKitUrl); if (testArtist.RecordLabel != null) { Assert.AreEqual(toUpdate.RecordLabel.Name, artist.RecordLabel.Name); Assert.AreEqual(formattingService.FormatTaxId(toUpdate.RecordLabel.TaxId), artist.RecordLabel.TaxId); Assert.AreEqual(toUpdate.RecordLabel.Email, artist.RecordLabel.Email); Assert.AreEqual(formattingService.FormatPhoneNumber(toUpdate.RecordLabel.Phone), artist.RecordLabel.Phone); Assert.IsNotNull(toUpdate.RecordLabel.Address); Assert.AreEqual(toUpdate.RecordLabel.Address.Street, artist.RecordLabel.Address.Street); Assert.AreEqual(toUpdate.RecordLabel.Address.City, artist.RecordLabel.Address.City); Assert.AreEqual(toUpdate.RecordLabel.Address.Region, artist.RecordLabel.Address.Region); Assert.AreEqual(toUpdate.RecordLabel.Address.PostalCode, artist.RecordLabel.Address.PostalCode); Assert.IsNotNull(toUpdate.RecordLabel.Address.Country); Assert.AreEqual(toUpdate.RecordLabel.Address.Country.Name, artist.RecordLabel.Address.Country.Name); Assert.AreEqual(toUpdate.RecordLabel.Address.Country.IsoCode, artist.RecordLabel.Address.Country.IsoCode); } var removeArtistTask = new RemoveArtist(DbContext); var removeArtistResult = removeArtistTask.DoTask(artist); Assert.IsTrue(removeArtistResult.Success); Assert.IsNull(removeArtistResult.Exception); }
//Path: /api/Artist/UpdateArtist public HttpResponseMessage UpdateArtist(UpdateArtist updateArtistRequest) { File.AppendAllText(SuiteWrapper.traceLogPath, Environment.NewLine + Environment.NewLine); SuiteWrapper.WriteTraceLog("Called 'UpdateArtist' with request :" + JsonConvert.SerializeObject(updateArtistRequest)); string outputMessage = string.Empty; if (!SuiteWrapper.ValidateRequest(updateArtistRequest, out outputMessage)) { //Trace Log SuiteWrapper.WriteTraceLog("Exception while validating request for " + JsonConvert.SerializeObject(updateArtistRequest) + " is : " + outputMessage); return(Request.CreateResponse(HttpStatusCode.NotAcceptable, outputMessage));; } try { using (PundolesEntities context = new PundolesEntities()) { var UpdEntity = context.artists.AsNoTracking().FirstOrDefault(m => m.id == updateArtistRequest.id); if (UpdEntity == null) { SuiteWrapper.WriteTraceLog("Artist doesn't exist."); return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Artist doesn't exist."));; } UpdEntity.name = updateArtistRequest.name; UpdEntity.description = updateArtistRequest.description; UpdEntity.year_of_birth_c = updateArtistRequest.year_of_birth_c; UpdEntity.year_of_death_c = updateArtistRequest.year_of_death_c; UpdEntity.status = updateArtistRequest.status; UpdEntity.modified_date = DateTime.Now; UpdEntity.modifiedby_id = updateArtistRequest.modifiedby_id; context.Entry(UpdEntity).State = EntityState.Modified; context.SaveChanges(); SuiteWrapper.WriteTraceLog("Artist is Successfully updated."); return(Request.CreateResponse(HttpStatusCode.OK, "Success")); } } catch (Exception ex) { SuiteWrapper.WriteTraceLog("Exception while updating the artist is : " + ex.Message.ToString()); return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message.ToString()));; } }
public ValidationMessage ValidateUpdateArtistModel(UpdateArtist updateArtist) { if (updateArtist == null) { return new ValidationMessage() { resultValid = false, message = "Artist Model not provided!" }; } return new ValidationMessage() { resultValid = true, }; }
public async Task <Artist> UpdateArtistAsync(string id, UpdateArtist updateArtist) { var artist = await mongoDBPersistance.FindArtistByIdAsync(Guid.Parse(id)); if (artist == null) { return(null); } artist.Name = updateArtist.Name; artist.ProfilePictureURL = updateArtist.ProfilePictureURL; artist.BeatportUrl = updateArtist.BeatportUrl; artist.SoundCloudUrl = updateArtist.SoundCloudUrl; artist.Published = updateArtist.Published; var updatedArtist = await mongoDBPersistance.UpdateArtistByIdAsync(Guid.Parse(id), artist); if (updatedArtist == null) { return(null); } return(updatedArtist); }