public async Task <ActionResult> Back(int projectId, int?packageId) { var response = await _dataClient.GetProject(projectId); var model = new ProjectBackBindingModel(); if (response.StatusIsSuccessful) { if (response.Data != null) { model.Project = response.Data; model.ProjectId = response.Data.Id; } if (packageId.HasValue) { var packageResponse = await _dataClient.GetPackage(packageId.Value); if (packageResponse.Data != null) { model.Package = packageResponse.Data; model.PackageId = packageResponse.Data.Id; } } } if (response.ResponseCode == System.Net.HttpStatusCode.Unauthorized) { return(RedirectToAction("Login", "Account")); } return(View(model)); }
async Task <ProjectBackResponse> IDataClient.BackProject(ProjectBackBindingModel model) { var backingModel = new ProjectBackBindingModel { Amount = model.Amount, CreationDate = model.CreationDate, PackageId = model.PackageId, ProjectId = model.ProjectId, UserId = model.UserId, VivaOrderId = model.VivaOrderId }; var response = await ApiClient.PostJsonEncodedContent(projectbackUri, backingModel); return(await CreateJsonResponse <ProjectBackResponse>(response)); }
public async Task <ActionResult> Back(ProjectBackBindingModel model) { var response = await _dataClient.GetProject(model.ProjectId); if (response.StatusIsSuccessful) { model.Project = response.Data; if (model.PackageId.HasValue) { var packageResponse = await _dataClient.GetPackage(model.PackageId.Value); if (packageResponse.Data != null) { model.Package = packageResponse.Data; } } } if (!ModelState.IsValid) { } model.UserId = _tokenContainer.UserId.Value; var request = Request; var urlBase = string.Format("{0}://{1}", request.Url.Scheme, request.Url.Authority); var vivaOrderResponse = await _dataClient.VivaCreateOrder(new OrderOptions { Amount = Convert.ToInt64(model.Amount * 100) // ReturnUrl= urlBase + "/BackResults" }); if (vivaOrderResponse.StatusIsSuccessful) { model.VivaOrderId = vivaOrderResponse.Data.OrderCode; var responseCreate = await _dataClient.BackProject(model); return(new RedirectResult(vivaOrderResponse.Data.RedirectUrl, true)); } //if (responseCreate.StatusIsSuccessful) //{ // TempData["Success"] = "Backed Project Successfully!"; //} //else // TempData["Error"] = "Did not back project"; return(RedirectToAction("Back", "Projects", new { projectId = model.ProjectId })); }
public async Task <HttpResponseMessage> Back(ProjectBackBindingModel model) { if (!ModelState.IsValid) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState)); } var transaction = new Transaction() { Amount = model.Amount, CreationDate = DateTime.UtcNow, PackageId = model.PackageId, ProjectId = model.ProjectId, UserId = model.UserId, GlobalId = Guid.NewGuid().ToString(), VivaOrderId = model.VivaOrderId }; _repository.CreateTransaction(transaction); return(Request.CreateResponse(HttpStatusCode.OK)); }