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)));
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }