Esempio n. 1
0
        public void AddBookingsNullInputTest()
        {
            Booking booking = new Booking()
            {
                Id              = 9,
                Guests          = null,
                AccommodationId = 3
            };
            Tourist tourist = new Tourist()
            {
                Email = "*****@*****.**",
                Id    = 4
            };
            Accommodation accommodation = new Accommodation()
            {
                Id   = 7,
                Name = "a"
            };
            var mockBooking = new Mock <IBookingRepository>(MockBehavior.Strict);

            mockBooking.Setup(p => p.AddAndSave(It.IsAny <Booking>())).Returns(booking);
            var mockTourist = new Mock <ITouristRepository>(MockBehavior.Strict);

            mockTourist.Setup(p => p.GetByEmail(It.IsAny <string>())).Returns(tourist);
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);

            mockAccommodation.Setup(p => p.GetById(It.IsAny <int>())).Returns(accommodation);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);
            var logic             = new BookingLogic(mockBooking.Object, mockAccommodation.Object, mockTourist.Object, mockTouristicSpot.Object);

            var result = logic.AddBooking(booking);
        }
Esempio n. 2
0
        protected override async Task Handle(UpdateAccommodationCommand request, CancellationToken cancellationToken)
        {
            var api = await apiClientFactory.CreateApiClientAsync();

            var result = await api.FindFacilityWithHttpMessagesAsync(request.FacilityId);

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                return;
            }

            var accommodation = new Accommodation
            {
                Id                  = request.Id,
                FacilityId          = request.FacilityId,
                Name                = request.Name,
                Description         = request.Description,
                RoomCount           = request.RoomCount,
                Images              = request.Images,
                FacilityName        = result.Body.Name,
                FacilityDescription = result.Body.Description,
                FacilityLocation    = new Location
                {
                    Latitude  = result.Body.Latitude,
                    Longitude = result.Body.Longitude
                }
            };

            await searchIndexer.IndexAccommodationAsync(accommodation);
        }
        public async Task CreateAccommodation_ShouldReturn_SuccessStatus()
        {
            Address addr = new Address
            {
                Id      = 500,
                Street  = _factory.adr.Street,
                Number  = _factory.adr.Number,
                Zip     = _factory.adr.Zip,
                Area    = _factory.adr.Area,
                City    = _factory.adr.City,
                Country = _factory.adr.Country
            };

            Accommodation ac = new Accommodation
            {
                Address                    = addr,
                SquareMeters               = 50,
                AmountOfBedrooms           = 1,
                KilometersFromCenter       = 1.2,
                Description                = "blah blaaaaah",
                PricePerNight              = 500,
                CancellationDeadlineInDays = 1,
                Schedule                   = _factory.accommodation1.Schedule,
            };

            var response = await _client.PostAsync("api/accommodation/10/3",
                                                   new StringContent(
                                                       JsonConvert.SerializeObject(ac),
                                                       Encoding.UTF8,
                                                       "application/json"));

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            Assert.AreEqual("application/json; charset=utf-8", response.Content.Headers.ContentType?.ToString());
        }
        public async Task CreateAccommodation_ShouldReturn_BadRequestIfError()
        {
            Address addr = new Address
            {
                Id      = 500,
                Street  = _factory.adr.Street,
                Number  = _factory.adr.Number,
                Zip     = _factory.adr.Zip,
                Area    = _factory.adr.Area,
                City    = _factory.adr.City,
                Country = _factory.adr.Country
            };

            Accommodation ac = new Accommodation
            {
            };

            var response = await _client.PostAsync("api/accommodation/10/3",
                                                   new StringContent(
                                                       JsonConvert.SerializeObject(ac),
                                                       Encoding.UTF8,
                                                       "application/json"));

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
            Assert.AreEqual("text/plain; charset=utf-8", response.Content.Headers.ContentType?.ToString());
        }
Esempio n. 5
0
        public async Task <ActionResult <Accommodation> > PostAccommodation(Accommodation accommodation)
        {
            _context.Accommodation.Add(accommodation);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetAccommodation", new { id = accommodation.AccommodationID }, accommodation));
        }
