// // GET: /Connect/Callback - Callback url from the api.xero.com authorisation endpoint public ActionResult Callback() { Debug.Write("Processing: /Connect/Callback"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository<AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository<RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); string verificationCode = Request.Params["oauth_verifier"]; // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); IToken requestToken = requestTokenRepository.GetToken(""); if (requestToken == null) { throw new ApplicationException("The request token could not be retrived from the current http session. Is session state and cookies enabled?"); } AccessToken accessToken = oauthSession.ExchangeRequestTokenForAccessToken(requestToken, verificationCode); accessTokenRepository.SaveToken(accessToken); GetAndStoreAuthorisedOrganisationName(apiRepository); return new RedirectResult("~/"); }
// GET: api/Accounts public HttpResponseMessage GetAccounts() { string[] includes = new[] { "Currency", "Bank" }; ; IRepository repository=new ApiRepository(db); var accounts = repository.All<Account>(includes); var response = new ResponseList(); response.Data = accounts; response.Total = accounts.Count(); //return response; return Request.CreateResponse(HttpStatusCode.OK, response); }
// // GET: /Contacts/ public ActionResult Index() { var listRequest = new ApiGetRequest <Contact> { OrderByClause = "Name DESC", WhereClause = "" }; ApiRepository repository = new ApiRepository(); HttpSessionAccessTokenRepository accessTokenRepository = new HttpSessionAccessTokenRepository(Session); if (accessTokenRepository.GetToken("") == null) { return(new ReturnToHomeResult("There is no access token for the current user. Please click the 'connect' button on the homepage.")); } Response response = repository.Get(accessTokenRepository, listRequest); return(View(response.Contacts)); }
public IActionResult GetAll() { try { MealProducts = mealProductData.GetAll().ToList(); if (!MealProducts.Any()) { return(NotFound()); } MealProductDTOs = ApiRepository.MealProductsToDto(MealProducts); return(Ok(MealProductDTOs)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } }
public void Api_RetrieveAllGitUserTest() { IDictionary <string, string> parameters = new Dictionary <string, string>() { { "since", "135" } }; IDictionary <string, string> headers = new Dictionary <string, string>() { { "User-Agent", "rajkarri" } }; IDictionary <string, object> input = new Dictionary <string, object>(); input.Add("Parameters", parameters); input.Add("Headers", headers); IRepository <GitUser> usersRepository = new ApiRepository <GitUser>("GitUsersApi"); usersRepository.Input = input; List <GitUser> gitUsers = usersRepository.GetAll().ToList(); }
// // GET: /Invoices/ public ActionResult Index() { ApiGetRequest<Invoice> listRequest = new ApiGetRequest<Invoice> { OrderByClause = "Date DESC", WhereClause = "AmountDue > 0" }; ApiRepository repository = new ApiRepository(); HttpSessionAccessTokenRepository accessTokenRepository = new HttpSessionAccessTokenRepository(Session); if (accessTokenRepository.GetToken("") == null) { return new ReturnToHomeResult("There is no access token for the current user. Please click the 'connect' button on the homepage."); } Response response = repository.Get(accessTokenRepository, listRequest); return View(response.Invoices); }
public async Task <ActionResult> Register(RegisterViewModel model) { var repo = new ApiRepository(); if (ModelState.IsValid) { var user = new User(); user.Username = model.Username; user.FirstName = model.FirstName; user.LastName = model.LastName; if (model.Password != model.ConfirmPassword) { ModelState.AddModelError("", "Password not same with confirm password"); return(View(model)); } user.Password = model.Password; user.Email = model.Email; user.IsActive = true; IList <Role> roles = new List <Role>(); Role role = new Role(); role.RoleId = 1; role.RoleName = "Admin"; //Admin by default roles.Add(role); user.Roles = roles; var status = await repo.RegisterUserAsync(user); if (status) { return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "Error on registration"); return(View(model)); } return(View(model)); }
protected virtual async Task UpdateTest( Func <IApiRepository <Post>, Post, Task> update) { // Arrange IApiRepository <Post> apiRepository = new ApiRepository <Post>(configuration, "https://jsonplaceholder.typicode.com"); // Act var post = new Post { Id = 1, UserId = 1, Title = "New title", Body = "New body" }; await update(apiRepository, post); // Assert Assert.Equal(1, post.Id); Assert.Equal("New title", post.Title); }
// // GET: /Connect/Index - Main OAuth Connection Endpoint public ActionResult Index() { Debug.Write("Processing: /Connect/Index"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository<AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository<RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); // Do we already have a session token in sessionstate? - is it still usable? if (accessTokenRepository.GetToken("") != null) { if (apiRepository.TestConnectionToXeroApi(accessTokenRepository)) { return new RedirectResult("~/"); } // The current session token+secret doesn't work - probably due to it expiring in 30mins. accessTokenRepository.SaveToken(null); } // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); RequestToken requestToken = oauthSession.GetRequestToken(); requestTokenRepository.SaveToken(requestToken); Trace.WriteLine("OAuth Request Token: " + requestToken.Token); Trace.WriteLine("OAuth Request Secret: " + requestToken.TokenSecret); string authorisationUrl = oauthSession.GetUserAuthorizationUrlForToken(requestToken); Trace.WriteLine("Redirecting browser to user authorisation uri:" + authorisationUrl); return new RedirectResult(authorisationUrl); }
// // GET: /Connect/Index - Main OAuth Connection Endpoint public ActionResult Index() { Debug.Write("Processing: /Connect/Index"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository <AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository <RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); // Do we already have a session token in sessionstate? - is it still usable? if (accessTokenRepository.GetToken("") != null) { if (apiRepository.TestConnectionToXeroApi(accessTokenRepository)) { return(new RedirectResult("~/")); } // The current session token+secret doesn't work - probably due to it expiring in 30mins. accessTokenRepository.SaveToken(null); } // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); RequestToken requestToken = oauthSession.GetRequestToken(); requestTokenRepository.SaveToken(requestToken); Trace.WriteLine("OAuth Request Token: " + requestToken.Token); Trace.WriteLine("OAuth Request Secret: " + requestToken.TokenSecret); string authorisationUrl = oauthSession.GetUserAuthorizationUrlForToken(requestToken); Trace.WriteLine("Redirecting browser to user authorisation uri:" + authorisationUrl); return(new RedirectResult(authorisationUrl)); }
public IActionResult Put(int mid, int pid, MealProductDTO dto) { try { MealProduct = mealProductData.GetByIds(mid, pid); if (MealProduct == null) { return(NotFound($"Could not find entity with ids:{mid},{pid}")); } ApiRepository.DtoToMealProduct(dto, MealProduct); mealProductData.Update(MealProduct); if (mealProductData.Commit() > 0) { return(Ok("Updated!")); } } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } return(BadRequest()); }
public IActionResult Put(int id, MealDTO dto) { try { Meal = mealData.GetById(id); if (Meal == null) { return(NotFound($"Could not find meal with id:{id}")); } ApiRepository.DtoToMeal(dto, Meal); mealData.Update(Meal); if (mealData.Commit() > 0) { return(Ok("Updated!")); } } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } return(BadRequest()); }
protected virtual async Task Find_Invalid_Path_Test( Func <IApiRepository <Post>, Task <IEnumerable <Post> > > find) { // Arrange IApiRepository <Post> apiRepository = new ApiRepository <Post>(configuration, "https://jsonplaceholder.typicode.com", "bad_path") .SetParameter("UserId", 1); try { await find(apiRepository); } catch (ApiException exc) { Assert.Equal("GET", exc.Method); Assert.Equal("https://jsonplaceholder.typicode.com", exc.BasePath); Assert.Equal("bad_path", exc.Path); Assert.Equal(404, exc.ErrorCode); } catch (Exception) { throw; } }
public IActionResult Put(int id, DayDTO dto) { try { Day = dayData.GetById(id); if (Day == null) { return(NotFound($"Could not find day with id:{id}")); } ApiRepository.DtoToDay(dto, Day); dayData.Update(Day); if (dayData.Commit() > 0) { return(Ok("Updated!")); } } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } return(BadRequest()); }
public IActionResult Put(int id, ProductDTO dto) { try { Product = productData.GetById(id); if (Product == null) { return(NotFound($"Could not find product with id:{id}")); } ApiRepository.DtoToProduct(dto, Product); productData.Update(Product); if (productData.Commit() > 0) { return(Ok("Updated!")); } } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } return(BadRequest()); }
public List <Track> Get() { var repository = new ApiRepository(); return(repository.GetAllTracks()); }
private void GetAndStoreAuthorisedOrganisationName(ApiRepository apiRepository) { // Get the organisation name from the api Response organisationResponse = apiRepository.GetItemByIdOrCode<Organisation>(Session, null); if (organisationResponse.Organisations != null && organisationResponse.Organisations.Count > 0) { Session["xero_organisation_name"] = organisationResponse.Organisations[0].Name; Session["xero_connection_time"] = DateTime.Now; } }
public MainService() { _apiRepository = new ApiRepository(); _fileRepository = new FileRepository(); }
public AllController(ApiRepository repository) { _repository = repository; }
public RepeatFailedMethodService(ApiRepository apiRepository, DbRepository dbRepository) { this.apiRepository = apiRepository; this.dbRepository = dbRepository; }
public ActionResult RefreshAccessToken() { Debug.Write("Processing: /Connect/RefreshAccessToken"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository<AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); // This will take the existing access token from sessionState, call to API to repace the access token for a new one, and write the new access token back to session state. apiRepository.RenewAccessToken(accessTokenRepository); GetAndStoreAuthorisedOrganisationName(apiRepository); return new RedirectResult("~/"); }
public DetailsModel(ApiRepository repository) { this.repository = repository; }
public ApiController() { data = new ApiRepository(); }
public KeyController(WrathIncarnateContext context) { _repository = new ApiRepository <ApiAccess>(context); _context = context; }
public HttpResponseMessage Get() { System.Web.Http.Routing.IHttpRouteData routeData = Request.GetRouteData(); //var req = HttpUtility.ParseQueryString(Request.RequestUri.Query); var reqOptions = Request.GetQueryNameValuePairs(); var controllerName = (string)routeData.Values["controller_name"]; var controllers = ApiRepository.GetViews(); if (!controllers.Contains(controllerName.ToUpper())) { var message = $"'{controllerName}' not found"; var err = new HttpError(message); return(Request.CreateResponse(HttpStatusCode.NotFound, err)); } var colList = ApiRepository.GetColumns(controllerName); var colsStr = string.Join(", ", colList.ToArray()); var parmCount = routeData.Route.Defaults.Keys.Count(p => p.Contains("parm")); var condition = ""; if (routeData.Values.Count > 2) { for (var i = 0; i <= parmCount - 1; i++) { if (colList.Count < i + 1) { continue; } var col = colList[i]; var parm = "parm" + (i).ToString(); if (!routeData.Values.ContainsKey(parm)) { continue; } var val = (string)routeData.Values["parm" + (i).ToString()]; val = val.Replace("'", "''"); if (string.IsNullOrEmpty(val) || val.ToUpper().Trim() == "ANY") { continue; } var sign = "="; val = string.Join(",", val.Split(',').Select(v => $"'{v}'")); if (val.Contains(",")) { sign = " in "; val = $"({val})"; } condition += $" and {col}{sign}{val}"; } } if (colList.Contains("[PRICE]")) { int val; string sVal; if (routeData.Values.ContainsKey("min_price")) { sVal = (string)routeData.Values["min_price"]; if (!string.IsNullOrEmpty(sVal) && sVal.ToUpper().Trim() != "ANY") { if (int.TryParse(sVal, out val)) { condition += $" and price>={val.ToString()}"; } } } if (routeData.Values.ContainsKey("max_price")) { sVal = (string)routeData.Values["max_price"]; if (!string.IsNullOrEmpty(sVal) && sVal.ToUpper().Trim() != "ANY") { if (int.TryParse(sVal, out val)) { condition += $" and price<={val}"; } } } } foreach (var reqParm in reqOptions) { var col = "[" + reqParm.Key.ToUpper() + "]"; var val = reqParm.Value.Replace("'", "''"); var sign = "="; if (col.Contains("MIN_")) { col = col.Replace("MIN_", ""); sign = ">="; } if (col.Contains("MAX_")) { col = col.Replace("MAX_", ""); sign = "<="; } val = string.Join(",", val.Split(',').Select(v => $"'{v}'")); if (val.Contains(",")) { sign = " in "; val = $"({val})"; } if (colList.Contains(col)) { condition += $" and {col}{sign}{val}"; } } var q = $"select {colsStr} from v_api_{controllerName.Trim()} where 1=1 {condition}"; var dynamicContext = ApiRepository.GetDynData(q).Cast <DynamicContext>().ToArray(); var response = Request.CreateResponse(HttpStatusCode.OK, dynamicContext); return(response); }
public ClanController(WrathIncarnateContext context) { _repository = new ApiRepository <Clan>(context); _context = context; }
public ValuesController(ApiRepository dbContext) { _repository = dbContext; }
public RoleController(WrathIncarnateContext context) { _repository = new ApiRepository <DiscordRole>(context); _context = context; }
public APIController(NewsletterDBContext context) { _repository = new ApiRepository(context); }
public void RetrieveGitUserTest() { IRepository <GitUser> userRepository = new ApiRepository <GitUser>("GitUserApi"); var gitUser = userRepository.Get(); }
public DeleteModel(ApiRepository repository) { this.repository = repository; }
public void RetrieveAllCustomersTest() { IRepository <Customer> customerRepository = new ApiRepository <Customer>("CustomerApi"); List <Customer> customers = customerRepository.GetAll().ToList(); }
public CreateModel(ApiRepository repository) { this.repository = repository; }
public void DeleteCustomerTest() { IRepository <Customer> customerRepository = new ApiRepository <Customer>("CustomerApi"); var response = customerRepository.Delete(2); }
public IndexModel(ApiRepository repository) { this.repository = repository; }
public EditModel(ApiRepository repository) { this.repository = repository; }