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));
        }
Example #2
0
        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 }));
        }
Example #4
0
        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));
        }