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(); } }