private void ThrowIfExpired(IOAuthClientFlow flow) { CheckExpired(flow); var session = EntityHelper.GetSession(flow); session.Context.ThrowIf(flow.Status == OAuthFlowStatus.Expired, ClientFaultCodes.InvalidAction, "OAuthFlow", "OAuth 2.0 process expired."); }
public static OAuthFlow ToModel(this IOAuthClientFlow flow) { if (flow == null) { return(null); } return(new OAuthFlow() { Id = flow.Id, StartedOn = flow.CreatedOn, Status = flow.Status, Server = flow.Account.Server.Name, UserId = flow.UserId, AuthorizationUrl = flow.AuthorizationUrl }); }
private void CheckExpired(IOAuthClientFlow flow) { switch (flow.Status) { case OAuthFlowStatus.Started: case OAuthFlowStatus.Authorized: var session = EntityHelper.GetSession(flow); var expires = flow.CreatedOn.AddMinutes(Settings.FlowExpirationMinutes); var now = App.TimeService.UtcNow; if (expires > now) { return; } //Update the status in database flow.Status = OAuthFlowStatus.Expired; var updQuery = session.EntitySet <IOAuthClientFlow>().Where(f => f.Id == flow.Id).Select(f => new { Status = OAuthFlowStatus.Expired }); updQuery.ExecuteUpdate <IOAuthClientFlow>(); return; } } //method