//
        // 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);
        }
Exemple #3
0
        //
        // 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));
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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));
        }
Exemple #11
0
        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());
        }
Exemple #12
0
        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;
            }
        }
Exemple #14
0
        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());
        }
Exemple #15
0
        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;
     }
 }
Exemple #18
0
 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();
 }
Exemple #24
0
 public KeyController(WrathIncarnateContext context)
 {
     _repository = new ApiRepository <ApiAccess>(context);
     _context    = context;
 }
Exemple #25
0
        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);
        }
Exemple #26
0
 public ClanController(WrathIncarnateContext context)
 {
     _repository = new ApiRepository <Clan>(context);
     _context    = context;
 }
 public ValuesController(ApiRepository dbContext)
 {
     _repository = dbContext;
 }
Exemple #28
0
 public RoleController(WrathIncarnateContext context)
 {
     _repository = new ApiRepository <DiscordRole>(context);
     _context    = context;
 }
Exemple #29
0
 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);
 }
Exemple #35
0
 public IndexModel(ApiRepository repository)
 {
     this.repository = repository;
 }
Exemple #36
0
 public EditModel(ApiRepository repository)
 {
     this.repository = repository;
 }