예제 #1
0
        public async Task <IResult> Delete(int id)
        {
            var query = new Dictionary <string, string>
            {
                ["id"] = id.ToString()
            };

            var token = _httpContextAccessor.HttpContext.Session.GetString("token");

            if (string.IsNullOrEmpty(token))
            {
                return(new ErrorResult("Unauthorized."));
            }


            _httpClient.AddJwtTokenToHeader(token);

            var response = await _httpClient.DeleteAsync(QueryHelpers.AddQueryString("admin/user", query));

            if (response.IsSuccessStatusCode)
            {
                return(new Result(true));
            }
            else
            {
                return(new Result(await response.Content.ReadAsStringAsync(), false));
            }
        }
예제 #2
0
        public async Task <IResult> Add(ShelterDto dto)
        {
            var postData = JsonConvert.SerializeObject(dto);

            var content = new StringContent(postData, Encoding.UTF8, ContentTypes.JSON);

            var token = _httpContextAccessor.HttpContext.Session.GetString("token");

            if (string.IsNullOrEmpty(token))
            {
                return(new Result(false, System.Net.HttpStatusCode.BadRequest));
            }

            _httpClient.AddJwtTokenToHeader(token);

            var response = await _httpClient.PostAsync("admin/shelter", content);

            if (response.IsSuccessStatusCode)
            {
                return(new Result());
            }
            else
            {
                return(new Result(false, System.Net.HttpStatusCode.BadRequest));
            }
        }
예제 #3
0
        public async Task <IDataResult <string> > Add(PetDto dto)
        {
            var postData = JsonConvert.SerializeObject(dto);

            var content = new StringContent(postData, Encoding.UTF8, ContentTypes.JSON);

            var token = _httpContextAccessor.HttpContext.Session.GetString("token");

            if (string.IsNullOrEmpty(token))
            {
                return(new DataResult <string>("Unauthorized.", false, System.Net.HttpStatusCode.NotFound));
            }

            _httpClient.AddJwtTokenToHeader(token);

            var response = await _httpClient.PostAsync("", content);

            if (response.IsSuccessStatusCode)
            {
                return(new DataResult <string>(await response.Content.ReadAsStringAsync(), true, System.Net.HttpStatusCode.OK));
            }
            else
            {
                return(new DataResult <string>(await response.Content.ReadAsStringAsync(), false, System.Net.HttpStatusCode.NotFound));
            }
        }
예제 #4
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var token = context.HttpContext.Session.GetString("token");

            if (string.IsNullOrWhiteSpace(token))
            {
                context.Result = new RedirectToActionResult("Login", "Home", new { area = "" });
                return;
            }

            /// Get Active User with Token
            using var httpClient   = new HttpClient();
            httpClient.BaseAddress = new Uri(StaticVars.BaseAPIAdress);
            httpClient.AddJwtTokenToHeader(token);
            var responseMessage = httpClient.GetAsync("user").Result;

            if (responseMessage.StatusCode == HttpStatusCode.OK)
            {
                //Todo: Add user object
                var activeUser = JsonConvert.DeserializeObject <UserDto>(responseMessage.Content.ReadAsStringAsync().Result);
                if (!string.IsNullOrWhiteSpace(Roles))
                {
                    bool canAccess = false;
                    if (Roles.Contains(","))
                    {
                        var acceptedRoles = Roles.Split(",");
                        foreach (var role in acceptedRoles)
                        {
                            if (activeUser.UserRole.ToLower().Equals(role.ToLower()))
                            {
                                canAccess = true;
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (activeUser.UserRole.Equals(Roles))
                        {
                            canAccess = true;
                        }
                    }

                    if (!canAccess)
                    {
                        context.Result = new RedirectToActionResult("AccessDenied", "Account", null);
                    }
                }
            }
            else
            {
                context.Result = new RedirectToActionResult("Index", "Home", new { area = "", statusCode = responseMessage.StatusCode.ToString() });
            }
        }
예제 #5
0
        public async Task <IDataResult <List <ContactDto> > > List()
        {
            var token = _httpContextAccessor.HttpContext.Session.GetString("token");

            if (string.IsNullOrEmpty(token))
            {
                return(new DataResult <List <ContactDto> >(null, false, System.Net.HttpStatusCode.Unauthorized));
            }


            _httpClient.AddJwtTokenToHeader(token);
            var response = await _httpClient.GetAsync("admin/contact");

            if (response.IsSuccessStatusCode)
            {
                var dto = JsonConvert.DeserializeObject <List <ContactDto> >(await response.Content.ReadAsStringAsync());
                return(new DataResult <List <ContactDto> >(dto, true, response.StatusCode));
            }
            else
            {
                return(new DataResult <List <ContactDto> >(null, false, response.StatusCode));
            }
        }