public ActionResult WorkingPlacePage(string id)
        {
            if (id == null || !id.IsInt())
            {
                return(RedirectToAction("FindWorkPlaces"));
            }

            WorkingPlaceModel modelPlace = Utilities.SendDbUtility.GetWorkingPlace(Int32.Parse(id));

            if (modelPlace == null)
            {
                return(RedirectToAction("FindWorkPlaces"));
            }

            SalonModel           modelSalon = Utilities.SendDbUtility.GetSalon(modelPlace.SalonId);
            List <TimeSlotModel> modelsTime = Utilities.SendDbUtility.GetTimeSlots(modelPlace.Id);

            if (modelSalon == null)
            {
                return(RedirectToAction("FindWorkPlaces"));
            }

            ViewBag.ErrorMessage = TempData["ErrorMessage"];
            ViewBag.InfoMessage  = TempData["InfoMessage"];

            bool isAdminOfSalon = false;
            int  userId         = 0;

            if (Request.Cookies.AllKeys.Contains("SalonId") && Request.Cookies["SalonId"].Value == modelPlace.SalonId.ToString() && Utilities.SendDbUtility.CheckAdmin(modelPlace.SalonId, User.Identity.Name))
            {
                isAdminOfSalon = true;
            }
            else
            {
                userId = Utilities.SendDbUtility.GetResidentId(User.Identity.Name);
            }

            ViewBag.Favorites = Utilities.SendDbUtility.CheckFavorite(modelPlace.Id, userId);

            ViewBag.IsAdminOfSalon = isAdminOfSalon;

            BookingModel modelBooking = new BookingModel()
            {
                PlaceId    = Int32.Parse(id),
                SalonId    = modelPlace.SalonId,
                ResidentId = userId
            };



            object[] x = new object[]
            {
                modelPlace,
                modelSalon,
                modelsTime,
                modelBooking
            };

            return(View(x));
        }
