public IActionResult Update([FromBody] MPersonUpdate mPerson) { if (!HttpContext.Session.IsAuth()) { return(StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Não autorizado!"))); } if (string.IsNullOrEmpty(mPerson.Name)) { return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "Seu nome não pode estar em vazio!"))); } if (!string.IsNullOrEmpty(mPerson.Password) && !mPerson.Password.IsValidPassord()) { return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "A senha deve conter ao menos 6 caracteres, dentre eles, uma letra e um número!"))); } var person = _uPerson.GetById(HttpContext.Session.GetSessionPersonId()); if (!string.IsNullOrEmpty(mPerson.Password)) { person.Password = mPerson.Password.Sha256Hash(); } if (mPerson.Institution != null && mPerson.Institution.Name != person.Institution?.Name && !string.IsNullOrEmpty(mPerson.Institution.Name)) { person.Institution = _uInstitution.GetExact(mPerson.Institution.Name) ?? _bInstitution.Save(mPerson.Institution.Name); } else if (string.IsNullOrEmpty(mPerson.Institution?.Name) && !string.IsNullOrEmpty(person.Institution?.Name)) { person.Institution = null; } if (!string.IsNullOrEmpty(mPerson.Photo)) { var file = FileExtensions.CopyFromTo(new List <string> { mPerson.Photo }, _configuration["Directory:TEMP"], _configuration["Directory:UPLOAD"]).FirstOrDefault(); person.PhotoPath = file; } person.Name = mPerson.Name; _bPerson.Update(person); _bHistory.SaveHistory(person.Id, "Usuário editou seu cadastro"); HttpContext.Session.Authenticate(person); return(Ok(ResponseContent.Create(null, HttpStatusCode.OK, "Usuário editado com sucesso!"))); }