Exemplo n.º 1
0
        public string SendRemindPasswordRequest([Bind(Include = "RemindPasswordEmail")] UserToSendRemindPasswordRequestViewModel userToSendRemindPasswordRequest)
        {
            if (!Request.IsAjaxRequest())
                throw new Exception("Zapytanie nie zostało wywołane jako zapytanie AJAX");

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

            var user = new User();
            AutoMapperConfiguration.Mapper.Map(userToSendRemindPasswordRequest, user);
            var sendActivationResult = user.SendRemindPasswordRequest();

            if (sendActivationResult == UserActionResult.DatabaseError)
            {
                return JsonConvert.SerializeObject(new
                {
                    Message = "Baza danych nie odpowiada",
                    Result = UserActionResult.DatabaseError,
                    ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.DatabaseError)
                });
            }

            if (sendActivationResult == UserActionResult.SendingEmailFailure)
            {
                return JsonConvert.SerializeObject(new
                {
                    Message = "Email z kodem weryfikacyjnym nie został wysłany",
                    Result = UserActionResult.SendingEmailFailure,
                    ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.SendingEmailFailure)
                });
            }

            if (sendActivationResult == UserActionResult.Success)
            {
                return JsonConvert.SerializeObject(new
                {
                    Message = $"Kod weryfikacyjny wysłano do: <span class=\"linklike\">{user.RemindPasswordEmail}</span>",
                    Result = UserActionResult.Success,
                    ResultString = Enum.GetName(typeof(UserActionResult), UserActionResult.Success)
                });
            }

            throw new ArgumentOutOfRangeException();
        }