Esempio n. 6
0
        public async Task <IActionResult> PutAccommodation(int id, Accommodation accommodation)
        {
            if (id != accommodation.AccommodationID)
            {
                return(BadRequest());
            }

            _context.Entry(accommodation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AccommodationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 7
0
        public HttpResponseMessage CreateAccommodation([FromBody] Accommodation accommodation)
        {
            AccommodationPersistenceService accommodationPersistenceService = new AccommodationPersistenceService();
            HttpResponseMessage             response;

            if (accommodation.parking == null ||
                accommodation.wifi == null ||
                accommodation.tv == null ||
                accommodation.airConditioning == null ||
                accommodation.generalAppliances == null ||
                string.IsNullOrEmpty(accommodation.bedSize) ||
                accommodation.pricePerNight.Equals(0) ||
                string.IsNullOrEmpty(accommodation.houseNumber) ||
                accommodation.hostUserID == null ||
                string.IsNullOrEmpty(accommodation.postalCode) ||
                string.IsNullOrEmpty(accommodation.city) ||
                string.IsNullOrEmpty(accommodation.street) ||
                string.IsNullOrEmpty(accommodation.province))
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, "All fields are mandatory. Please try again.");
                return(response);
            }

            var id = accommodationPersistenceService.SaveAccommodation(accommodation);

            if (id < 0)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, "Unable to create accommodation, please check if host exists.");
                return(response);
            }
            accommodation.accommodationID = id;
            response = Request.CreateResponse(HttpStatusCode.Created, accommodation);
            response.Headers.Location = new Uri(Request.RequestUri, string.Format("accommodations/{0}", id));
            return(response);
        }
Esempio n. 8
0
        public List<Accommodation> GetAccommodations(long[] studentUSIs, int schoolId)
        {
            var res = new List<Accommodation>();
            var accommodations = GetStudentAccommodations(schoolId, studentUSIs).ToList();

            var students = from a in accommodations
                           group a by a.StudentUSI
                               into g
                               select new { StudentUSI=g.Key, Accommodations=g };

            foreach (var s in students)
            {
                var model = new Accommodation(s.StudentUSI);

                foreach (var a in s.Accommodations)
                {
                    if (string.IsNullOrEmpty(a.Name))
                        throw new InvalidOperationException(String.Format(NullAccommodationExceptionMessage, s.StudentUSI));

                    var translatedAcc = GetTranslatedStringAccommodationToEnum(a.Name);
                    if (!model.AccommodationsList.Contains(translatedAcc))
                        model.AccommodationsList.Add(translatedAcc);
                }

                if(model.AccommodationsList.Count > 0)
                    res.Add(model);
            }

            return res;
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            Accommodation accommodation = await db.Accommodations.FindAsync(id);

            //set accommodation id to null
            List <Step> steps = await db.Steps.Include(s => s.Trip).Where(s => s.AccommodationId == accommodation.AccommodationId).ToListAsync();

            if (steps.First().Trip.TripOwner != User.Identity.GetUserId())
            {
                return(View("CustomisedError", new HandleErrorInfo(
                                new UnauthorizedAccessException("Oops, this trip doesn't seem to be yours, you cannot delete its accommodations."),
                                "Trip", "Index")));
            }

            foreach (Step s in steps)
            {
                s.AccommodationId = null;
            }

            //delete confirmation file from blob storage
            if (accommodation.ConfirmationFileUrl != null)
            {
                await utility.DeleteBlobAsync(accommodation.ConfirmationFileUrl, BOOKING_CONTAINER_NAME);
            }

            db.Accommodations.Remove(accommodation);

            //update trip budget
            steps.First().Trip.TotalCost -= accommodation.Price;

            await db.SaveChangesAsync();

            return(RedirectToAction("Details", "Trip", new { id = steps.First().Trip.TripId }));
        }
Esempio n. 10
0
            static AccommodationBookingDetails GetDetails(Booking booking, Accommodation accommodationDetails)
            {
                var passengerNumber = booking.Rooms.Sum(r => r.Passengers.Count);
                var numberOfNights  = (booking.CheckOutDate - booking.CheckInDate).Days;

                return(new AccommodationBookingDetails(
                           referenceCode: booking.ReferenceCode,
                           clientReferenceCode: booking.ClientReferenceCode,
                           agentReference: booking.SupplierReferenceCode,
                           status: booking.Status,
                           numberOfNights: numberOfNights,
                           checkInDate: booking.CheckInDate.DateTime,
                           checkOutDate: booking.CheckOutDate.DateTime,
                           location: booking.Location,
                           contactInfo: accommodationDetails.Contacts,
                           accommodationId: booking.AccommodationId,
                           accommodationName: booking.AccommodationName,
                           accommodationInfo: booking.AccommodationInfo,
                           deadlineDate: booking.DeadlineDate?.DateTime,
                           roomDetails: booking.Rooms,
                           numberOfPassengers: passengerNumber,
                           cancellationPolicies: booking.CancellationPolicies,
                           created: booking.Created.DateTime,
                           propertyOwnerConfirmationCode: booking.PropertyOwnerConfirmationCode,
                           isAdvancePurchaseRate: booking.IsAdvancePurchaseRate));
            }
