//[HttpPost]
        public ActionResult ShowFreeSlots(StartCreateDTO startDto)
        {
            var station = db.Stations.Find(startDto.Station);
            var reservationsOfTheDay = db.Reservations
                                       .Where(e => e.ChargingPoint.Station.Id == station.Id)
                                       .Where(e => e.Date == startDto.Date).ToList();
            var listOfCargingPoints = station.ChargingPoints.Where(e => e.Station == station).ToList();

            var reservationsList = new List <Reservation>();

            foreach (var item in listOfCargingPoints)
            {
                var openTime  = station.OpenTime;
                var closeTime = station.CloseTime;
                var timeSpan  = TimeSpan.FromMinutes(30);

                while (openTime <= closeTime)
                {
                    if (reservationsOfTheDay
                        .Where(e => e.ChargingPoint.Id == item.Id)
                        .Any(e => e.TimeStart == openTime))
                    {
                        openTime = openTime.Add(timeSpan);
                        continue;
                    }
                    else
                    {
                        var reservation = new Reservation()
                        {
                            TimeStart     = openTime, TimeFinish = openTime.Add(timeSpan),
                            ChargingPoint = item, Date = startDto.Date, Status = "Not Selected"
                        };
                        openTime = openTime.Add(timeSpan);
                        reservationsList.Add(reservation);
                    }
                }
            }

            var showSlotsDto = new ShowFreeSlotsDTO();

            showSlotsDto.Reservations = reservationsList;
            showSlotsDto.Station      = station;

            return(View(showSlotsDto));
        }
        public ActionResult Create(ShowFreeSlotsDTO dto)
        {
            var client = GetClient();

            foreach (var item in dto.Reservations)
            {
                if (item.Selected)
                {
                    var reservation = new Reservation()
                    {
                        Date          = item.Date,
                        TimeStart     = item.TimeStart,
                        TimeFinish    = item.TimeFinish,
                        ServiceCode   = 123,
                        EstimatedCost = 123,
                        Status        = ConstantValues.READY,
                        ChargingPoint = db.ChargingPoints.Find(item.ChargingPoint.Id),
                        ChargingMode  = db.ChargingModes.Find(item.ChargingMode.Id),
                        Client        = client
                    };

                    try
                    {
                        db.Reservations.Add(reservation);
                        db.SaveChanges();
                    }
                    catch (DbEntityValidationException dbEx)
                    {
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                System.Diagnostics.Debug.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                            }
                        }
                    }
                }
            }

            return(RedirectToAction("Index", "Home"));
        }