public void UpdatePlace(CreatePlaceDTO place)
        {
            var newPlace = new Place()
            {
                Id      = place.Id,
                Name    = place.Name,
                IdUser  = place.IdUser,
                Address = new Address()
                {
                    PostalCode     = place.Address.PostalCode,
                    AdditionalInfo = place.Address.AdditionalInfo,
                    StreetID       = place.Address.Street.Id,
                    StreetNumber   = place.Address.StreetNumber
                },
                Images       = Mapper.Map <List <Image> >(place.Images),
                ModifiedDate = DateTime.UtcNow,
                PlaceTypeId  = place.Type,
                Telephone    = place.Telephone,
                Email        = place.Email,
                Website      = place.Website,
                Descriprion  = place.Descriprion,
            };

            _placeRepository.Update(newPlace);
            _placeRepository.SaveChanges();
        }
        public void EditTest_Get_ReturnErrorViewWhenPlaceIsNull()
        {
            CreatePlaceDTO places = null;

            _placesService.Setup(s => s.GetById(Int32.MaxValue))
            .Returns(places);
            var result = _placesController.Edit(Int32.MaxValue);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <ErrorViewModel>(viewResult.ViewData.Model);

            Assert.Equal("The place that you are looking for was not found .", model.ErrorMessage);
        }
        void IPlaceServices.SavePlace(CreatePlaceDTO place)
        {
            var images = new List <Image>();

            for (int i = 0; i < place.Images.Count; i++)
            {
                var newImage = Mapper.Map <Image>(place.Images[i]);
                images.Add(newImage);
            }
            var distinctFacilities = place.Facilities.Distinct().ToList();
            var placeFacilities    = new List <PlaceFacilitie>();

            for (int i = 0; i < place.Facilities.Count; i++)
            {
                var item = new PlaceFacilitie()
                {
                    FacilitieId = distinctFacilities[i].Id
                };
                placeFacilities.Add(item);
            }
            var newPlace = new Place()
            {
                Name    = place.Name,
                Address = new Address()
                {
                    PostalCode     = place.Address.PostalCode,
                    AdditionalInfo = place.Address.AdditionalInfo,
                    StreetID       = place.Address.Street.Id,
                    StreetNumber   = place.Address.StreetNumber
                },
                Images          = images,
                AddedDate       = DateTime.UtcNow,
                IdUser          = place.IdUser,
                PlaceTypeId     = place.Type,
                Telephone       = place.Telephone,
                Email           = place.Email,
                Website         = place.Website,
                Descriprion     = place.Descriprion,
                IsDeleted       = false,
                PlaceFacilities = placeFacilities,
            };

            _placeRepository.Add(newPlace);
            _placeRepository.SaveChanges();
        }
        public PlacesControllerTest()
        {
            #region ServicesInitialization
            _placesService      = new Mock <IPlaceServices>();
            _addressService     = new Mock <IAddressServices>();
            _imageServices      = new Mock <IImageServices>();
            _facilitiesServices = new Mock <IFacilitiesServices>();
            _userManager        = UserManagerProvider.GetMockUserManager();
            _mapper             = _config.CreateMapper();
            // _signInManager = MockSignInManager<ApplicationUser>();
            _placesController = new PlacesController(
                _placesService.Object,
                _addressService.Object,
                _facilitiesServices.Object,
                _imageServices.Object,
                _mapper,
                _userManager.Object
                //_signInManager.Object
                );
            #endregion

            #region  Setup

            mockPlacesList = new PaginatedList <PlaceDTO>
            {
                new PlaceDTO {
                    Id   = 32,
                    Name = "Alan Pub",

                    Address = new AddressDTO()
                    {
                        Id           = 39,
                        StreetNumber = "45",
                        Street       = new StreetDTO()
                        {
                            Id   = 1,
                            Name = "Stefan cel mare",

                            City = new CityDTO()
                            {
                                Id      = 2,
                                Name    = "Chisinau",
                                Country = new CountryDTO()
                                {
                                    Id   = 1,
                                    Name = "Moldova"
                                }
                            }
                        },

                        PostalCode = "5678"
                    },
                    AvgRating = (float?)0,
                    Telephone = "078142739",
                    Type      = new PlaceTypeDTO()
                    {
                        Id = 1, Name = "Pub"
                    },
                    Email   = "*****@*****.**",
                    Website = "www.alanpub.com"
                },
                new PlaceDTO {
                    Id   = 32,
                    Name = "Start Pub",

                    Address = new AddressDTO()
                    {
                        Id           = 39,
                        StreetNumber = "45",
                        Street       = new StreetDTO()
                        {
                            Id   = 1,
                            Name = "Stefan cel mare",

                            City = new CityDTO()
                            {
                                Id      = 2,
                                Name    = "Chisinau",
                                Country = new CountryDTO()
                                {
                                    Id   = 1,
                                    Name = "Moldova"
                                }
                            }
                        },

                        PostalCode = "5678"
                    },
                    AvgRating = (float?)0,
                    Telephone = "078142739",
                    Type      = new PlaceTypeDTO()
                    {
                        Id = 1, Name = "Pub"
                    },
                    Email   = "*****@*****.**",
                    Website = "www.alanpub.com"
                }
            };
            placeDetails = new PlaceDetailsDTO
            {
                Id          = 32,
                Name        = "Alan Pub",
                Descriprion = "AlanPub!",
                Images      = new List <ImageDTO>(),
                Address     = new AddressDTO()
                {
                    Id           = 39,
                    StreetNumber = "45",
                    Street       = new StreetDTO()
                    {
                        Id   = 1,
                        Name = "Stefan cel mare",

                        City = new CityDTO()
                        {
                            Id      = 2,
                            Name    = "Chisinau",
                            Country = new CountryDTO()
                            {
                                Id   = 1,
                                Name = "Moldova"
                            }
                        }
                    },

                    PostalCode = "5678"
                },
                RatingAVG = 0,
                Telephone = "078142739",
                Type      = new PlaceTypeDTO()
                {
                    Id = 1, Name = "Pub"
                },
                Email   = "*****@*****.**",
                Website = "www.alanpub.com"
            };
            _countryDtos = new List <CountryDTO>()
            {
                new CountryDTO()
                {
                    Id = 1, Name = "Moldova"
                },
                new CountryDTO()
                {
                    Id = 2, Name = "Romania"
                }
            };
            _citiesDtos = new List <CityDTO>()
            {
                new CityDTO()
                {
                    Id = 1, Name = "Chisinau"
                },
                new CityDTO()
                {
                    Id = 2, Name = "Orhei"
                }
            };
            _streetDtos = new List <StreetDTO>
            {
                new StreetDTO()
                {
                    Id = 1, Name = "Stefan cel Mare"
                },
                new StreetDTO()
                {
                    Id = 2, Name = "Ismail"
                }
            };
            _placeTypeDto = new List <PlaceTypeDTO>()
            {
                new PlaceTypeDTO()
                {
                    Id = 1, Name = "Restaurant"
                },
                new PlaceTypeDTO()
                {
                    Id = 2, Name = "Pub"
                },
                new PlaceTypeDTO()
                {
                    Id = 3, Name = "Pizzeria"
                },
            };

            _facilitieDto = new List <FacilitiesDTO>()
            {
                new FacilitiesDTO()
                {
                    Id = 1, Name = "Wi-Fi"
                },
                new FacilitiesDTO()
                {
                    Id = 2, Name = "Parking"
                },
            };
            _createPlaceViewModel = new CreatePlaceViewModel()
            {
                Id          = 1,
                Name        = "Alan Pub",
                Descriprion = "AlanPub!",
                Street      = 1,
                CountryId   = 1,
                CityId      = 1,
                PostalCode  = "2034",
                Telephone   = "078142739",
                Type        = 1,
                Email       = "*****@*****.**",
                Website     = "www.alanpub.com"
            };
            _createPlaceDTO = new CreatePlaceDTO()
            {
                Name        = "Alan Pub",
                Descriprion = "AlanPub!",
                Address     = new AddressDTO()
                {
                    Id           = 39,
                    StreetNumber = "45",
                    Street       = new StreetDTO()
                    {
                        Id   = 1,
                        Name = "Stefan cel mare",

                        City = new CityDTO()
                        {
                            Id      = 2,
                            Name    = "Chisinau",
                            Country = new CountryDTO()
                            {
                                Id   = 1,
                                Name = "Moldova"
                            }
                        }
                    },

                    PostalCode = "5678"
                },
                Telephone = "078142739",
                Type      = 1,
                Email     = "*****@*****.**",
                Website   = "www.alanpub.com"
            };
            #endregion
        }