Beispiel #1
0
        public IActionResult SetUserConfiguration([FromBody] SetUserConfigurationModel model)
        {
            int id = userIdentity.GetCurrentUser().Result.Id;

            if (ModelState.IsValid)
            {
                if (!String.IsNullOrEmpty(model.Password) &&
                    !String.IsNullOrWhiteSpace(model.Password) &&
                    (!String.IsNullOrEmpty(model.NewPassword) &&
                     !String.IsNullOrWhiteSpace(model.NewPassword)) &&
                    (!String.IsNullOrEmpty(model.NewPasswordConfirmation) &&
                     !String.IsNullOrWhiteSpace(model.NewPasswordConfirmation)))
                {
                    using (var managementClient = new ManagementApiClient())
                    {
                        if (managementClient.AuthenticateUser(model.Email, model.Password).StatusCode == HttpStatusCode.OK)
                        {
                            if (model.NewPassword == model.NewPasswordConfirmation)
                            {
                                if (managementClient.EditUsersPassword(model.Email, model.NewPassword).StatusCode != HttpStatusCode.OK)
                                {
                                    return(new StatusCodeResult(503));
                                }
                            }
                            else
                            {
                                return(new StatusCodeResult(400));
                            }
                        }
                        else
                        {
                            return(new StatusCodeResult(403));
                        }
                    }
                }
                var result = ds.EditUsername(id, model.Username);

                switch (result)
                {
                case ObjectManipulationResult.Success:
                    return(new StatusCodeResult(200));

                case ObjectManipulationResult.Exists:
                    return(new StatusCodeResult(409));

                case ObjectManipulationResult.ErrorOccured:
                    return(new StatusCodeResult(500));

                default:
                    return(new StatusCodeResult(500));
                }
            }
            else
            {
                return(new StatusCodeResult(400));
            }
        }