Esempio n. 11
0
        public IHttpActionResult DeleteRoom(int id)
        {
            Room room = db.Rooms.Find(id);

            if (room == null)
            {
                return(NotFound());
            }
            var user = db.Users.FirstOrDefault(u => u.UserName.Equals(User.Identity.Name));

            if (user != null)
            {
                try
                {
                    Accommodation acc = db.Accommodations.Where(a => a.Id == room.AccommodationId).FirstOrDefault();
                    if (acc != null && acc.UserId == user.appUserId)
                    {
                        db.Rooms.Remove(room);
                        db.SaveChanges();
                    }
                    else
                    {
                        return(BadRequest("You can not remove room from accommodation that is not yours!"));
                    }
                }
                catch
                {
                    return(BadRequest());
                }
            }
            return(Ok(room));
        }
 /// <summary>
 /// Конструктор для нового проживания
 /// </summary>
 /// <param name="travelersCount">количество путешественников</param>
 public AccommodationViewModel(int travelersCount)
 {
     Accommodation          = new Accommodation(travelersCount);
     Accommodation.CheckIn  = DateTime.Today.Date;
     Accommodation.CheckOut = DateTime.Today.Date.AddDays(1);
     TravelerCount          = travelersCount;
 }
        public void SaveCamping(Rootobject camping)
        {
            var type = new AccommodationType
            {
                CategoryId = 20,
                Name       = "Kamp Alanı"
            };

            UnitOfWork.CurrentSession.AccommodationTypes.Add(type);

            foreach (var item in camping.response.venues)
            {
                if (item.location.city == "Bodrum")
                {
                    var accomodation = new Accommodation
                    {
                        Name = item.name,
                        AccommodationTypeId = type.Id,
                        Lat    = item.location.lat,
                        Long   = item.location.lng,
                        Adress = item.location.address,
                        Url    = item.url ?? "",
                        Phone  = item.contact == null ? "" : item.contact.phone,
                        IconId = 15
                    };
                    UnitOfWork.CurrentSession.Accommodations.Add(accomodation);
                }
            }
            UnitOfWork.CurrentSession.SaveChanges();
        }
        public void SaveHotelVenu(Rootobject hotel)
        {
            var cat = new Category
            {
                Name  = "Konaklama",
                Color = "#95dd38"
            };

            UnitOfWork.CurrentSession.Categories.Add(cat);

            var type = new AccommodationType
            {
                CategoryId = cat.Id,
                Name       = "Hotel"
            };

            UnitOfWork.CurrentSession.AccommodationTypes.Add(type);

            foreach (var item in hotel.response.venues)
            {
                var accomodation = new Accommodation
                {
                    Name = item.name,
                    AccommodationTypeId = type.Id,
                    Lat    = item.location.lat,
                    Long   = item.location.lng,
                    Adress = item.location.address,
                    Url    = item.url ?? "",
                    Phone  = item.contact == null ? "" : item.contact.phone,
                    IconId = 12
                };
                UnitOfWork.CurrentSession.Accommodations.Add(accomodation);
            }
            UnitOfWork.CurrentSession.SaveChanges();
        }