Exemplo n.º 2
0
        public ActionResult AddWorkingPlace(WorkingPlaceModel model, IEnumerable <HttpPostedFileBase> SalonPhoto)
        {
            if (!ModelState.IsValid)
            {
                TempData["ErrorMessage"] = "Не заполнены все обязательные поля!";
                return(RedirectToAction("SalonPlaces", "Admin", new { id = model.SalonId }));
            }

            Utilities.SendDbUtility.AddWorkingPlace(model);
            foreach (var file in SalonPhoto)
            {
                if (file != null)
                {
                    SendDbUtility.SaveSalonPhoto(file, model.Id.ToString());
                }
            }
            return(RedirectToAction("SalonPlaces", "Admin", new { id = model.SalonId }));
        }
        public ActionResult ViewFavorites()
        {
            List <FavoriteModel> models = new List <FavoriteModel>();
            int userId = Utilities.SendDbUtility.GetResidentId(User.Identity.Name);

            string[] favorites = Utilities.SendDbUtility.GetFavorites(userId).Split(',');
            for (int i = 0; i < favorites.Length - 1; i++)
            {
                WorkingPlaceModel place = Utilities.SendDbUtility.GetWorkingPlace(Int32.Parse(favorites[i]));
                SalonModel        salon;

                try
                {
                    salon = SendDbUtility.GetSalon(place.SalonId);
                    models.Add(new FavoriteModel()
                    {
                        PlaceId        = Int32.Parse(favorites[i]),
                        SalonTitle     = salon.SalonTitle,
                        SalonAdress    = salon.Adress,
                        Rate1h         = place.Rate1h,
                        Rateday        = place.RateDay,
                        RateHalfMounth = place.RateHalfMounth,
                        RateMounth     = place.RateMounth
                    });
                }
                catch (Exception e)
                {
                }
            }

            if (Request.Cookies.AllKeys.Contains("SalonId"))
            {
                models.Clear();
            }


            ViewBag.ErrorMessage = TempData["ErrorMessage"];
            ViewBag.InfoMessage  = TempData["InfoMessage"];

            return(View(models));
        }
        public ActionResult Booking(BookingModel model)
        {
            if (ModelState.IsValid)
            {
                if (Request.Cookies.AllKeys.Contains("SalonId"))
                {
                    if (Request.Cookies["SalonId"].Value != model.SalonId.ToString())
                    {
                        TempData["ErrorMessage"] = "Ошибка бронирования.";
                        return(RedirectToAction("WorkingPlacePage", "TimerClub", new { id = model.PlaceId.ToString() }));
                    }

                    if (model.Name == "" || model.Surname == "" || model.Phone == "")
                    {
                        TempData["ErrorMessage"] = "Введите имя, фамилию и телефон мастера";
                        return(RedirectToAction("WorkingPlacePage", "TimerClub", new { id = model.PlaceId.ToString() }));
                    }
                }

                var timesCount          = model.Times.Split(';').Length - 1;
                WorkingPlaceModel place = Utilities.SendDbUtility.GetWorkingPlace(model.PlaceId);
                SalonModel        salon = Utilities.SendDbUtility.GetSalon(place.SalonId);
                string[]          times = new string[] {};
                if (model.Date.DayOfWeek == DayOfWeek.Saturday)
                {
                    times = salon.OperatingModeSat.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Sunday)
                {
                    times = salon.OperatingModeSun.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Monday)
                {
                    times = salon.OperatingModeMon.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Tuesday)
                {
                    times = salon.OperatingModeTue.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Wednesday)
                {
                    times = salon.OperatingModeWed.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Thursday)
                {
                    times = salon.OperatingModeThu.Split('-');
                }
                else if (model.Date.DayOfWeek == DayOfWeek.Friday)
                {
                    times = salon.OperatingModeFri.Split('-');
                }
                else
                {
                    TempData["ErrorMessage"] = "Ошибка бронирования!";
                    return(RedirectToAction("WorkingPlacePage", "TimerClub", new { id = model.PlaceId }));
                }

                if (times.Length != 2)
                {
                    TempData["ErrorMessage"] = "Ошибка бронирования!";
                    return(RedirectToAction("WorkingPlacePage", "TimerClub", new { id = model.PlaceId }));
                }
                int    fullDayCount = Int32.Parse(times[1].Split(':')[0]) - Int32.Parse(times[0].Split(':')[0]);
                double total;
                if (timesCount >= fullDayCount && place.RateDay != 0)
                {
                    total = place.RateDay;
                }
                else
                {
                    total = timesCount * place.Rate1h;
                }

                model.Sum = total;


                if (!Utilities.SendDbUtility.SetBooking(model))
                {
                    TempData["ErrorMessage"] = "Ошибка бронирования!";
                }
                else
                {
                    TempData["InfoMessage"] = "Рабочее место успешно забронировано!";
                }
            }
            else
            {
                TempData["ErrorMessage"] = "Не все обязательные поля заполнены!";
            }
            return(RedirectToAction("WorkingPlacePage", "TimerClub", new { id = model.PlaceId }));
        }
