예제 #1
0
        public async Task <ActionResult> Create([Bind(Include = "Id,ProgramId,IdNo,Name,ContactNo,Email,StudentImageFile, Captcha, WhoIs")] StudentInfoVm vm)
        {
            var isCaptcha = Captcha.CaptchaMatch(vm.WhoIs, vm.Captcha);

            var captcha = Captcha.GetCaptcha();

            ViewBag.Base64String = captcha[0];
            ViewBag.Answer       = captcha[1];

            if (isCaptcha)
            {
                if (ModelState.IsValid)
                {
                    var isExist = db.StudentInfos.Any(c => !c.IsDelete && c.IdNo == vm.IdNo);
                    if (!isExist)
                    {
                        var s = new StudentInfo()
                        {
                            ProgramId = vm.ProgramId,
                            IdNo      = vm.IdNo,
                            Name      = vm.Name,
                            ContactNo = vm.ContactNo,
                            Email     = vm.Email
                        };

                        db.StudentInfos.Add(s);
                        var r = await db.SaveChangesAsync();

                        try
                        {
                            var pdfFile1 = vm.StudentImageFile;
                            //var pdfFile2 = vm.StudentPaymentFile;
                            if (pdfFile1 != null)
                            {
                                // Save Path
                                const string drive = "D";

                                var savePathWithoutDrive1 = ":\\NubAdmit\\StudentImage1\\";
                                //var savePathWithoutDrive2 = ":\\NubAdmit\\PaymentImage\\";
                                string fileSavePath1 = drive + savePathWithoutDrive1;
                                //string fileSavePath2 = drive + savePathWithoutDrive2;

                                if (!Directory.Exists(fileSavePath1))
                                {
                                    Directory.CreateDirectory(fileSavePath1);
                                }
                                //if (!Directory.Exists(fileSavePath2))
                                //{
                                //    Directory.CreateDirectory(fileSavePath2);
                                //}

                                var fileName = s.Id + ".jpg";
                                // var fileExtension = Path.GetExtension(pdfFile.FileName);

                                // Check File is Exist
                                if (!System.IO.File.Exists(fileSavePath1 + fileName))
                                {
                                    // Save file
                                    pdfFile1.SaveAs(fileSavePath1 + fileName);

                                    // Save Path in Database
                                    s.ImageFilePath = savePathWithoutDrive1 + fileName;
                                }

                                //if (!System.IO.File.Exists(fileSavePath2 + fileName))
                                //{
                                //    // Save file
                                //    pdfFile2.SaveAs(fileSavePath2 + fileName);

                                //    // Save Path in Database
                                //    s.PaymentFilePath = savePathWithoutDrive2 + fileName;
                                //}
                            }
                        }
                        catch (Exception e)
                        {
                            s.IsDelete = true;
                            await db.SaveChangesAsync();

                            ViewBag.Message      = "Error: " + e.Message;
                            ViewBag.MessageColor = "text-danger";
                            return(View());
                        }
                        r = await db.SaveChangesAsync();

                        if (r > 0)
                        {
                            ModelState.Clear();
                            ViewBag.ProgramId    = new SelectList(db.Programs, "Id", "ShortName");
                            ViewBag.Message      = "Successfully Submitted";
                            ViewBag.MessageColor = "text-success";
                            return(View());
                        }
                    }
                    else
                    {
                        ViewBag.ProgramId    = new SelectList(db.Programs, "Id", "ShortName", vm.ProgramId);
                        ViewBag.Message      = "This ID No. Already in Database";
                        ViewBag.MessageColor = "text-danger";
                        return(View());
                    }


                    ViewBag.ProgramId    = new SelectList(db.Programs, "Id", "ShortName", vm.ProgramId);
                    ViewBag.Message      = "Submit Fail";
                    ViewBag.MessageColor = "text-danger";
                    return(View(vm));
                }
            }


            ViewBag.Message      = "Submit Valid Value and Image";
            ViewBag.MessageColor = "text-warning";
            ViewBag.ProgramId    = new SelectList(db.Programs, "Id", "ShortName", vm.ProgramId);
            return(View(vm));
        }