public ActionResult DownloadTestCertificate(decimal orderDetailId, bool second) { var orderDetail = OrderDetailsService.FirstOrDefault(x => x.OrderDetailID == orderDetailId && BerthTypes.AllPaidForTestCerts.Contains(x.StudentInGroup.BerthType_TC)); var userTestId = orderDetail.UserTestId.Value; UserTestService.LoadWith(x => x.Test, x => x.TestPassRule); var userTest = UserTestService.GetByPK(userTestId); TestCertificatePermission(orderDetail, userTest); var certificateFileSys = UserImages.GetTestCertFileSys(userTestId); try { System.IO.File.Delete(certificateFileSys); } catch (Exception e) { return(Content("Сертификат уже скачивается")); } var isEng = orderDetail.Params.Lang == TestCertLang.Eng; if (orderDetail.Params.Lang == TestCertLang.RusEng && second) { isEng = true; } using (var image = Image.FromFile(UserImages.GetTestCertFileSys(isEng ? 0 : 1))) { using (var result = ImageUtils.DrawTestString(image, isEng ? User.EngFullName : User.FullName, EntityUtils.GetTestCertName(isEng, userTest), userTest.RunDate.DefaultString(), userTest.Id)) result.Save(certificateFileSys); } return(File(certificateFileSys, "image/png", "certificate.png")); }
public ActionResult UserTestCert(int id, string name) { var userTest = UserTestService.GetByPK(id); var isEng = true; var certName = EntityUtils.GetTestCertName(isEng, userTest); var user = userTest.User; var userName = name ?? (isEng ? user.EngFullName ?? Linguistics.Translite(user.LastName + " " + user.FirstName, true) : user.FullName); return(View((string)"TestCert", (object)Tuple.New(userName, certName, userTest))); }
private UserTest GetUserTest(UserTestService userTestService, int userTestId) { var userTest = GetCurrentTests().FirstOrDefault(x => x.Id == userTestId); if (userTest == null) { userTest = userTestService.GetByPK(userTestId); // if (userTest.UserId != GetUserId(userTest.IsPrerequisite)) // throw new Exception("userTest.UserId != User.UserID"); GetCurrentTests().Add(userTest); // Logger.Exception(new Exception("Session without userTest"), User); } return(userTest); }