예제 #1
0
        /// <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
                           };
            }
        }
예제 #2
0
        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;
        }