Exemplo n.º 5
0
        public static bool AddWorkingPlace(WorkingPlaceModel model)
        {
            using (UserContext dbUse = new UserContext())
            {
                try
                {
                    dbUse.WorkingPlaceModels.Add(model);
                    dbUse.SaveChanges();

                    SalonModel salon          = GetSalon(model.SalonId);
                    string[]   workingTimeMon = salon.OperatingModeMon.Split('-');
                    int        constFromMon   = Int32.Parse(workingTimeMon[0].Trim().Substring(0, 2));
                    int        constToMon     = Int32.Parse(workingTimeMon[1].Trim().Substring(0, 2));

                    string[] workingTimeTue = salon.OperatingModeTue.Split('-');
                    int      constFromTue   = Int32.Parse(workingTimeTue[0].Trim().Substring(0, 2));
                    int      constToTue     = Int32.Parse(workingTimeTue[1].Trim().Substring(0, 2));

                    string[] workingTimeWed = salon.OperatingModeWed.Split('-');
                    int      constFromWed   = Int32.Parse(workingTimeWed[0].Trim().Substring(0, 2));
                    int      constToWed     = Int32.Parse(workingTimeWed[1].Trim().Substring(0, 2));

                    string[] workingTimeThu = salon.OperatingModeThu.Split('-');
                    int      constFromThu   = Int32.Parse(workingTimeThu[0].Trim().Substring(0, 2));
                    int      constToThu     = Int32.Parse(workingTimeThu[1].Trim().Substring(0, 2));

                    string[] workingTimeFri = salon.OperatingModeFri.Split('-');
                    int      constFromFri   = Int32.Parse(workingTimeFri[0].Trim().Substring(0, 2));
                    int      constToFri     = Int32.Parse(workingTimeFri[1].Trim().Substring(0, 2));

                    string[] workingTimeSat = salon.OperatingModeSat.Split('-');
                    int      constFromSat   = Int32.Parse(workingTimeSat[0].Trim().Substring(0, 2));
                    int      constToSat     = Int32.Parse(workingTimeSat[1].Trim().Substring(0, 2));

                    string[] workingTimeSun = salon.OperatingModeSun.Split('-');
                    int      constFromSun   = Int32.Parse(workingTimeSun[0].Trim().Substring(0, 2));
                    int      constToSun     = Int32.Parse(workingTimeSun[1].Trim().Substring(0, 2));
                    if (constFromMon > constToMon)
                    {
                        constFromMon = constToMon;
                    }
                    if (constFromTue > constToTue)
                    {
                        constFromTue = constToTue;
                    }
                    if (constFromWed > constToWed)
                    {
                        constFromWed = constToWed;
                    }
                    if (constFromThu > constToThu)
                    {
                        constFromThu = constToThu;
                    }
                    if (constFromFri > constToFri)
                    {
                        constFromFri = constToFri;
                    }


                    if (constFromSat > constToSat)
                    {
                        constFromSat = constToSat;
                    }
                    if (constFromSun > constToSun)
                    {
                        constFromSun = constToSun;
                    }

                    int      from;
                    int      to;
                    int      tempTo;
                    int      tempFrom;
                    DateTime dateNow = DateTime.Today;
                    for (int i = 0; i < 14; i++)
                    {
                        if (dateNow.DayOfWeek == DayOfWeek.Saturday)
                        {
                            from = constFromSat;
                            to   = constToSat;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Sunday)
                        {
                            from = constFromSun;
                            to   = constToSun;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Monday)
                        {
                            from = constFromMon;
                            to   = constToMon;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Tuesday)
                        {
                            from = constFromTue;
                            to   = constToTue;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Wednesday)
                        {
                            from = constFromWed;
                            to   = constToWed;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Thursday)
                        {
                            from = constFromThu;
                            to   = constToThu;
                        }
                        else if (dateNow.DayOfWeek == DayOfWeek.Friday)
                        {
                            from = constFromFri;
                            to   = constToFri;
                        }
                        else
                        {
                            throw new NotImplementedException();
                        }
                        while (from != to)
                        {
                            tempFrom = from;
                            tempTo   = ++from;
                            dbUse.TimeSlotModels.Add(new TimeSlotModel()
                            {
                                PlaceId = model.Id,
                                SalonId = model.SalonId,
                                Time    = tempFrom.ToString() + ":00-" + tempTo.ToString() + ":00",
                                Booked  = false,
                                Date    = dateNow
                            });
                        }

                        dateNow = dateNow.AddDays(1);
                    }
                    dbUse.SaveChanges();
                }
                catch (Exception e)
                {
                    return(false);
                }
                return(true);
            }
        }