public async Task <PatchResponse> Patch([FromBody] PatchRequest request)
        {
            var response = new PatchResponse();

            if (new EmailAddressAttribute().IsValid(request.Email))
            {
                var passwordBytes = System.Text.Encoding.UTF8.GetBytes(request.Password);
                var user          = await _shopoContext.Users.FirstOrDefaultAsync(u => u.Email == request.Email && u.Password == passwordBytes);

                if (user != null)
                {
                    if (request.ChangedPassword != "")
                    {
                        var encryptedPassword = System.Text.Encoding.UTF8.GetBytes(request.ChangedPassword);
                        user.Password            = encryptedPassword;
                        response.PasswordChanged = true;
                    }
                    else
                    {
                        user.Activated = (bool)request.Activate;
                        response.UserActivatedDeactivated = true;
                    }
                    await _shopoContext.SaveChangesAsync();

                    response.User = user;
                }
            }
            else
            {
                BadRequest();
            }
            return(response);
        }
Esempio n. 2
0
        /// <summary>
        /// Called when the patch thread is complete.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PatchWorker_OnComplete(object sender, PatchResponse e)
        {
            if (progressBar.InvokeRequired)
            {
                progressBar.Invoke(new MethodInvoker(delegate { PatchWorker_OnComplete(sender, e); }));
                return;
            }

            if (e.Errors.Count > 0)
            {
                if (e.FilesPatched > 0)
                {
                    ErrorMessage(Properties.Resources.ErrorModalPatchPartialFail, string.Join("\r\n", e.Errors));
                }
                else
                {
                    ErrorMessage(Properties.Resources.ErrorModalPatchFullFail, string.Join("\r\n", e.Errors));
                }

                progressBar.Visible        = false;
                labelCurrentStatus.Visible = false;

                ResetForm();
                EnableForm(true);
                return;
            }

            progressBar.Maximum     = 100;
            progressBar.Value       = 100;
            labelCurrentStatus.Text = Properties.Resources.StatusPatchComplete;

            ResetForm();
            EnableForm(true);
        }