Esempio n. 15
0
        public IHttpActionResult PostRoom(Room room)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = db.Users.FirstOrDefault(u => u.UserName.Equals(User.Identity.Name));

            if (user != null)
            {
                try
                {
                    Accommodation acc = db.Accommodations.Where(a => a.Id == room.AccommodationId).FirstOrDefault();
                    if (acc != null && acc.UserId == user.appUserId)
                    {
                        db.Rooms.Add(room);
                        db.SaveChanges();
                    }
                    else
                    {
                        return(BadRequest("You can not add room into accommodation that is not yours!"));
                    }
                }
                catch
                {
                    return(BadRequest());
                }
            }

            return(CreatedAtRoute("DefaultApi", new { controller = "Room", id = room.Id }, room));
        }
        public List <Accommodation> Search(string searchTerm)
        {
            List <Accommodation> accommodationList = new List <Accommodation>();

            searchTerm = CustomFormat(searchTerm);
            try
            {
                string sql = "SELECT [AccommodationID], [Title], [Description], [Image], [Country] FROM Accommodation WHERE [Title] LIKE @SearchTerm OR [Description] LIKE @SearchTerm";

                List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >()
                {
                    new KeyValuePair <string, string>("@SearchTerm", "%" + searchTerm + "%")
                };

                DataSet results = ExecuteSql(sql, parameters);

                for (int x = 0; x < results.Tables[0].Rows.Count; x++)
                {
                    Accommodation a = DataSetParser.DataSetToAccommodation(results, x);
                    accommodationList.Add(GetPrices(a));
                }

                return(accommodationList);
            }
            catch
            {
                throw;
            }
        }
Esempio n. 17
0
        public async Task <ActionResult> Create([Bind(Include = "Name,Street,City,PhoneNumber,CheckIn,CheckOut,ConfirmationFileUrl,Price")] Accommodation accommodation)
        {
            try
            {
                //check valid check-in and check-out
                if (!accommodation.IsCheckInBeforeCheckOut())
                {
                    ModelState.AddModelError("", "Please check the check-in and check-out dates. Check-out cannot be before check-in.");
                }
                else if (ModelState.IsValid)
                {
                    int tripId = Int32.Parse(accommodation.ConfirmationFileUrl); //temporarily storing tripid in confirmationurl

                    Trip trip = await db.Trips.FindAsync(tripId);

                    if (trip.TripOwner != User.Identity.GetUserId())
                    {
                        return(View("CustomisedError", new HandleErrorInfo(
                                        new UnauthorizedAccessException("Oops, this trip doesn't seem to be yours, you cannot add an accommodation to it."),
                                        "Trip", "Index")));
                    }
                    //if before trip start date -> error
                    if (accommodation.CheckIn < trip.StartDate)
                    {
                        ModelState.AddModelError("", "The check-in date is before the trip start date (" + trip.StartDate.ToShortDateString() + "). Please correct.");
                    }
                    else
                    {
                        try
                        {
                            AssignAccommodationToStep(accommodation, trip, true);

                            accommodation.ConfirmationFileUrl = null;
                            db.Accommodations.Add(accommodation);

                            //increase trip budget
                            trip.TotalCost += accommodation.Price;

                            await db.SaveChangesAsync();

                            //return update view in case user wants to attach confirmation file
                            return(RedirectToAction("Edit", new { id = accommodation.AccommodationId }));
                        }
                        catch (ArgumentException ex)
                        {
                            //give feedback to user about which step to check
                            ViewBag.ErrorMessage = ex.Message;
                        }
                    }
                }
            }
            catch (RetryLimitExceededException)
            {
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, contact the system administrator.");
            }
            ViewBag.TripId   = accommodation.ConfirmationFileUrl;
            ViewBag.CheckIn  = String.Format("{0:dd-MM-yyyy hh:mm tt}", accommodation.CheckIn);
            ViewBag.CheckOut = String.Format("{0:dd-MM-yyyy hh:mm tt}", accommodation.CheckOut);
            return(View(accommodation));
        }
