public async Task <IActionResult> UpdatePlace([EntityId] PlaceUpdateRequest request) { //Recupero l'elemento dal business layer var entity = BasicLayer.GetPlace(request.PlaceId); //modifica solo se admin o se utente richiedente è lo stesso che ha creato if (entity == null) { return(NotFound()); } //Aggiornamento dell'entità entity.Name = request.Name; entity.Holder = request.Holder; entity.Phone = request.Phone; entity.Email = request.Email; entity.Address = request.Address; entity.City = request.City; entity.Region = request.Region; entity.PostalZipCode = request.PostalZipCode; entity.Country = request.Country; //Salvataggio var validations = await BasicLayer.UpdatePlace(entity, PlatformUtils.GetIdentityUserId(User)); if (validations.Count > 0) { return(BadRequest(validations)); } //Confermo return(Ok(ContractUtils.GenerateContract(entity))); }
public async Task ShouldUpdatePlaceBeNotFoundHavingProvidedWrongId() { //conteggio esistenti var countBefore = Scenario.Places.Count; //Composizione della request var request = new PlaceUpdateRequest { PlaceId = RandomizationUtils.GenerateRandomString(10), Name = RandomizationUtils.GenerateRandomString(50), Holder = RandomizationUtils.GenerateRandomString(15), Email = RandomizationUtils.GenerateRandomEmail(), City = RandomizationUtils.GenerateRandomString(15), Region = RandomizationUtils.GenerateRandomString(15), PostalZipCode = RandomizationUtils.GenerateRandomString(15), Country = RandomizationUtils.GenerateRandomString(15) }; //Invoke del metodo var response = await Controller.UpdatePlace(request); //Parsing della risposta e assert var parsed = ParseExpectedNotFound(response); //conteggio esistenti var countAfter = Scenario.Places.Count; Assert.IsTrue(parsed != null && parsed.Data == null); //verifica contatori Assert.AreEqual(countBefore, countAfter); }
public PlaceEntity toEntity(PlaceUpdateRequest request, PlaceEntity oldEntity) { PlaceEntity entity = new PlaceEntity(); entity.Id = request.Id; entity.Name = request.Name; entity.Longitude = request.Longitude; entity.Latitude = request.Latitude; entity.TimeMachineId = request.TimeMachineId != null ? request.TimeMachineId.Value : 0; return(entity); }
public async Task ShouldUpdatePlaceBeOkHavingProvidedData() { //Recupero una Place esistente var existing = Scenario.Places.FirstOrDefault(); if (existing == null) { Assert.Inconclusive("Place does not exists"); } //conteggio esistenti var countBefore = Scenario.Places.Count; //Composizione della request var request = new PlaceUpdateRequest { PlaceId = existing.Id, Name = RandomizationUtils.GenerateRandomString(50), Holder = RandomizationUtils.GenerateRandomString(15), Phone = RandomizationUtils.GenerateRandomString(10), Email = RandomizationUtils.GenerateRandomEmail(), Address = RandomizationUtils.GenerateRandomString(15), City = RandomizationUtils.GenerateRandomString(15), Region = RandomizationUtils.GenerateRandomString(15), PostalZipCode = RandomizationUtils.GenerateRandomString(15), Country = RandomizationUtils.GenerateRandomString(15) }; //Invoke del metodo var response = await Controller.UpdatePlace(request); //Parsing della risposta e assert var parsed = ParseExpectedOk <PlaceContract>(response); //conteggio esistenti var countAfter = Scenario.Places.Count; Assert.IsTrue(parsed != null && parsed.Data.Name == request.Name && parsed.Data.Holder == request.Holder && parsed.Data.Phone == request.Phone && parsed.Data.Email == request.Email && parsed.Data.Address == request.Address && parsed.Data.City == request.City && parsed.Data.Region == request.Region && parsed.Data.PostalZipCode == request.PostalZipCode && parsed.Data.Country == request.Country); //verifica contatori Assert.AreEqual(countBefore, countAfter); }
public async Task ShouldUpdatePlaceBeBadRequestOnNameZipAndDuplicate() { //utente corrente var user = GetIdentityUser(); //Recupero place esistente var existing = Scenario.Places.FirstOrDefault(); if (existing == null) { Assert.Inconclusive("First place is invalid"); } //Recupero place esistente var anotherExisting = Scenario.Places.FirstOrDefault(x => x.Id != existing.Id); if (anotherExisting == null) { Assert.Inconclusive("Second place is invalid"); } //Conteggio gli elementi prima della creazione var countBefore = Scenario.Places.Count; //Composizione della request var request = new PlaceUpdateRequest { PlaceId = existing.Id, Name = anotherExisting.Name, PostalZipCode = anotherExisting.PostalZipCode, Holder = RandomizationUtils.GenerateRandomString(15), Email = RandomizationUtils.GenerateRandomEmail(), City = RandomizationUtils.GenerateRandomString(15), Region = RandomizationUtils.GenerateRandomString(15), Country = RandomizationUtils.GenerateRandomString(15) }; //Invoke del metodo var response = await Controller.UpdatePlace(request); //Conteggio gli elementi dopo la creazione var countAfter = Scenario.Places.Count; //Parsing della risposta e assert var parsed = ParseExpectedBadRequest(response); Assert.IsTrue(parsed != null && parsed.Data.Any()); //verifica contatori Assert.AreEqual(countBefore, countAfter); }
public PlaceUpdateResponse Update([FromBody] PlaceUpdateRequest request) { PlaceUpdateResponse response = new PlaceUpdateResponse(); if (request.Id == 0 || request.Id < 0) { response.Status = -1; return(response); } PlaceEntity entity = placeRepository.GetById(request.Id); if (entity == null) { response.Status = 404; return(response); } placeRepository.Update(placeConvertor.toEntity(request, entity)); response.Status = 1; return(response); }