public IActionResult Step2(EventPlanningStep2ViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.ServicePackageSelected.Count() > 1)
                {
                    ModelState.AddModelError("ServicePackageSelected", "Select just one type of service!");

                    return(ResetStep2(model));
                }

                var step1 = TempData.Get <Step1Dto>("Step1");
                model.Step1 = step1;

                var servicePackageDict = TempData.Get <Dictionary <int, int> >("ServicePackageDict");
                servicePackageDict[(int)model.ServiceType] = model.ServicePackageSelected[0];
                TempData.Put("ServicePackageDict", servicePackageDict);

                model.BugetNeeded = model.BugetNeeded + model.Step1.Participants * servicePackageService.GetById(model.ServicePackageSelected[0]).PricePerParticipant;
                if (model.ServiceSelectedIndex == step1.ServiceTypesSelected.Count() - 1)
                {
                    var ecentDto = new EventDto()
                    {
                        UserId           = step1.UserId,
                        EventType        = (EventType)Enum.Parse(typeof(EventType), step1.EventTypesSelected[0]),
                        NumberOfServices = step1.ServiceTypesSelected.Count(),
                        Participants     = step1.Participants,
                        BugetNeeded      = model.BugetNeeded,
                        Status           = EventStatus.Planning,
                        EventDate        = DateTime.Parse(step1.EventDate),
                        IsDeleted        = false
                    };
                    eventService.Create(ecentDto, servicePackageDict);

                    return(RedirectToAction(nameof(EventPlanningController.Step3), "EventPlanning", new { buget = model.BugetNeeded }));
                }

                var serviceWrappers = GetServiceWrapperViewModels(DateTime.Parse(model.Step1.EventDate), model.Step1.ServiceTypesSelected[model.ServiceSelectedIndex + 1], model.Step1.Participants);

                TempData.Put("ServiceWrappers", serviceWrappers);
                TempData.Put("Step1", step1);
                //model.EventTypesSelected.ForEach(x => wrapperDict[(ServiceType)Enum.Parse(typeof(ServiceType), x)] = serviceService.GetServiceWrappersByDateAndNOP(DateTime.Parse(model.EventDate), x,model.Participants));
                return(View(new EventPlanningStep2ViewModel()
                {
                    Step1 = step1,
                    ServiceSelectedIndex = model.ServiceSelectedIndex + 1,
                    ServiceType = (ServiceType)Enum.Parse(typeof(ServiceType), model.Step1.ServiceTypesSelected[model.ServiceSelectedIndex + 1]),
                    ServiceWrappers = serviceWrappers,
                    BugetNeeded = model.BugetNeeded
                }));
            }
            return(ResetStep2(model));
        }
        private IActionResult ResetStep2(EventPlanningStep2ViewModel model)
        {
            var step1 = TempData.Get <Step1Dto>("Step1");

            TempData.Put("Step1", step1);
            var serviceWrappers  = TempData.Get <List <ServiceWrapperViewModel> >("ServiceWrappers");
            var serviceTypeValue = model.ServiceSelectedIndex < step1.EventTypesSelected.Count() ? model.ServiceSelectedIndex : model.ServiceSelectedIndex - 1;
            var parsedType       = (ServiceType)Enum.Parse(typeof(ServiceType), step1.ServiceTypesSelected[serviceTypeValue]);

            return(View(new EventPlanningStep2ViewModel()
            {
                Step1 = step1,
                ServiceType = parsedType,
                ServiceSelectedIndex = model.ServiceSelectedIndex,
                ServiceWrappers = serviceWrappers,
            }));
        }