public ActionResult Register(RegisterViewModel model) { if (!ModelState.IsValid) { return(View(model)); } try { var promoter = new Promoter { Name = model.Name, Login = "" }; DbSession.Save(promoter); promoter.Login = promoter.Id.ToString(); DbSession.Flush(); model.Login = promoter.Login; model.Password = GeneratePassword(); CreateUserInAD(Promoter.ACC_LOGIN_PREFIX + promoter.Login, model.Password); Association association; if (model.CreateAssociation) { association = new Association { Name = model.Name }; DbSession.Save(association); DbSession.Flush(); } else { association = DbSession.Query <Association>().First(r => r.Id == model.AssociationId); } var promoterAssociation = new PromoterAssociation { Association = association, Promoter = promoter }; DbSession.Save(promoterAssociation); } catch (Exception ex) { DbSession.Transaction.Rollback(); #if !DEBUG Membership.DeleteUser(Promoter.ACC_LOGIN_PREFIX + model.Login); #endif ModelState.AddModelError("", ex.Message); return(View(model)); } return(View("Confirm", model)); }
public static Association AddAssociation(ISession dbSession, Promoter promoter) { var newItem = new Association { Name = "new Association" }; dbSession.Save(newItem); var link = new PromoterAssociation { Association = newItem, Promoter = promoter }; dbSession.Save(link); newItem.Promoters.Add(link); return(newItem); }