Esempio n. 18
0
        public ActionResult Accomodations(FormCollection smestaj)
        {
            PopuniTipSmestaja();
            PopuniSifreGradova1();
            PopuniDrzave();
            PopuniGradove();
            PopuniProvajdere();
            PopuniTipPrevoza();
            PopuniSmestaje();
            if (ModelState.IsValid)
            {
                Accommodation nov = new Accommodation();
                Random        r   = new Random();
                nov.AccommodationID = r.Next();
                nov.Name            = smestaj["Name"];
                nov.Address         = smestaj["Address"];
                nov.Email           = smestaj["Email"];
                nov.Phone           = smestaj["Phone"];
                nov.CityID          = int.Parse(smestaj["ListaGradova"]);
                nov.AccCategoryID   = int.Parse(smestaj["ListaTipovaSmestaja"]);
                nov.Description     = smestaj["Description"];


                Admin.DodajAccomodation(nov);
                TempData["Naziv"] = nov.Name;
            }
            return(View("ChooseTheBestAccomodation"));
        }
        public async void TestSaveNotExistingAccommodationWithNotExistingId()
        {
            var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>();

            optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString());
            HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options);

            Accommodation existingAccommodation = new Accommodation()
            {
                Id          = 2,
                Description = DEFAULT_ACCOMMODATION_DESCRIPTION,
                Name        = "Example Name",
                Country     = "Unknown",
                MaxPersons  = 2
            };

            await context.Accommodations.AddAsync(existingAccommodation);

            await context.SaveChangesAsync();

            IAccommodationRepository repository = new EFAccommodationRepository(context);

            // Change some values
            Accommodation accommodationToUpdate = new Accommodation()
            {
                Id          = 3,
                Country     = "The Netherlands",
                Name        = "Updated name",
                Description = "Updated description",
                MaxPersons  = 2
            };

            await Assert.ThrowsAsync <DbUpdateConcurrencyException>(() => repository.Save(accommodationToUpdate));
        }
        public void SaveHolidayVillage(Rootobject holidatVillage)
        {
            var type = new AccommodationType
            {
                CategoryId = 20,
                Name       = "Tatil Köyü"
            };

            UnitOfWork.CurrentSession.AccommodationTypes.Add(type);
            foreach (var item in holidatVillage.response.venues)
            {
                var accomodation = new Accommodation
                {
                    Name = item.name,
                    AccommodationTypeId = type.Id,
                    Lat    = item.location.lat,
                    Long   = item.location.lng,
                    Adress = item.location.address,
                    Url    = item.url ?? "",
                    Phone  = item.contact == null ? "" : item.contact.phone,
                    IconId = 14
                };
                UnitOfWork.CurrentSession.Accommodations.Add(accomodation);
            }
            UnitOfWork.CurrentSession.SaveChanges();
        }
        public UpdateAccommodationRequestDTO(Accommodation Accommodation)
        {
            Console.WriteLine("----" + Accommodation.Address.Number);

            UpdateAccommodatioRequest = new updateAccommodationRequest()
            {
                accommodation = new accommodation()
                {
                    Id                = Accommodation.Id,
                    Name              = Accommodation.Name,
                    Description       = Accommodation.Description,
                    Category          = Accommodation.Category,
                    AccommodationType = (accommodationType)Enum.Parse(typeof(accommodationType), Accommodation.AccommodationType.ToString(), true),
                    Address           = new AccommodationServiceReference.Address()
                    {
                        Id               = Accommodation.Address.Id,
                        Country          = Accommodation.Address.Country,
                        City             = Accommodation.Address.City,
                        Street           = Accommodation.Address.Street,
                        Number           = Accommodation.Address.Number,
                        Apartment_number = Accommodation.Address.ApartmentNumber,
                        Longitude        = Accommodation.Address.Longitude,
                        Latitude         = Accommodation.Address.Latitude,
                        Postal_code      = Accommodation.Address.PostalCode
                    }
                }
            };
        }
        public async Task <bool> AddAsync(AddAccommodationFormModel accommodationForm)
        {
            try
            {
                if (!(await _context.Accommodations.AnyAsync(x => x.Caption == accommodationForm.Caption)))
                {
                    var accommodation = new Accommodation()
                    {
                        Caption     = accommodationForm.Caption,
                        Address     = accommodationForm.Address,
                        CityId      = accommodationForm.CityId,
                        Code        = accommodationForm.Code,
                        District    = accommodationForm.District,
                        FileId      = accommodationForm.FileId,
                        IsActivated = accommodationForm.IsActivated,
                        Number      = accommodationForm.Number
                    };

                    await _context.Accommodations.AddAsync(accommodation);

                    await _context.SaveChangesAsync();

                    return(true);
                }
                else
                {
                    throw new ReservationGlobalException(AccommodationServiceErrors.AddDuplicateAccommodationError);
                }
            }
            catch (Exception ex)
            {
                throw new ReservationGlobalException(AccommodationServiceErrors.AddAccommodationError, ex);
            }
        }
Esempio n. 23
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void Button1_Click(object sender, EventArgs e)
        {
            string sCode  = textBox1.Text;
            string name   = textBox2.Text;
            string gender = textBox3.Text;
            string dormNo = textBox4.Text;
            string roomNo = textBox5.Text;

            if (sCode == null ||
                name == null ||
                gender == null ||
                dormNo == null ||
                roomNo == null)
            {
                MessageBox.Show("不允许空值");
            }
            Accommodation    model = new Accommodation(sCode, name, gender, dormNo, roomNo);
            AccommodationDAL dal   = new AccommodationDAL();

            if (dal.Add(model))
            {
                ShowAccommodation();
                MessageBox.Show("添加成功");
            }
        }
