Пример #1
0
        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"));
            }
        }
Пример #2
0
        public ActionResult AddUser()
        {
            AddingUserViewModel vm = new AddingUserViewModel();

            vm.User = new User();
            return(View("AddUser", vm));
        }
Пример #3
0
        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));
                }
            }
        }