/// <summary> /// The add package payment transaction. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="PayForPackageResponse"/>. /// </returns> public PayForPackageResponse AddPackagePaymentTransaction(PayForPackageRequest request) { try { var tuple = this.transactionsRepository.AddPackagePaymentTransaction(request.PackageId); var package = tuple.Item1; var result = package.ConvertToPayForPackageResponse(); if (package.User.Activated) { var profile = package.User.Profile; var body = string.Format( profile.GetEmailResourceString("PackageStatusChangedBody"), package.Name, package.Id, profile.GetTranslatedPackageStatus("Assembled"), profile.GetTranslatedPackageStatus("Paid"), profile.GetFullName()); this.emailService.SendMail( EmailResources.EmailActivationFrom, package.User.Email, profile.GetEmailResourceString("PackageStatusChangedSubject"), body); } result.Message = string.Format(CommonResources.TransactionPaymentSucceded, package.Id); result.MessageType = Messaging.MessageType.Success; result.WalletAmount = tuple.Item2; return result; } catch (Exception ex) { this.Logger.Log(ex.Message); return new PayForPackageResponse { MessageType = Messaging.MessageType.Error, Message = CommonResources.TransactionPaymentError }; } }
public ActionResult PayForPackage(int packageId) { var request = new PayForPackageRequest { PackageId = packageId }; var response = this.transactionService.AddPackagePaymentTransaction(request); var jsonNetResult = new JsonNetResult { Formatting = (Formatting)Newtonsoft.Json.Formatting.Indented, Data = response.ConvertToPackageViewModel() }; return jsonNetResult; }