예제 #1
0
        public IHttpActionResult VoidTransaction(VoidTransactionViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var userId = User.Identity.GetUserId();

            var transaction = db.Transactions
                              .FirstOrDefault(p => p.Id == model.Id);

            if (transaction == null)
            {
                return(BadRequest("Transaction doesn't exist"));
            }

            var houseHold = transaction.Account.HouseHold;

            //if (houseHold.CreatorId == userId ||
            //    houseHold.HouseHoldUser.Any(p => p.Id == userId))
            //{
            transaction.Account.Balance -= transaction.Amount;
            transaction.IsVoided         = true;

            db.SaveChanges();

            return(Ok());
            //}
            //else
            //{
            //    return BadRequest("Not authorized");
            //}
        }
        public ActionResult VoidTransactions(VoidTransactionViewModel model)
        {
            var cookie = Request.Cookies["token"];

            if (cookie == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            var accessToken = cookie.Value;
            var httpClient  = new HttpClient();

            httpClient.DefaultRequestHeaders.Authorization =
                new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
            var parameters = new List <System.Collections.Generic.KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("Id", model.Id.ToString()));

            var formEncodedValues = new FormUrlEncodedContent(parameters);

            var result =
                httpClient.PutAsync("http://localhost:54111/api/transactions/VoidTransaction", formEncodedValues).Result;

            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var jsonString = result.Content.ReadAsStringAsync().Result;
                var Voided     = JsonConvert
                                 .DeserializeObject <List <CreateTransactionsViewModel> >(jsonString);
                ViewBag.Voided = "This transaction has been voided";
                return(View(Voided));
            }
            //else if (result.StatusCode == System.Net.HttpStatusCode.BadRequest)
            //{
            //    var jsonString = result.Content.ReadAsStringAsync().Result;
            //    var error = JsonConvert.DeserializeObject<ApiResponseModel>(jsonString);
            //    //ModelState.AddModelError("", error.Message);
            //    ViewBag.ErrorMessage = error.Message;
            //}
            //else
            //{
            //    ViewBag.ErrorMessage = "Something went wrong. Please try again.";
            //    //ModelState.AddModelError("", "Something went wrong");
            //}
            return(View());
        }