Exemplo n.º 1
0
        public string ActivateUserAccount([Bind(Include = "ActivationEmail,ActivationCode")] UserToActivateViewModel userToActivate)
        {
            if (!Request.IsAjaxRequest())
                throw new Exception("Zapytanie nie zostało wywołane jako zapytanie AJAX");

            if (!ModelState.IsValid)
                throw new Exception("Walidacja użytkownika nie powiodła się");

            var user = new User();
            AutoMapperConfiguration.Mapper.Map(userToActivate, user);
            var activationResult = user.Activate();

            switch (activationResult)
            {
                case UserActionResult.Success:
                {
                    return JsonConvert.SerializeObject(new
                    {
                        Message = $"Konto <span class=\"linklike\">{user.UserName}</span> zostało Aktywowane",
                        Result = UserActionResult.Success,
                        ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.Success)
                    });
                }
                case UserActionResult.DatabaseError:
                {
                    return JsonConvert.SerializeObject(new
                    {
                        Message = "Baza danych nie odpowiada",
                        Result = UserActionResult.DatabaseError,
                        ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.DatabaseError)
                    });
                }
                case UserActionResult.AccountAlreadyActivated:
                {
                    return JsonConvert.SerializeObject(new
                    {
                        Message = "Użytkownik został już aktywowany",
                        Result = UserActionResult.AccountAlreadyActivated,
                        ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.AccountAlreadyActivated)
                    });
                }
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }