Пример #1
0
        /// <summary>
        ///  Method to Get Evaluated Dates
        /// </summary>
        /// <param name="companyCode"></param>
        /// <param name="userCode"></param>
        /// <param name="createdBy"></param>
        /// <returns></returns>
        public DatesModel GetEvaluationDates(string companyCode, string userCode, string createdBy)
        {
            DatesModel lstdts = new DatesModel();

            try
            {
                List <FeedbackDetailsModel> lstEvaldate  = null;
                List <UserStartDateModel>   lstStartdate = null;
                using (IDbConnection connection = IDbOpenConnection())
                {
                    var p = new DynamicParameters();
                    p.Add("User_Code", userCode);
                    p.Add("Created_By", createdBy);
                    using (var multiselect = connection.QueryMultiple(SP_HD_ICE_GETEVALUATEDDATES, p, commandType: CommandType.StoredProcedure))
                    {
                        lstEvaldate  = multiselect.Read <FeedbackDetailsModel>().ToList();
                        lstStartdate = multiselect.Read <UserStartDateModel>().ToList();
                    }
                    lstdts.lstEvalDate  = lstEvaldate;
                    lstdts.lstStartDate = lstStartdate;
                    connection.Close();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(lstdts);
        }
        public IHttpActionResult ChageReservationRequests(int reservationId, Helper.Enums.ReservationStatus status)
        {
            if (CheckRole("Host"))
            {
                if (CheckRole("Guest"))
                {
                    return(StatusCode(HttpStatusCode.Unauthorized));
                }
            }

            Reservation reservation = context.Reservations.Where(x => x.ID == reservationId && x.Deleted == false).FirstOrDefault();

            if (reservation == null)
            {
                return(NotFound());
            }

            DateTime currentDate = reservation.SingUpDate;

            if (status == ReservationStatus.Rejected || status == ReservationStatus.Canceled)
            {
                for (int i = 0; i < reservation.NumberOfNights; i++)
                {
                    DatesModel datesModel = context.DatesModels.Where(x => x.ApartmanID == reservation.ApartmanID && x.RentDate == currentDate && x.Deleted == false).FirstOrDefault();
                    if (datesModel == null)
                    {
                        continue;
                    }
                    datesModel.Available = true;
                    context.SaveChanges();
                    currentDate = currentDate.AddDays(1);
                }
            }

            if (status == ReservationStatus.Done)
            {
                DateTime checkIfDateIsDone = reservation.SingUpDate.AddDays(reservation.NumberOfNights);
                if (checkIfDateIsDone >= DateTime.Now)
                {
                    return(Ok("Date is not done"));
                }
            }

            reservation.Stauts = status;
            context.SaveChanges();


            return(Ok());
        }
        public IHttpActionResult AddRentDates(DatesModelFirstAdd datesModelBM) //kad dodaje novi apartmant
        {
            foreach (DateTime item in datesModelBM.CheckedDates)
            {
                DatesModel datesModel = new DatesModel();
                datesModel.ApartmanID = datesModelBM.ApartmanID;
                datesModel.Available  = true;
                datesModel.RentDate   = item;

                context.DatesModels.Add(datesModel);
                context.SaveChanges();
            }

            return(Ok());
        }
Пример #4
0
        /// <summary>
        /// Method to Get Evaluated Dates
        /// </summary>
        /// <param name="companyCode"></param>
        /// <param name="userCode"></param>
        /// <param name="createdBy"></param>
        /// <returns></returns>
        public DatesModel GetEvaluationDates(string companyCode, string userCode, string createdBy)
        {
            DatesModel lstEvaldts = null;

            try
            {
                DAL_ICE objlstEvaldts = new DAL_ICE();
                lstEvaldts = objlstEvaldts.GetEvaluationDates(companyCode, userCode, createdBy);
            }
            catch (Exception ex)
            {
                throw;
            }
            return(lstEvaldts);
        }
        public IHttpActionResult DeleteHostRentDate(int dateID)
        {
            if (CheckRole("Host"))
            {
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            DatesModel datesModel = context.DatesModels.Where(x => x.ID == dateID && x.Deleted == false).FirstOrDefault();

            if (datesModel != null)
            {
                datesModel.Deleted = true;
                context.SaveChanges();
            }

            return(Ok());
        }
        public IHttpActionResult AddHostRentDate(AddRentDate rentDate)
        {
            if (CheckRole("Host"))
            {
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            if (rentDate.RentDate.Year.ToString() != "0001")
            {
                return(StatusCode(HttpStatusCode.NotAcceptable));
            }


            DatesModel datesModel = new DatesModel();

            datesModel.ApartmanID = rentDate.ApartmentID;
            datesModel.Available  = true;
            datesModel.RentDate   = rentDate.RentDate;

            context.DatesModels.Add(datesModel);
            context.SaveChanges();

            return(Ok());
        }
Пример #7
0
        public async Task <IActionResult> AddDate([FromBody] DatesModel model)
        {
            try
            {
                if (await _context.dates.AnyAsync(f => f.Date == model.Date))
                {
                    return(StatusCode(400, new
                    {
                        code = 400,
                        message = " Exist",
                        result = (object)null
                    }));
                }
                var date = _mapper.Map <Dates>(model);

                await _context.dates.AddAsync(date);

                await _context.SaveChangesAsync();

                return(StatusCode(200, new
                {
                    code = 200,
                    message = " Successfuly Created",
                    result = new
                    {
                        ID = date.ID,
                        Date = date.Date,
                        booked = date.isBooked
                    }
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public IHttpActionResult RequestApartmentRentDates(RentDateModelBM rentD)
        {
            if (CheckRole("Guest"))
            {
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            Apartman apartman = context.Apartmans.Where(x => x.Deleted == false && x.ID == rentD.ApartmanID).FirstOrDefault();

            if (apartman == null)
            {
                return(BadRequest("Apartmant doesn't exist"));
            }

            bool     Available         = true;
            DateTime currentDate       = rentD.RentDate;
            int      normalPriceDays   = 0;
            int      discountPriceDays = 0;
            int      holidayPriceDays  = 0;

            for (int i = 0; i < rentD.RentDays; i++)
            {
                DatesModel datesModel = context.DatesModels.Where(x => x.ApartmanID == rentD.ApartmanID && x.RentDate.Year == currentDate.Year && x.RentDate.Month == currentDate.Month && x.RentDate.Day == currentDate.Day && x.Available == true && x.Deleted == false).FirstOrDefault();
                if (datesModel == null)
                {
                    Available = false;
                    break;
                }

                //praznici:
                var holidayCheck = context.Holidays.Where(x => x.Deleted == false && x.Holiday.Year == datesModel.RentDate.Year && x.Holiday.Month == datesModel.RentDate.Month && x.Holiday.Day == datesModel.RentDate.Day).FirstOrDefault();
                if (holidayCheck != null)
                {
                    holidayPriceDays++;
                }
                else
                {
                    if (datesModel.RentDate.DayOfWeek == DayOfWeek.Friday || datesModel.RentDate.DayOfWeek == DayOfWeek.Saturday || datesModel.RentDate.DayOfWeek == DayOfWeek.Sunday) // popust za vikend
                    {
                        discountPriceDays++;
                    }
                    else
                    {
                        normalPriceDays++;
                    }
                }


                currentDate = currentDate.AddDays(1);
            }

            if (!Available)
            {
                return(BadRequest("The dates you entered are not available"));
            }

            Reservation reservation = new Reservation();

            reservation.ApartmanID     = rentD.ApartmanID;
            reservation.GuestID        = rentD.GuestID;
            reservation.SingUpDate     = rentD.RentDate;
            reservation.NumberOfNights = rentD.RentDays;
            reservation.Stauts         = ReservationStatus.Created;
            // popust za vikend:
            reservation.TotalPrice = 0;
            //ako je praznik onda se povecava cena za 5 % praznik
            if (holidayPriceDays != 0)
            {
                reservation.TotalPrice += holidayPriceDays * (apartman.PricePerNight + ((5 * apartman.PricePerNight) / 100));
            }
            if (normalPriceDays != 0)
            {
                reservation.TotalPrice += normalPriceDays * apartman.PricePerNight;
            }
            if (discountPriceDays != 0)
            {
                reservation.TotalPrice += discountPriceDays * (apartman.PricePerNight - ((10 * apartman.PricePerNight) / 100)); //10% popusta
            }



            context.Reservations.Add(reservation);
            context.SaveChanges();

            currentDate = rentD.RentDate;
            for (int i = 0; i < rentD.RentDays; i++)
            {
                DatesModel datesModel = context.DatesModels.Where(x => x.ApartmanID == rentD.ApartmanID && x.RentDate.Year == currentDate.Year && x.RentDate.Month == currentDate.Month && x.RentDate.Day == currentDate.Day && x.Available == true && x.Deleted == false).FirstOrDefault();
                datesModel.Available = false;
                context.SaveChanges();

                currentDate = currentDate.AddDays(1);
            }

            return(Ok("Request sent"));
        }
Пример #9
0
        protected override void Seed(AirBnb_Web1.DataAccessLayer.AirBnbContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.



            Adress adress1 = new Adress();

            adress1.ID           = 1;
            adress1.Streat       = "Bulevar Oslobodjenja";
            adress1.StreatNumber = 30;
            adress1.ZipCode      = 21000;
            adress1.Settlement   = "Novi Sad";
            context.Adresss.Add(adress1);
            context.SaveChanges();

            Amenitie amenitie1 = new Amenitie();

            amenitie1.Name = "Klima";
            context.Amenities.Add(amenitie1);
            context.SaveChanges();

            Location location1 = new Location();

            location1.ID        = 1;
            location1.Latitude  = 45.23;
            location1.Longitude = 25.23;
            location1.AdressID  = adress1.ID;
            context.Locations.Add(location1);
            context.SaveChanges();

            User user1 = new User {
                ID = 1, Name = "Sasa", Surname = "Dragomirovic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Admin, UserName = "******", Blocked = false
            };
            User user2 = new User {
                ID = 2, Name = "Biba", Surname = "Bibic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Guest, UserName = "******", Blocked = false
            };
            User user3 = new User {
                ID = 3, Name = "Gruja", Surname = "Grujic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Host, UserName = "******", Blocked = false
            };

            context.Users.Add(user1);
            context.Users.Add(user2);
            context.Users.Add(user3);
            context.SaveChanges();

            Apartman apartman1 = new Apartman {
                ID = 1, SingUpTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0), SingOutTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0), Status = Helper.Enums.ApartmanStatus.Active, GuestNumber = 3, HostID = user3.ID, LocationID = location1.ID, PricePerNight = 20, RoomNumber = 2
            };

            context.Apartmans.Add(apartman1);
            context.SaveChanges();

            Comment comment1 = new Comment {
                ID = 1, ApartmanID = apartman1.ID, GuestID = user2.ID, Rate = 9.5, Text = "Nice one"
            };

            context.Comments.Add(comment1);
            context.SaveChanges();

            DatesModel rentDate1 = new DatesModel {
                ID = 1, ApartmanID = apartman1.ID, Available = true, RentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0)
            };

            context.DatesModels.Add(rentDate1);
            context.SaveChanges();

            DatesModel rentDate2 = new DatesModel {
                ID = 1, ApartmanID = apartman1.ID, Available = true, RentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0)
            };

            context.DatesModels.Add(rentDate2);
            context.SaveChanges();

            DatesModel rentDate3 = new DatesModel {
                ID = 1, ApartmanID = apartman1.ID, Available = true, RentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0)
            };

            context.DatesModels.Add(rentDate3);
            context.SaveChanges();

            Reservation reservation1 = new Reservation {
                ID = 1, ApartmanID = apartman1.ID, GuestID = user2.ID, NumberOfNights = 10, SingUpDate = rentDate1.RentDate, Stauts = Helper.Enums.ReservationStatus.Accepted, TotalPrice = 100
            };

            context.Reservations.Add(reservation1);
            context.SaveChanges();

            Reservation reservation2 = new Reservation {
                ID = 2, ApartmanID = apartman1.ID, GuestID = user2.ID, NumberOfNights = 10, SingUpDate = rentDate2.RentDate, Stauts = Helper.Enums.ReservationStatus.Created, TotalPrice = 200
            };

            context.Reservations.Add(reservation2);
            context.SaveChanges();

            Reservation reservation3 = new Reservation {
                ID = 3, ApartmanID = apartman1.ID, GuestID = user2.ID, NumberOfNights = 10, SingUpDate = rentDate3.RentDate, Stauts = Helper.Enums.ReservationStatus.Done, TotalPrice = 200
            };

            context.Reservations.Add(reservation3);
            context.SaveChanges();

            HolidayDays h1 = new HolidayDays {
                Deleted = false, Holiday = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0)
            };

            context.Holidays.Add(h1);
            context.SaveChanges();
        }
Пример #10
0
 public ActionResult SubmitDates(DatesModel date)
 {
     return(Json(new { data = "zorana" }, JsonRequestBehavior.AllowGet));
 }