Пример #1
0
        internal Registreringar Spara(SignMeUpVM SUPVM)
        {
            log.Debug("Sparar registrering");

            try
            {
                var reg = ClassMapper.MappaTillRegistrering(SUPVM, this);
                Db.Registreringar.Add(reg);
                Db.SaveChanges();
                Db.Entry(reg).GetDatabaseValues();
                return(reg);
            }
            catch (Exception exc)
            {
                log.Error("Ett fel inträffade vid sparande av en registrering.", exc);
                throw new Exception("Ett fel inträffade vid sparande av en registrering.", exc);
            }
        }
        public ActionResult Index(int?id)
        {
            SignMeUpVM SUPVM = (SignMeUpVM)Session["VM"];

            // Om view model innehåller ett evenemangsid som inte stämmer med inkommande id, nolla wizard
            if (SUPVM != null && id != null && SUPVM.EvenemangsId != id.Value)
            {
                SUPVM = null;
            }

            if (SUPVM == null)
            {
                if (id == null)
                {
                    return(ShowError(log, "Inget evenemang angivit. Klicka på länken nedan och välj ett evenemang.", false));
                }

                var evenemang = smuService.Db.Evenemang.Find(id);

                LogDebug(log, "Användare går in på anmälan för: " + evenemang.Namn);

                var evenemangResult = EvenemangHelper.EvaluateEvenemang(evenemang);

                if (evenemangResult == EvenemangHelper.EvenemangValidationResult.NotOpen)
                {
                    ViewBag.Closed  = false;
                    ViewBag.NotOpen = true;
                    return(View("RegNotOpen", evenemang));
                }
                else if (evenemangResult == EvenemangHelper.EvenemangValidationResult.Closed)
                {
                    ViewBag.Closed  = true;
                    ViewBag.NotOpen = false;
                    return(View("RegNotOpen", evenemang));
                }
                else if (evenemangResult == EvenemangHelper.EvenemangValidationResult.DoesNotExist)
                {
                    return(ShowError(log, "Evenemang med id " + id.Value + " är antingen borttaget ur databasen eller felaktigt angivet.", false));
                }

                ViewBag.ev = evenemang.Namn;

                // Förseningsavgift
                var f = smuService.HamtaForseningsavfigt(evenemang.Id);

                SUPVM = new SignMeUpVM
                {
                    EvenemangsId        = evenemang.Id,
                    EvenemangsNamn      = evenemang.Namn,
                    KanBetalaMedFaktura = evenemang.Fakturabetalning.HasValue ? evenemang.Fakturabetalning.Value : false,
                    FAVM  = f,
                    Steps = smuService.HamtaWizardSteps(evenemang.Id)
                };
            }

            HanteraPaymentError();

            if (id == null && SUPVM != null && SUPVM.EvenemangsId != 0)
            {
                id = SUPVM.EvenemangsId;
            }

            Session["VM"] = SUPVM;

            return(View(SUPVM.CurrentStep));
        }