public ActionResult Edit([Bind(Include = "ID,Adress,Telefon,Epost,Startnummer,Lagnamn,Kanot_Id,Klubb,Klass_Id,HarBetalt,ForseningsavgiftId,Registreringstid,Kommentar,Bana_Id,RabattId,PaysonToken,EvenemangsId,Invoice")] Registreringar registreringar) { if (ModelState.IsValid) { db.Entry(registreringar).State = EntityState.Modified; var origReg = smuService.Db.Registreringar.Include(r => r.Deltagare).First(r => r.Id == registreringar.Id); foreach (var deltagare in origReg.Deltagare) { var nyttFornamn = Request.Form["deltagare_f_" + deltagare.Id]; var nyttEfternamn = Request.Form["deltagare_e_" + deltagare.Id]; if (!deltagare.Förnamn.Equals(nyttFornamn) || !deltagare.Efternamn.Equals(nyttEfternamn)) { deltagare.Förnamn = nyttFornamn; deltagare.Efternamn = nyttEfternamn; db.Entry(deltagare).State = EntityState.Modified; } } if (registreringar.Invoice != null) { db.Entry(registreringar.Invoice).State = EntityState.Modified; } db.SaveChanges(); return(RedirectToAction("Index", new { id = registreringar.EvenemangsId })); } SetViewBag(registreringar, registreringar.EvenemangsId.Value); SetViewBag(registreringar.EvenemangsId); return(View(registreringar)); }
public static int Kalk(Registreringar registrering) { return(registrering.Bana.Avgift + (registrering.Kanot != null ? registrering.Kanot.Avgift : 0) + registrering.Forseningsavgift.Summa - registrering.Rabatt.Summa); }
public void HarBetalt(Registreringar reg) { var registrering = GetRegistrering(reg.Id, false); registrering.HarBetalt = true; UpdateraRegistrering(registrering); }
public ActionResult SendInvoice(int?id) { if (id == null) { return(ShowError(log, "Kan inte skicka faktura utan id", false)); } Registreringar registreringar = smuService.GetRegistrering(id.Value, true); if (registreringar == null) { return(ShowError(log, "Kan inte hitta registrering med id " + id.Value, false)); } var lyckatsSkicka = false; try { lyckatsSkicka = SkickaFaktura(registreringar); } catch (Exception exc) { TempData["FelMeddelande"] = "Misslyckades med att skicka faktura. Anledning: " + exc.Message; LogError(log, "Misslyckades med att skicka faktura. Anledning: " + exc.Message, exc); } if (lyckatsSkicka) { TempData["Meddelande"] = "Faktura skickad till " + registreringar.Epost; } return(RedirectToAction("Index", new { id = registreringar.Evenemang.Id })); }
public ActionResult DeleteConfirmed(int id) { Registreringar registreringar = db.Registreringar.Find(id); db.Registreringar.Remove(registreringar); db.SaveChanges(); return(RedirectToAction("Index")); }
protected static void DeleteDeltagare(Registreringar registrering) { var deltagareToDelete = db.DeltagareSet.Where(delt => delt.RegistreringarID == registrering.ID); foreach (var deltagare in deltagareToDelete) { db.DeltagareSet.DeleteObject(deltagare); } }
public static int Kalk(Registreringar registrering) { var avgift = registrering.Banor.Avgift + (registrering.Kanoter != null ? registrering.Kanoter.Avgift : 0) + registrering.Forseningsavgift - registrering.Rabatt; return avgift != null ? avgift.Value : 0; }
public ActionResult AcceptReg(Registreringar registrering, string button) { try { if (!string.IsNullOrEmpty(button) && button == "Ändra") { return RedirectToAction("Create"); } if (!string.IsNullOrEmpty(button) && button == "Faktura *") { return RedirectToAction("Invoice", "Checkout"); } if (!string.IsNullOrEmpty(button) && (button == "Betala" || button == "Klar")) { log.Debug("AcceptReg Betala. Lagnamn: " + registrering.Lagnamn); if (Request.IsAuthenticated) { SaveNewRegistration(); return RedirectToAction("Index"); } var reg = (Registreringar)Session["reg"]; // Free start if (Avgift.Kalk(reg) == 0) { reg.HarBetalt = true; SaveNewRegistration(); return RedirectToAction("Redirect"); } var checkout = new CheckoutModel { Registrering = reg, SenderFirstName = reg.Deltagare[0].Förnamn, SenderLastName = reg.Deltagare[0].Efternamn, SenderEmail = reg.Epost }; Session["checkout"] = checkout; return RedirectToAction("Checkout", "Checkout"); } return View(registrering); } catch (Exception exception) { return ShowError("Error in POST AcceptReg.", exception); } }
public ActionResult Create([Bind(Include = "ID,Adress,Telefon,Epost,Ranking,Startnummer,Lagnamn,Kanot,Klubb,Klass,HarBetalt,Forseningsavgift,Registreringstid,Kommentar,Bana,Rabatter,PaysonToken,Evenemang_Id,Invoice")] Registreringar registreringar) { if (ModelState.IsValid) { db.Registreringar.Add(registreringar); db.SaveChanges(); return(RedirectToAction("Index")); } SetViewBag(registreringar, registreringar.EvenemangsId.Value); SetViewBag(registreringar.EvenemangsId); return(View(registreringar)); }
/// <summary> /// Spara ny registrering i databasen /// </summary> /// <param name="reg"></param> public void SparaNyRegistrering(Registreringar reg) { log.Debug("Sparar ny registrering"); try { reg.Registreringstid = DateTime.Now; if (reg.Bana != null) { Db.Banor.Attach(reg.Bana); } if (reg.Kanot != null) { Db.Kanoter.Attach(reg.Kanot); } if (reg.Klass != null) { Db.Klasser.Attach(reg.Klass); } if (reg.Evenemang != null) { Db.Evenemang.Attach(reg.Evenemang); } if (reg.Forseningsavgift != null && reg.ForseningsavgiftId == null) { reg.ForseningsavgiftId = reg.Forseningsavgift.Id; reg.Forseningsavgift = null; } if (reg.Rabatt != null && reg.RabattId == null) { reg.RabattId = reg.Rabatt.Id; reg.Rabatt = null; } var ev = Db.Evenemang.Include("Registreringar").Where(e => e.Id == reg.EvenemangsId).FirstOrDefault(); ev.Registreringar.Add(reg); Db.SaveChanges(); } catch (Exception exc) { log.Error("Error while saving a new registration.", exc); throw new Exception("Error while saving a new registration", exc); } }
// GET: Registreringar/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Registreringar registreringar = db.Registreringar.Find(id); if (registreringar == null) { return(HttpNotFound()); } return(View(registreringar)); }
public void TabortRegistrering(Registreringar reg) { try { Db.Registreringar.Remove(reg); Db.SaveChanges(); log.Debug("Removed registration with id: " + reg.Id + " and Lagnamn: " + reg.Lagnamn); } catch (Exception exc) { log.Error("Error while deleting a registration", exc); throw new Exception("Error while deleting a registration", exc); } }
public void UpdateraRegistrering(Registreringar updatedReg) { try { log.Debug("Uppdaterar registrering. Lagnamn: " + updatedReg.Lagnamn); var origReg = GetRegistrering(updatedReg.Id, false); Db.Entry(updatedReg).CurrentValues.SetValues(origReg); Db.SaveChanges(); } catch (Exception exc) { log.Error("Error updating registration", exc); throw new Exception("Error while updating a registration", exc); } }
protected void SkickaRegMail(Registreringar reg) { try { smuService.FillRegistrering(reg); var appUrl = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~")); var link = appUrl + "signmeup/bekraftelsebetalning/" + reg.Id; SendMail.SendRegistration(RenderRazorViewToString("BekraftelseMail", reg), appUrl, link, reg); log.Debug("Skickat epost till lagnamn: " + reg.Lagnamn); } catch (Exception exc) { log.Error("Unable to send confirmation mail.", exc); } }
// GET: Registreringar/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Registreringar registreringar = smuService.GetRegistrering(id.Value, true); if (registreringar == null) { return(HttpNotFound()); } SetViewBag(registreringar, registreringar.EvenemangsId.Value); SetViewBag(registreringar.EvenemangsId); return(View(registreringar)); }
public Registreringar FillRegistrering(Registreringar reg) { reg.Evenemang = Db.Evenemang.Find(reg.EvenemangsId); reg.Evenemang.Organisation = Db.Organisationer.Find(reg.Evenemang.OrganisationsId); if (reg.Rabatt == null && reg.RabattId != 0) { reg.Rabatt = Db.Rabatter.Find(reg.RabattId); } if (reg.Forseningsavgift == null && reg.ForseningsavgiftId != 0) { reg.Forseningsavgift = Db.Forseningsavgift.Find(reg.ForseningsavgiftId); } return(reg); }
protected void SetViewBag(Registreringar reg, int evenemangsId) { if (reg != null) { ViewBag.Bana_Id = new SelectList(smuService.HamtaBanor(reg.EvenemangsId.Value), "ID", "Namn", reg.Bana.Id); ViewBag.Kanot_Id = new SelectList(smuService.HamtaKanoter(reg.EvenemangsId.Value), "ID", "Namn", reg.Kanot.Id); ViewBag.Klass_Id = new SelectList(smuService.HamtaKlasser(reg.EvenemangsId.Value), "ID", "Namn", reg.Klass.Id); ViewBag.PlusEllerMinus = EnumHelper.GetSelectList(typeof(TypAvgift)); } else { ViewBag.Bana_Id = new SelectList(smuService.HamtaBanor(evenemangsId), "ID", "Namn"); ViewBag.Kanot_Id = new SelectList(smuService.HamtaKanoter(evenemangsId), "ID", "Namn"); ViewBag.Klass_Id = new SelectList(smuService.HamtaKlasser(evenemangsId), "ID", "Namn"); ViewBag.PlusEllerMinus = EnumHelper.GetSelectList(typeof(TypAvgift)); } }
protected bool SkickaFaktura(Registreringar reg) { var fakturaVm = SkapaFakturaVM(reg); try { var appUrl = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~")); var link = appUrl + "signmeup/faktura/" + reg.Id; SendMail.SkickaFaktura(RenderRazorViewToString("_faktura", fakturaVm), appUrl, link, fakturaVm); log.Debug("Skickat epost till lagnamn: " + reg.Lagnamn); return(true); } catch (Exception exc) { log.Error("Unable to send confirmation mail.", exc); } return(false); }
protected FakturaVM SkapaFakturaVM(Registreringar reg) { var evenemang = smuService.HamtaEvenemang(reg.EvenemangsId.Value); var arrangor = smuService.HamtaOrganisation(evenemang.OrganisationsId); if (reg.Invoice == null) { throw new Exception("Registreringen har ingen faktureringsadress."); } return(new FakturaVM { Registrering = reg, Arrangor = arrangor, Evenemangsnamn = evenemang.Namn, BetalaSenast = evenemang.FakturaBetaldSenast, Fakturaadress = ClassMapper.MappTillInvoiceVM(reg.Invoice), Betalningsmetoder = ClassMapper.MappaTillBetalningsmetoderVM(arrangor.Betalningsmetoder) }); }
public ActionResult Create(Registreringar registrering, string sendReg, string Bana, string rabattkod) { log.Debug("New registration. Lagnamn: " + registrering.Lagnamn); try { // Changed bana //if (!string.IsNullOrEmpty(Bana) && string.IsNullOrEmpty(sendReg)) //{ // TrimDeltagare(registrering); // FillViewData(); // Session["reg"] = registrering; // return RedirectToAction("Create"); //} registrering.Registreringstid = DateTime.Now; registrering.Forseningsavgift = Avgift.Forseningsavgift(db); TryValidateModel(registrering); if (ModelState.IsValid) { if (!string.IsNullOrEmpty(rabattkod)) { var discount = db.Rabatter.FirstOrDefault(rabatt => rabatt.Kod.ToLower() == rabattkod.ToLower()); if (discount != null) { registrering.Rabatt = discount.Summa; registrering.Kommentar += "Rabattkod använd: " + discount.Kod; } else { TempData["ValidationError"] = "Fel rabattkod angavs."; return RedirectToAction("Create"); } } FillRegistrering(registrering); Session["reg"] = registrering; return RedirectToAction("AcceptReg"); } FillViewData(); return View(registrering); } catch (Exception exception) { return ShowError("Error in POST create.", exception); } }
private static void TrimDeltagare(Registreringar registrering) { var bana = db.Banor.FirstOrDefault(b => b.ID == registrering.Bana); if (registrering.Deltagare.Count > bana.AntalDeltagare) { for (var i = registrering.Deltagare.Count - 1; i > bana.AntalDeltagare - 1; i--) { registrering.Deltagare.RemoveAt(i); } } else if (registrering.Deltagare.Count < bana.AntalDeltagare) { for (var i = registrering.Deltagare.Count; i < bana.AntalDeltagare; i++) { registrering.Deltagare.Add(new Deltagare()); } } }
protected void SaveChanges(Registreringar reg) { db.Registreringar.ApplyCurrentValues(reg); db.SaveChanges(); }
protected void FillRegistrering(Registreringar registrering) { registrering.Kanoter = db.Kanoter.First(kanot => kanot.ID == registrering.Kanot); registrering.Banor = db.Banor.First(bana => bana.ID == registrering.Bana); registrering.Klasser = db.Klasser.First(klass => klass.ID == registrering.Klass); }
// // GET: /Reg/Create public ActionResult Create() { var start = db.StartOchSlut.Where(startSlut => startSlut.Namn == "Start").FirstOrDefault(); if (start != null && DateTime.Now < start.Datum && !Request.IsAuthenticated) { return View("RegNotOpen", start.Datum); } var s**t = db.StartOchSlut.Where(startSlut => startSlut.Namn == "S**t").FirstOrDefault(); if (s**t != null && DateTime.Now >= s**t.Datum && !Request.IsAuthenticated) { return View("RegClosed"); } FillViewData(); if (Session["reg"] != null) { return View(Session["reg"]); } #if DEBUG var registrering = new Registreringar { Lagnamn = "Röda laget", Adress = "Kätterud 313, 65591, Karlstad", Bana = 1, Klass = 1, Epost = "*****@*****.**", Kanot = 1, Klubb = "KMS", Deltagare = new TrackableCollection<Deltagare> { new Deltagare {Förnamn = "Martin", Efternamn = "Andersson"}, new Deltagare {Förnamn = "Karin", Efternamn = "Larsson"} }, Telefon = "1234234234", Forseningsavgift = Avgift.Forseningsavgift(db) }; return View(registrering); #endif return View(new Registreringar {Deltagare = new TrackableCollection<Deltagare> {new Deltagare(), new Deltagare()}, Forseningsavgift = Avgift.Forseningsavgift(db)}); }
protected void SetAsPaid(Registreringar registration) { registration.HarBetalt = true; SaveChanges(registration); try { FillViewData(); var appUrl = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~")); var link = appUrl + "home/mail/" + registration.ID; SendMail.SendRegistration(RenderRazorViewToString("_MailView", registration), appUrl, link, registration.Epost); log.Debug("Sent confirmation mail. Lagnamn: " + registration.Lagnamn); } catch (Exception exc) { log.Error("Unable to send confirmation mail.", exc); } }
protected void SaveNewRegistration(Registreringar reg = null) { if (reg == null) { reg = (Registreringar)Session["reg"]; } reg.Banor = null; reg.Kanoter = null; reg.Klasser = null; try { db.Registreringar.AddObject(reg); db.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { log.Error(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { log.Error(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } throw; } Session["reg"] = null; Session["checkout"] = null; }
public ActionResult ShowPaymentError(string logMessage, IDictionary<string, string> response, Registreringar registration) { var str = new StringBuilder(); str.Append(logMessage); str.Append("\n"); foreach (KeyValuePair<string, string> error in response) { str.Append(error.Key + ": " + error.Value); str.Append("\n"); } log.Error(str.ToString()); try { SendMail.SendErrorMessage(str.ToString()); } catch (Exception exception) { log.Error("Erro when sending error message.", exception); } if (response.ContainsKey("errorList.error(0).message")) { TempData["PaymentErrorMessage"] = response["errorList.error(0).message"]; TempData["PaymentErrorParameter"] = response["errorList.error(0).parameter"]; } else { TempData["PaymentErrorMessage"] = "Betalningen avbröts av okänd anledning."; TempData["PaymentErrorParameter"] = "Okänd"; } return RedirectToAction("Create", "Home", registration); }
public static void SendRegistration(string message, string hostAddress, string link, Registreringar reg) { try { message = message.Replace("href=\"/", string.Format("href=\"{0}", hostAddress)); message = message.Replace("src=\"/", string.Format("src=\"{0}", hostAddress)); message = message.Replace("<html>", string.Format("<html>Ser meddelandet konstigt ut? Öppna följande adress i en webbläsare: {0}<br/><br/>", link)); // Create the email object first, then add the properties. SendGridMessage myMessage = new SendGridMessage(); myMessage.AddTo(reg.Epost); myMessage.From = new MailAddress(reg.Evenemang.Organisation.Epost, reg.Evenemang.Organisation.Namn); myMessage.Subject = string.Format("Bekräftelse anmälan till " + reg.Evenemang.Namn); myMessage.Html = message; myMessage.Text = "Följ länken för en bekräftelse på din anmälan: " + link; // Create credentials, specifying your user name and password. var credentials = new NetworkCredential(ConfigurationManager.AppSettings["SendGridUser"], ConfigurationManager.AppSettings["SendGridPwd"]); // Create an Web transport for sending email. var transportWeb = new Web(credentials); // Send the email. // You can also use the **DeliverAsync** method, which returns an awaitable task. transportWeb.DeliverAsync(myMessage); } catch (Exception exc) { ILog log = LogManager.GetLogger("SendMail"); log.Error("Fel vid skickande av mail.", exc); } }
public ActionResult Edit(Registreringar registreringar, string sendReg, string Bana) { try { // Changed bana if (!string.IsNullOrEmpty(Bana) && string.IsNullOrEmpty(sendReg)) { TrimDeltagare(registreringar); FillViewData(); Session["reg"] = registreringar; return View("Create", registreringar); } TryValidateModel(registreringar); if (ModelState.IsValid) { var origReg = db.Registreringar.Include("Deltagare").FirstOrDefault(reg => reg.ID == registreringar.ID); // Remove old deltagare DeleteDeltagare(origReg); db.SaveChanges(); // Add all new foreach (var deltagare in registreringar.Deltagare) { db.DeltagareSet.AddObject(deltagare); } db.SaveChanges(); registreringar.Registreringstid = origReg != null ? origReg.Registreringstid : DateTime.Now; db.Registreringar.ApplyCurrentValues(registreringar); db.SaveChanges(); return RedirectToAction("Index"); } FillViewData(); return View("Create", registreringar); } catch (Exception exception) { return ShowError("Error in POST Edit.", exception); } }