コード例 #1
0
        public async Task <ActionResult> Process()
        {
            EnrollDto enrollDto = _helper.GetEnrollDto();

            if (enrollDto == null)
            {
                return(Redirect("/Mob/Enroll"));
            }

            if (WxPayApi.IsPaid("", enrollDto.Enroll.OrderNo))
            {
                PayModelDto model = WxPayApi.GetPayModel(enrollDto.Enroll.OrderNo);
                await _helper.SetPayStatus(EnrollStatus.PaySuccess, model);
            }

            WxPayData data = null;

            if (enrollDto.Enroll.Status != EnrollStatus.PaySuccess)
            {
                data = await WxPayApi.GetJSSDKConfig();
            }

            ViewBag.WxConfig = data == null ? "" : SerializationHelper.ToJson(data.GetValues());

            enrollDto.Enroll.IdCard = enrollDto.Enroll.IdCard.ToSpecialString(6, 8);
            return(View(enrollDto));
        }
コード例 #2
0
        public async Task <IActionResult> AddEnrollment([FromBody] EnrollDto enrollDto)
        {
            var user = await _context.Users.FirstOrDefaultAsync(e => e.Email == User.Identity.Name);

            enrollDto.UserId = user.UserId;

            var duplicate = await _context.Enrollment
                            .FirstOrDefaultAsync(e => e.InstanceId == enrollDto.InstanceId && e.UserId == enrollDto.UserId);

            var numStudents = _context.Enrollment
                              .Count(e => e.InstanceId.Equals(enrollDto.InstanceId));
            var instance = await _context.Instance
                           .Include(e => e.Course)
                           .Include(e => e.Course.CourseCategory)
                           .FirstOrDefaultAsync(e => e.InstanceId.Equals(enrollDto.InstanceId));

            if (instance.Course.CourseCategory.Name == "EMT" && !enrollDto.Paid)
            {
                return(StatusCode(423, "Payment is required for EMT"));
            }

            if (numStudents >= instance.Seats)
            {
                return(StatusCode(422, "Classes are full cannot enroll"));
            }

            if (duplicate != null)
            {
                return(StatusCode(424, "You are already enrolled in this class"));
            }

            if (duplicate == null)
            {
                var enrollment = _context.Enrollment;
                enrollment.Add(new Enrollment()
                {
                    InstanceId = enrollDto.InstanceId,
                    UserId     = enrollDto.UserId,
                    BookBought = enrollDto.BookBought,
                    Status     = 'E',
                    Paid       = enrollDto.Paid,
                });

                await _context.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }
コード例 #3
0
        public async Task <IActionResult> DemoViewAsPDF(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //var enroll = await _context.Enroll
            //    .SingleOrDefaultAsync(m => m.Id == id);

            EnrollDto enroll = new EnrollDto();

            enroll = await(from a in _context.Enroll.Where(x => x.Id == id)
                           join b in _context.Department on
                           a.DeptId equals b.Id
                           join c in _context.Course on
                           a.CourseId equals c.Id
                           join d in _context.Student on
                           a.StudentId equals d.Id
                           select new EnrollDto
            {
                DeptCode   = b.DeptCode,
                CourseCode = c.CourseCode,
                FullName   = d.FullName,
                Id         = a.Id,
                StatusText = (a.Status == 1) ? "Active" : "Inactive"
            }).SingleOrDefaultAsync();


            if (enroll == null)
            {
                return(NotFound());
            }

            return(new ViewAsPdf("Details", enroll)
            {
                PageSize = Rotativa.AspNetCore.Options.Size.Tabloid,
                CustomSwitches = "--print-media-type --header-center \"Student Report\""
            });
        }
コード例 #4
0
        // GET: Enrolls/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //var enroll = await _context.Enroll
            //    .SingleOrDefaultAsync(m => m.Id == id);

            EnrollDto enroll = new EnrollDto();

            enroll = await(from a in _context.Enroll.Where(x => x.Id == id)
                           join b in _context.Department on
                           a.DeptId equals b.Id
                           join c in _context.Course on
                           a.CourseId equals c.Id
                           join d in _context.Student on
                           a.StudentId equals d.Id
                           select new EnrollDto
            {
                DeptCode   = b.DeptCode,
                CourseCode = c.CourseCode,
                FullName   = d.FullName,
                Id         = a.Id,
                StatusText = (a.Status == 1) ? "Active" : "Inactive"
            }).SingleOrDefaultAsync();


            if (enroll == null)
            {
                return(NotFound());
            }

            return(View(enroll));
        }
コード例 #5
0
        public async Task <ActionResult> Save(EnrollDto model)
        {
            bool result = await _helper.SaveAsync(model.Enroll);

            return(Success(result));
        }