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);
        }
Example #4
0
        //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()));;
            }
        }
Example #5
0
        public ValidationMessage ValidateUpdateArtistModel(UpdateArtist updateArtist)
        {
            if (updateArtist == null)
            {
                return new ValidationMessage()
                {
                    resultValid = false,
                    message = "Artist Model not provided!"
                };

            }

            return new ValidationMessage()
            {
                resultValid = true,
            };

        }
Example #6
0
        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);
        }