Пример #1
0
        public virtual async Task <IHttpActionResult> SignInForgotPassword([FromBody] ForgotPasswordRequest request)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            Identity identity;

            try
            {
                identity = (Identity)request.ToEntity(this.Context);
            }
            catch (NotImplementedException)
            {
                identity = (Identity)await request.ToEntityAsync(this.Context);
            }

            if (identity == null || identity.Client == null || identity.Client.IsBlocked)
            {
                return(this.Unauthorized());
            }

            this._repositoryUser.Update(identity.User);

            try
            {
                await this._repositoryUser.CommitAsync();
            }
            catch (DbEntityValidationException)
            {
                this.Validate <User>(identity.User);
                return(this.BadRequest(this.ModelState));
            }

            var identities = this._repository.Query(e => e.User.Id == identity.User.Id).ToList();

            identities.ForEach(e => this._repository.Delete(e));

            await this._repository.CommitAsync();

            return(this.Ok());
        }