public PartialViewResult RefuseActivity(Guid ActivityId)
        {
            var activityRefusal = new ActivityRefusalViewModel();

            activityRefusal.ActivityId = ActivityId;

            return(PartialView("_RefuseActivity"));
        }
        public async Task <ActionResult> RefuseActivity(ActivityRefusalViewModel refusal)
        {
            var result = await RefuseActivityAsync(refusal);

            if (result.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                TempData.Put <ValidationResult>("ValidationResult", result);
                return(View("Index", "Activity"));
            }
        }
        public async Task <ValidationResult> RefuseActivityAsync(ActivityRefusalViewModel refusal)
        {
            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", HttpContext.Session.Get <UserDTO>("user").Token);

                var url = CreateRequestURI(String.Format("activity/{0}?operation={1}&reason={2}", refusal.ActivityId.ToString(), "refuse", refusal.Reason));

                using (var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url))
                {
                    // Sending Request
                    using (var httpResponse = await httpClient.SendAsync(httpRequestMessage).ConfigureAwait(false))
                    {
                        // Reading result
                        string readHttpResponse = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);

                        // Deserializing json object and setting configure await as false to run code in background by running code in Task
                        var jsonObject = JsonConvert.DeserializeObject <ValidationResult>(readHttpResponse, _settings);

                        return(jsonObject);
                    }
                }
            }
        }