Beispiel #1
0
 public async Task Execute(PaymentInfoDto paymentInfoDto)
 {
     if (paymentInfoDto.Earned < 0)
     {
         var positiveEarnedForManagement = -paymentInfoDto.Earned;
         await topManagementEarnedEntryWriteDbOperations
         .AddEarnedWithNegativeEmployeesCountIncrementOrCreateNew(paymentInfoDto.PaymentDateTime,
                                                                  positiveEarnedForManagement);
     }
 }
        private List <PaymentInfoDto> GetPaymentInfoIdList(List <PaymentInfoDto> list, PaymentInfoDto dto)
        {
            bool varMi = list.Count == 0 ? true : false;

            foreach (var item in list)
            {
                if (item.PaymentInfoID != dto.PaymentInfoID)
                {
                    varMi = true;
                }
            }
            if (varMi)
            {
                list.Add(dto);
            }
            return(list);
        }
 private void SetPaymentInfoforAdding(List <SaleDetails> details, List <ProductVM> products)
 {
     for (int i = 0; i < details.Count; i++)
     {
         if (details[i].IsPhone)
         {
             var imeiList = products[i].ImeiList;
             foreach (var item in imeiList)
             {
                 List <PaymentInfoDto> list = new List <PaymentInfoDto>();
                 PaymentInfoDto        dto  = new PaymentInfoDto();
                 var imei = rpimei.Find(item);
                 imei.IsSold = true;
                 var paymentInfo = rppaymentinfo.Find(imei.PaymentInfoID);
                 paymentInfo.Count--;
                 dto.PaymentInfoID = imei.PaymentInfoID;
                 dto.Quantity      = 1;
                 dto.IMEI          = imei.IMEINumber;
                 list.Add(dto);
                 AddSaleDetailInfo(details[i], list);
             }
         }
         else
         {
             List <PaymentInfoDto> list = new List <PaymentInfoDto>();
             int infoCount = 0;
             int fark      = 0;
             int quantity  = details[i].Quantity;
             while (fark >= infoCount)
             {
                 PaymentInfoDto dto         = new PaymentInfoDto();
                 var            paymentInfo = rppaymentinfo
                                              .FirstOrDefault(x => x.ProductID == details[i].ProductID && x.Count != 0);
                 //if (selectedItem.PaymentInfoIDs.Contains(paymentInfo.ID))
                 //{
                 //    paymentInfo.Count = paymentInfo.Count + selectedItem.SaleCount;
                 //}
                 infoCount = paymentInfo.Count;
                 if (infoCount >= quantity)
                 {
                     paymentInfo.Count -= quantity;
                     rppaymentinfo.SaveChanges();
                     dto.PaymentInfoID = paymentInfo.ID;
                     dto.Quantity      = quantity;
                     list = GetPaymentInfoIdList(list, dto);
                 }
                 else
                 {
                     fark = quantity - infoCount;
                     int islemSayisi = quantity - fark;
                     quantity          -= islemSayisi;
                     paymentInfo.Count -= islemSayisi;
                     infoCount          = paymentInfo.Count;
                     rppaymentinfo.SaveChanges();
                     dto.PaymentInfoID = paymentInfo.ID;
                     dto.Quantity      = islemSayisi;
                     list = GetPaymentInfoIdList(list, dto);
                 }
             }
             AddSaleDetailInfo(details[i], list);
         }
     }
 }