Esempio n. 24
0
    //Use method in order to select the accommodationID from the Accommodation table.
    public int returnAccomIDFromDB(Accommodation newAccom)
    {
        int accomID;

        try
        {
            sc1.Open();

            System.Data.SqlClient.SqlCommand getAccomID = new System.Data.SqlClient.SqlCommand();
            getAccomID.Connection  = sc1;
            getAccomID.CommandText = "SELECT AccommodationID FROM ACCOMMODATION WHERE HostID=@hostID AND Street=@address AND CityCo=@city AND AccomState=@state AND Zip=@zip AND Price=@price AND RoomType=@roomType AND Neighborhood=@neighborhood AND Description=@description";
            getAccomID.Parameters.Add(new SqlParameter("@address", newAccom.getAddress()));
            getAccomID.Parameters.Add(new SqlParameter("@city", newAccom.getAccomCity()));
            getAccomID.Parameters.Add(new SqlParameter("@state", newAccom.getAccomState()));
            getAccomID.Parameters.Add(new SqlParameter("@zip", newAccom.getAccomZip()));
            getAccomID.Parameters.Add(new SqlParameter("@price", newAccom.getAccomPrice()));
            getAccomID.Parameters.Add(new SqlParameter("@roomType", newAccom.getAccomRoomType()));
            getAccomID.Parameters.Add(new SqlParameter("@neighborhood", newAccom.getAccomNeighborhood()));
            getAccomID.Parameters.Add(new SqlParameter("@description", newAccom.getAccomDescription()));
            getAccomID.Parameters.Add(new SqlParameter("@hostID", newAccom.getAccomHostID()));
            getAccomID.ExecuteNonQuery();
            accomID = Convert.ToInt32(getAccomID.ExecuteScalar());
            sc1.Close();
            return(accomID);
        }
        catch
        {
            return(0);
        }
    }
        public ActionResult <AccommodationDTO> AddAccommodation(AccommodationDTO body)
        {
            AccommodationPortClient accPortClient = new AccommodationPortClient();
            addAccommodationRequest accRequest    = new addAccommodationRequest
            {
                AccommodationDTO = body
            };

            var acc = accPortClient.addAccommodationAsync(accRequest);

            acc.Wait();

            AccommodationDTO accTemp = new AccommodationDTO();

            accTemp = acc.Result.addAccommodationResponse.AccommodationDTO;

            Accommodation accommodation = accTemp.CreateAccommodation();

            // attach type in context so it doesn't get saved in database again and check the same for location
            _context.AccommodationTypes.Attach(accommodation.AccommodationType);

            if (_context.Locations.Any(loc => loc.Id == accommodation.Location.Id))
            {
                _context.Locations.Attach(accommodation.Location);
            }

            _context.Accommodations.Add(accommodation);
            _context.SaveChanges();

            return(Ok(accTemp));
        }
Esempio n. 26
0
        public IHttpActionResult DeleteAccommodation(int id)
        {

            IdentityUser user = this.UserManager.FindById(User.Identity.GetUserId());

            int? userId = (user as BAIdentityUser).appUserId;

            Accommodation a = db.Accommodations.Find(id);
            if (a == null)
            {
                return NotFound();
            }

            AppUser manager = db.AppUsers.Where((x) => x.Id.Equals(a.AppUserId)).FirstOrDefault();
            if ((manager == null) || (manager.Banned))
            {
                return Unauthorized();
            }

            if (a.AppUserId != userId)
            {
                return Unauthorized();
            }

            db.Accommodations.Remove(a);
            db.SaveChanges();

            return Ok(a);
        }
Esempio n. 27
0
        public IHttpActionResult PutAccommodation(int id, Accommodation accommodation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != accommodation.AccommodationId)
            {
                return(BadRequest());
            }

            db.Entry(accommodation).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AccommodationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 28
