public ActionResult AcceptInvitation(string id) { HorseplayContext db = new HorseplayContext(); var invs = db.Invitations.Where(i => i.InvitationToken == id.Trim() && i.IsAccepted == false); if (invs.Any()) { //correct token, let's add new user to that Tenant AddingUserViewModel vm = new AddingUserViewModel(); int tenantId = invs.FirstOrDefault().TenantId; TempData["TenantId"] = tenantId; TempData["InvitationToken"] = id; User user = new Models.User() { TenantId = tenantId, Email = invs.FirstOrDefault().InvitedMail }; vm.User = user; vm.Invitation = invs.FirstOrDefault(); return(View("AddUser", vm)); } else { return(new HttpNotFoundResult("Nie znaleziono strony")); } }
public ActionResult AddUser() { AddingUserViewModel vm = new AddingUserViewModel(); vm.User = new User(); return(View("AddUser", vm)); }
public ActionResult AddUser(AddingUserViewModel vm) { if (!ModelState.IsValid) { return(View("AddUser", vm)); } else { HorseplayContext db = new HorseplayContext(); if (db.Users.Any(x => x.Login == vm.User.Login)) { //user of such login already exists, drop error ModelState.AddModelError(string.Empty, "Użytkownik o takim loginie już istnieje. Podaj unikatowy login"); return(View("AddUser", vm.User)); } else if (db.Users.Any(x => x.Email.Trim() == vm.User.Email.Trim())) { //user of such e-mail already exists, drop error ModelState.AddModelError(string.Empty, "Użytkownik o takim adresie e-mail już istnieje. Podaj unikatowy adres e-mail"); return(View("AddUser", vm)); } else { //validation done, let's add user if (vm.User.TenantId == 0) { string token = Utilities.uniqueToken(db); vm.User.ConfirmationToken = token.Trim(); vm.User.ExpirationDate = DateTime.Now.AddDays(14); string result = SendVerificationToken(token, vm.User.Email); TempData["Info"] = result; vm.User.createdOn = DateTime.Now; Tenant tenant = new Tenant { createdOn = DateTime.Now }; db.Tenants.Add(tenant); try { db.SaveChanges(); }catch (Exception ex) { Debug.WriteLine(ex.Message + ", " + ex.InnerException); } vm.User.TenantId = tenant.TenantId; db.Users.Add(vm.User); try { db.SaveChanges(); }catch (Exception ex) { Debug.WriteLine(ex.Message + ", " + ex.InnerException); } tenant.createdBy = vm.User.UserId; try { db.SaveChanges(); }catch (Exception ex) { Debug.WriteLine(ex.Message + ", " + ex.InnerException); } } else { Invitation Invitation = db.Invitations.Where(i => i.InvitationToken == vm.Invitation.InvitationToken).FirstOrDefault(); Invitation.AcceptedOn = DateTime.Now; Invitation.IsAccepted = true; vm.User.ConfirmationToken = Invitation.InvitationToken; vm.User.ExpirationDate = Invitation.ExpirationDate; vm.User.createdOn = DateTime.Now; vm.User.ConfirmationDate = DateTime.Now; vm.User.IsConfirmed = true; db.Entry(Invitation).State = System.Data.Entity.EntityState.Modified; db.Users.Add(vm.User); db.SaveChanges(); } return(View("userCreated", vm.User)); } } }