Beispiel #4
0
        public ActionResult Active(string keyCode, int packageId)
        {
            //TODO: Issue Respone all error 403
            Response.Status     = "200 OK";
            Response.StatusCode = 200;
            //TODO: Issue Respone all error 403

            var productKey         = ConfigurationManager.AppSettings["ProductKey"];
            var secretKey          = ConfigurationManager.AppSettings["SecretKey"];
            var url                = ConfigurationManager.AppSettings["Url"];
            var isRecurrence       = ConfigurationManager.AppSettings["IsRecurrence"];
            var recurrenceInterval = ConfigurationManager.AppSettings["RecurrenceInterval"];
            var passPhrase         = ConfigurationManager.AppSettings["PassPhrase"];
            var paymentUrl         = ConfigurationManager.AppSettings["PaymentUrl"];

            if (string.IsNullOrEmpty(productKey) || string.IsNullOrEmpty(secretKey) || string.IsNullOrEmpty(url) ||
                string.IsNullOrEmpty(isRecurrence) || string.IsNullOrEmpty(recurrenceInterval) || string.IsNullOrEmpty(passPhrase))
            {
                throw new Exception("Missing configuration ProductKey or SecretKey or Url or IsRecurrence or RecurrenceInterval or PassPhrase");
            }

            var franchiseeConfiguration = _franchiseeConfigurationService.GetFranchiseeConfiguration();
            var objFranchiseeAndLicense = new FranchisseNameAndLicenseDto
            {
                FranchiseeName = franchiseeConfiguration != null ? franchiseeConfiguration.Name : "",
                LicenseKey     = franchiseeConfiguration != null ? franchiseeConfiguration.LicenseKey : ""
            };
            //TODO: franchiseeTenantPackageInfo.Active == false update franchiseeTenantPackageInfo.Active == true when deploy
            var franchiseeTenantPackageInfo = _webApiUserService.GetPackageCurrentId(objFranchiseeAndLicense);

            if (franchiseeTenantPackageInfo == null || franchiseeTenantPackageInfo.Active == true)
            {
                return(Redirect("/"));
            }

            var registerPaymentDto = new PaymentInfoDto();

            registerPaymentDto.AccountNumber      = franchiseeTenantPackageInfo.AccountNumber;
            registerPaymentDto.RequestId          = _webApiUserService.GetRequestCurrentId(objFranchiseeAndLicense);
            registerPaymentDto.ProductKey         = productKey;
            registerPaymentDto.SecretKey          = secretKey;
            registerPaymentDto.ReturnUrl          = url + "LicenceExtension/PaySuccess";
            registerPaymentDto.CancelUrl          = url + "LicenceExtension?keyCode=" + keyCode;
            registerPaymentDto.IsRecurrence       = int.Parse(isRecurrence);
            registerPaymentDto.RecurrenceInterval = int.Parse(recurrenceInterval);
            //0: new; 1: change package; 2: change paymentInfo
            registerPaymentDto.TransactionType = 1;
            registerPaymentDto.StartDate       = DateTime.UtcNow;

            if (franchiseeTenantPackageInfo.Amount.GetValueOrDefault() > CaculatorHelper.GetPricePackage(packageId))
            {
                var packageInfo    = _webApiUserService.GetPackageCurrentNoToken(objFranchiseeAndLicense);
                var packageHistory = new PackageHistoryDto();
                packageHistory.StartDate = DateTime.UtcNow;
                if (packageId % 2 == 0)
                {
                    packageHistory.EndDate = DateTime.UtcNow.AddMonths(1);
                }
                else
                {
                    packageHistory.EndDate = DateTime.UtcNow.AddMonths(12);
                }

                packageHistory.OldPackageId       = franchiseeTenantPackageInfo.PackageId;
                packageHistory.PackageId          = packageId;
                packageHistory.FranchiseeTenantId = franchiseeTenantPackageInfo.Id;
                packageHistory.RequestId          = 0;
                packageHistory.IsApply            = true;
                packageHistory.Amount             = franchiseeTenantPackageInfo.Amount.GetValueOrDefault() -
                                                    CaculatorHelper.GetPricePackage(packageId);
                packageHistory.NextBillingDate        = packageHistory.EndDate;
                packageHistory.PackageNextBillingDate = packageId;

                var  isSuccessAddPackage       = _webApiUserService.AddPackageHistoryNoToken(packageHistory);
                bool isSuccessUpdateFranchisee = _webApiUserService.UpdateFranchiseeTenantLicenceExtentsion(objFranchiseeAndLicense);
                if (isSuccessUpdateFranchisee && isSuccessAddPackage)
                {
                    return(RedirectToAction("Success", "LicenceExtension"));
                }

                return(RedirectToAction("Error", "LicenceExtension"));
            }

            registerPaymentDto.TrialAmount = CaculatorHelper.GetPricePackage(packageId) -
                                             franchiseeTenantPackageInfo.Amount.GetValueOrDefault();

            registerPaymentDto.Items = new List <RegisterProduct>
            {
                new RegisterProduct {
                    ItemId = 1, ItemName = CaculatorHelper.GetNamePackage(packageId), ItemQuantity = 1, ItemPrice = CaculatorHelper.GetPricePackage(packageId)
                }
            };

            var textdate = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/ | " + DateTime.Now.Hour + "/" + DateTime.Now.Minute + "/" + DateTime.Now.Second;

            registerPaymentDto.AdditionInfo = JsonConvert.SerializeObject(new { PackageId = packageId, DateTimeSend = textdate });

            var user = _userService.FirstOrDefault(o => o.UserRoleId == 1);

            if (user != null)
            {
                registerPaymentDto.FirstName  = user.FirstName;
                registerPaymentDto.MiddleName = user.MiddleName;
                registerPaymentDto.LastName   = user.LastName;
            }

            if (franchiseeConfiguration != null)
            {
                registerPaymentDto.Email    = franchiseeConfiguration.PrimaryContactEmail;
                registerPaymentDto.Address1 = franchiseeConfiguration.Address1;
                registerPaymentDto.Address2 = franchiseeConfiguration.Address2;
                registerPaymentDto.Zip      = franchiseeConfiguration.Zip;
                registerPaymentDto.City     = franchiseeConfiguration.City;
                registerPaymentDto.State    = franchiseeConfiguration.State;
            }

            var data         = JsonConvert.SerializeObject(registerPaymentDto);
            var result       = EncryptHelper.Encrypt(data, passPhrase);
            var encodeUrl    = HttpUtility.UrlEncode(result);
            var encodeBase64 = EncryptHelper.Base64Encode(encodeUrl);

            var returnData = new { PaymentUrl = paymentUrl, Data = encodeBase64 };

            return(Json(returnData, JsonRequestBehavior.AllowGet));
        }