0
        public AgentViewModel(User user, MainViewModel mainViewModel)
        {
            MainViewModel            = mainViewModel;
            LoggedUser               = user;
            HomePageCommand          = new HomePageCommand(this);
            MessagesPageCommand      = new MessagesPageCommand(this);
            AccommodationPageCommand = new AccommodationPageCommand(this);
            UserPageCommand          = new UserPageCommand(this);
            LogoutCommand            = new LogoutCommand(this);

            Accommodation = accommodationService.GetAccommodationByUsername(LoggedUser.Username);
            if (Accommodation == null)
            {
                Accommodation         = new Accommodation();
                Accommodation.Address = new Address();
            }
            if (Accommodation.Id != 0)
            {
                HomePageCommand.Execute(null);
            }
            else
            {
                setAccommodationProfilePage();
            }
        }
Esempio n. 29
0
        public void GetAllTest()
        {
            Accommodation accommodation = new Accommodation()
            {
                Id     = 2,
                Name   = "abz",
                SpotId = 1
            };
            List <Accommodation> accommodations = new List <Accommodation>()
            {
                accommodation
            };
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);

            mockAccommodation.Setup(p => p.GetAll()).Returns(accommodations);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);
            var mockReview        = new Mock <IReviewRepository>(MockBehavior.Strict);
            var mockBooking       = new Mock <IBookingRepository>(MockBehavior.Strict);
            var logic             = new AccommodationLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockReview.Object, mockBooking.Object);

            var result = logic.GetAll();

            mockAccommodation.VerifyAll();
            Assert.IsTrue(accommodations.SequenceEqual(result));
        }
Esempio n. 30
0
        public void AddReviewTestOk()
        {
            Accommodation accommodation = new Accommodation()
            {
                Id     = 2,
                Name   = "abz",
                SpotId = 1
            };
            Booking booking = new Booking()
            {
                Id = 2
            };
            Review review = new Review()
            {
                Id = 1
            };
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);
            var mockReview        = new Mock <IReviewRepository>(MockBehavior.Strict);
            var mockBooking       = new Mock <IBookingRepository>(MockBehavior.Strict);

            mockBooking.Setup(p => p.GetById(It.IsAny <int>())).Returns(booking);
            mockReview.Setup(p => p.AddAndSave(It.IsAny <Review>())).Returns(review);
            var logic = new AccommodationLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockReview.Object, mockBooking.Object);

            logic.AddReview(review);

            mockAccommodation.VerifyAll();
        }
Esempio n. 31
0
        public void AddAccommodationNullInputTest2()
        {
            Accommodation accommodation = new Accommodation()
            {
                Id            = 5,
                Name          = "abom",
                Address       = "ag",
                Images        = null,
                ContactNumber = "a",
                Information   = "a",
                PricePerNight = 5,
                SpotId        = 3,
            };

            TouristicSpot spot = new TouristicSpot()
            {
                Name = "a",
                Id   = 6
            };
            var mockAccommodation = new Mock <IAccommodationRepository>(MockBehavior.Strict);

            mockAccommodation.Setup(p => p.AddAndSave(It.IsAny <Accommodation>())).Returns(accommodation);
            mockAccommodation.Setup(p => p.GetByName(It.IsAny <string>())).Returns(accommodation);
            var mockTouristicSpot = new Mock <ITouristicSpotRepository>(MockBehavior.Strict);

            mockTouristicSpot.Setup(p => p.GetById(It.IsAny <int>())).Returns(spot);
            var mockReview  = new Mock <IReviewRepository>(MockBehavior.Strict);
            var mockBooking = new Mock <IBookingRepository>(MockBehavior.Strict);
            var logic       = new AccommodationLogic(mockAccommodation.Object, mockTouristicSpot.Object, mockReview.Object, mockBooking.Object);

            var result = logic.AddAccommodation(accommodation);
        }
Esempio n. 32
0
 public void AddToAccommodations(Accommodation accommodation)
 {
     base.AddObject("Accommodations", accommodation);
 }
Esempio n. 33
0
 public static Accommodation CreateAccommodation(int ID, global::System.Guid guid, string createdBy, global::System.DateTime createdAt, byte[] timestamp, string name, int numberOfBeds, bool isOpenUntilMonday)
 {
     Accommodation accommodation = new Accommodation();
     accommodation.ID = ID;
     accommodation.Guid = guid;
     accommodation.CreatedBy = createdBy;
     accommodation.CreatedAt = createdAt;
     accommodation.Timestamp = timestamp;
     accommodation.Name = name;
     accommodation.NumberOfBeds = numberOfBeds;
     accommodation.IsOpenUntilMonday = isOpenUntilMonday;
     return accommodation;
 }