public ActionResult Create([Bind(Include = "RecipientId,CompanyName,Address,Account,CustomerServiceUrl")] RecipientVM recipient) { if (ModelState.IsValid) { IRecipient item = _recipientFactory.NewRecipient(recipient.RecipientId, recipient.CompanyName, recipient.Address, recipient.Account, recipient.CustomerServiceUrl, recipient.Active); _recipientService.CreateRecepient(item); log.Info("Utworzono odbiorcę " + recipient.CompanyName + " " + recipient.Address); TempData["ResultMessage"] = "Utworzono odbiorcę"; return(RedirectToAction("Index")); } return(View(recipient)); }
public ActionResult Edit([Bind(Include = "RecipientId,CompanyName,Address,Account,CustomerServiceUrl,Active")] RecipientVM recipient) { if (ModelState.IsValid) { _recipientService.UpdateRecepient( _recipientFactory.NewRecipient(recipient.RecipientId, recipient.CompanyName, recipient.Address, recipient.Account, recipient.CustomerServiceUrl, recipient.Active) ); log.Info("Edytowano odbiorcę " + recipient.CompanyName + " " + recipient.Address); TempData["ResultMessage"] = "Zmiany zapisane"; return(RedirectToAction("Index")); } return(View(recipient)); }
// GET: Recipients/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } IRecipient recipient = _recipientService.GetRecepient(CommonFunctions.NullableIntToInt(id)); RecipientVM vm = new RecipientVM(recipient); if (recipient == null) { return(HttpNotFound()); } return(View(vm)); }
public async Task <IActionResult> Index([Bind("ID,Nuban,Description,AccountNumber,Amount,BankCode,Currency")] NewTransfer newTransfer) { if (ModelState.IsValid) { //validate account details client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer {Environment.GetEnvironmentVariable("secretKey")}"); string request = string.Format($"https://api.paystack.co/bank/resolve?account_number={newTransfer.AccountNumber}&bank_code={newTransfer.BankCode}"); try { //get response HttpResponseMessage resDataStream = await client.GetAsync(request); //check if account details are valid if (resDataStream.IsSuccessStatusCode) { string resData = await resDataStream.Content.ReadAsStringAsync(); AccountValidation res = JsonConvert.DeserializeObject <AccountValidation>(resData); AccountName = res.data.account_name; } else { TempData["AccountError"] = "Wrong Account Details... Please Reconfirm Account Details"; return(RedirectToAction("Index")); } } catch (Exception ex) { Console.WriteLine($"Error Occurred: {ex.Message}"); } //create recipient after validating account details try { string content = $"{{\"type\":\"nuban\",\"name\":\"{AccountName}\",\"description\":\"{newTransfer.Description}\",\"account_number\":\"{Convert.ToString(newTransfer.AccountNumber)}\",\"bank_code\":\"{newTransfer.BankCode}\",\"currency\":\"{newTransfer.Currency}\"}}"; HttpResponseMessage recipientRes = await client.PostAsync("https://api.paystack.co/transferrecipient", new StringContent(content)); //check if request is successful if (recipientRes.IsSuccessStatusCode) { try { string recipientData = await recipientRes.Content.ReadAsStringAsync(); RecipientVM res = JsonConvert.DeserializeObject <RecipientVM>(recipientData); RecipientCode = res.data.recipient_code; //client.Dispose(); //Transfer to Recipient Amount = Convert.ToInt32(newTransfer.Amount); //client.DefaultRequestHeaders.Accept.Clear(); //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer {Environment.GetEnvironmentVariable("secretKey")}"); string transferContent = $"{{\"source\":\"balance\",\"reason\":\"{newTransfer.Description}\",\"amount\":{Amount * 100},\"recipient\":\"{RecipientCode}\"}}"; HttpResponseMessage transferRes = await client.PostAsync("https://api.paystack.co/transfer", new StringContent(transferContent)); if (transferRes.IsSuccessStatusCode) { string transCodeData = await transferRes.Content.ReadAsStringAsync(); NewTransferVM transCode = JsonConvert.DeserializeObject <NewTransferVM>(transCodeData); TransferCode = transCode.data.transfer_code; //provide placeholder values to View TempData["otpRequired"] = "yes"; TempData["NameAcc"] = AccountName; TempData["Amount"] = newTransfer.Amount; TempData["Bank"] = res.data.details.bank_name; TempData["NumberAcc"] = newTransfer.AccountNumber; TempData["TransCode"] = TransferCode; client.Dispose(); return(View(newTransfer)); } } catch (Exception ex) { Console.WriteLine($"Error Occurred: {ex.Message}"); } } else { TempData["AccountError"] = "Error Occurred While Creating Recipient"; client.Dispose(); return(RedirectToAction("Index")); } } catch (Exception ex) { Console.WriteLine($"Error Occurred: {ex.Message}"); } } return(RedirectToAction("Index")); }