Beispiel #1
0
        public async Task <IActionResult> GetPayments([FromQuery] PaymentParams paymentsParams)
        {
            var paymentsFromRepo = await _repo.GetPayments(paymentsParams);

            var payments = _mapper.Map <IEnumerable <PaymentForReturnDto> >(paymentsFromRepo);

            Response.AddPagination(paymentsFromRepo.CurrentPage, paymentsFromRepo.PageSize,
                                   paymentsFromRepo.TotalCount, paymentsFromRepo.TotalPages);

            return(Ok(payments));
        }
Beispiel #2
0
        /// <summary>
        /// adds a new parameter to the parameter list
        /// </summary>
        /// <param name="uiParams"></param>
        public override void AppendItemsTo(Dictionary <string, string> uiParams)
        {
            if (uiParams == null)
            {
                return;
            }

            if (PaymentParams == null)
            {
                return;
            }

            foreach (var param in PaymentParams.Where(param => !uiParams.ContainsKey(param.Key)))
            {
                uiParams.Add(param.Key, param.Value);
            }
        }
Beispiel #3
0
        public override void AppendItemsTo(Dictionary <string, string> uiParams)
        {
            if (uiParams == null)
            {
                return;
            }

            foreach (var param in PaymentParams.Where(param => !uiParams.ContainsKey(param.Key)))
            {
                uiParams.Add(param.Key, param.Value);
            }

            if (String.IsNullOrEmpty(InstanceId) || PaymentParams.ContainsKey("instance_id"))
            {
                return;
            }

            uiParams.Add("instance_id", InstanceId);
        }
Beispiel #4
0
        public async Task <PagedList <Payment> > GetPayments(PaymentParams paymentParams)
        {
            var payments = _context.Payment;

            return(await PagedList <Payment> .CreateAsync(payments, paymentParams.PageNumber, paymentParams.PageSize));
        }
Beispiel #5
0
        public void OnGet()
        {
            var student = JsonConvert.DeserializeObject <Models.Student>(
                User.Claims.First(claim => claim.Type == "Information").Value);
            var kuasAp = new Services.KUASAPService();

            // DropDownList items
            DropDownList = new List <SelectListItem>();
            foreach (string[] payment in kuasAp.GetPayments(student: student))
            {
                DropDownList.Add(new SelectListItem()
                {
                    Text  = payment[0],
                    Value = $"{ payment[0] },{ payment[1] }"
                });
            }
            foreach (string[] payment in kuasAp.GetParlingPermitsPayments(student: student))
            {
                DropDownList.Add(new SelectListItem()
                {
                    Text  = payment[0],
                    Value = $"{ payment[0] },{ payment[1] }"
                });
            }

            if (DropDownList.Count <= 0)
            {
                ModelState.AddModelError("Warning", "目前無任何可檢視的繳費單");
            }
            else
            {
                if (string.IsNullOrEmpty(PaymentParams))
                {
                    DropDownList.Insert(0, new SelectListItem()
                    {
                        Text     = "--- 請選擇繳費單 ---",
                        Value    = "",
                        Disabled = true,
                        Selected = true
                    });
                }
                else
                {
                    // Download first item receipt bytes
                    List <string> urlParams = PaymentParams.Split(',').Skip(1).ToList();
                    MemoryStream  stream    = urlParams.Count != 3 ?
                                              kuasAp.DownloadPayment(student: student, urlParams: urlParams) :
                                              kuasAp.DownloadParlingPermitsPayment(student: student, urlParams: urlParams);
                    if (stream == null)
                    {
                        ModelState.AddModelError("Error", "檔案不存在(逾期)或下載失敗");
                    }
                    else
                    {
                        FileUrl = stream.ToArray().SaveToFile(
                            filename: $"{ student.Username }_{ DateTime.Now.ToString("HHmmss") }_{ PaymentParams.Split(',').First() }.pdf",
                            saveDir: @"files/",
                            trueDir: $@"{ hostingEnvironment.WebRootPath }\",
                            deleteKey: student.Username);
                        if (string.IsNullOrEmpty(FileUrl))
                        {
                            ModelState.AddModelError("Error", "檔案不存在(逾期)或下載失敗");
                        }
                        else
                        {
                            FileUrl = $"{ Request.Scheme }://{ Request.Host }/{ FileUrl }";
                        }
                    }
                }
            }
        }
Beispiel #6
0
 /// <summary>
 /// Закрытие фискального чека
 /// </summary>
 /// <param name="payments">Суммы оплат по чеку</param>
 public CloseCheckOperation(PaymentParams payments) : base("CloseCheck")
 {
     Payment = payments ?? throw new ArgumentNullException(nameof(payments));
 }