public ActionResult ParticipantDetail(Guid id) { int pageSize = 0; pageSize = pageSize > 0 ? pageSize : 10; var repository = new SessionRepository(); repository.SetOccuredStatus(); var cu = Session["user"] as ContextUser; var session = repository.Get().First(x => x.RowGUID == id); var participants = session.session_participant.Select(x => x.participant_profile).ToList(); //Sorting order string eveCat = session.StudentEvaluationCatagory; var forms = new EvaluationFormRepository().Get().Where(x => x.Catagory == eveCat).ToList(); var lkEvaluationForm = forms.FirstOrDefault(x => x.SubCatagory == "pre"); if (lkEvaluationForm != null) { ViewBag.preform = lkEvaluationForm.FormPath; } var evaluationForm = forms.FirstOrDefault(x => x.SubCatagory == "post"); if (evaluationForm != null) { ViewBag.postform = evaluationForm.FormPath; } ViewBag.sessionid = session.Id; ViewBag.sessionname = session.ProgramName; ViewBag.schoolname = session.school.SchoolName; return(View(participants)); }
public ActionResult Edit(Guid?id, int page = 1) { SelectListItem defaultselect = new SelectListItem { Text = General.Select, Value = "0" }; var school = new SchoolRepository().Get().Select(x => new SelectListItem { Text = x.SchoolName, Value = x.Id + "" }).ToList(); school.Insert(0, defaultselect); ViewBag.school = school; var volunteer = new VolunteerRepository().GetApprovedVolunteer().Select(x => new SelectListItem { Text = x.VolunteerName, Value = x.Id + "" }).ToList(); volunteer.Insert(0, defaultselect); ViewBag.volunteer = volunteer; var certificatesVolunteer = new CertificateRepository().Get().Where(x => x.TypeCertificate == "Volunteer").Select(x => new SelectListItem { Text = x.Name, Value = x.Id + "" }).ToList(); certificatesVolunteer.Insert(0, defaultselect); ViewBag.certificatesVolunteer = certificatesVolunteer; var certificatesStudent = new CertificateRepository().Get().Where(x => x.TypeCertificate == "Student").Select(x => new SelectListItem { Text = x.Name, Value = x.Id + "" }).ToList(); certificatesStudent.Insert(0, defaultselect); ViewBag.certificatesStudent = certificatesStudent; var evaluationCatagory = new EvaluationFormRepository().Get().GroupBy(x => x.Catagory).Select(x => x.First()).Select(x => new SelectListItem { Text = x.Catagory, Value = x.Catagory + "" }).ToList(); evaluationCatagory.Insert(0, defaultselect); ViewBag.evaluationCatagory = evaluationCatagory; var cu = Session["user"] as ContextUser; session sessionModel; if (id == null) { sessionModel = new session(); sessionModel.IsActive = true; sessionModel.PropesedDateString = DateTime.Now.AddMonths(1).ToString("dd/MM/yyyy"); } else { var sessionRepo = new SessionRepository(); sessionModel = sessionRepo.GetByRowId(id.Value); sessionModel.PropesedDateString = sessionModel.ProposedDateTime.ToString("dd/MM/yyyy"); sessionModel.EnumSessionStatus = (SessionStatus)Enum.Parse(typeof(SessionStatus), sessionModel.Status); if (sessionModel.ActualDateTime != null) { sessionModel.ActualDateString = sessionModel.ActualDateTime.Value.ToString("dd/MM/yyyy"); if ((sessionModel.ActualDateTime.Value.Date - DateTime.Now.Date).Hours >= 72 && sessionModel.EnumSessionStatus == SessionStatus.Approved && cu.EnumRole == EnumUserRole.Coordinator) { sessionModel.ChangeDateVisible = true; } } if (cu.EnumRole == EnumUserRole.Participant) { string eve_cat = sessionModel.StudentEvaluationCatagory; if (!string.IsNullOrEmpty(eve_cat)) { int participantId = new ParticipiantRepository().GetByUserId(cu.OUser.Id).Id; var sParticipant = sessionModel.session_participant.Where(x => x.ParticipantID == participantId).First(); sessionModel.EvaluationFormFilled = (sParticipant.IsPreEvaluated ?? false) && (sParticipant.IsPostEvaluated ?? false); sessionModel.IsPreFilledByStudent = (sParticipant.IsPreEvaluated ?? false); sessionModel.IsPostFilledByStudent = (sParticipant.IsPostEvaluated ?? false); sessionModel.IsAttendenseMarked = sParticipant.VolunteerMarkedAttendence; } } if (cu.EnumRole == EnumUserRole.Coordinator) { sessionModel.IsFilledCoordinator = new EvaluationVolunteerRepository().GetEvaluationForm(sessionModel.Id) != null; } if (cu.EnumRole == EnumUserRole.Volunteer) { sessionModel.IsFilledVolunteer = new EvaluationCoordinatorRepository().GetEvaluationForm(sessionModel.Id) != null; } var session_evaluationform_photo = sessionModel.session_evaluationform_photo.Select(x => x.FilePath).ToArray(); sessionModel.EvaluationImageLink = string.Join(",", session_evaluationform_photo) + ","; var session_photo = sessionModel.session_photo.Select(x => x.FilePath).ToArray(); sessionModel.SessionImageLink = string.Join(",", session_photo) + ","; sessionModel.PagedParticipants = sessionModel.session_participant.Select(x => x.participant_profile).OrderByDescending(x => x.CreatedAt).ToPagedList(page, 5); ViewBag.Count = sessionModel.session_participant.Count(); ViewBag.IsSessionEnabledForVolunteer = true; } return(View(sessionModel)); }
public ActionResult Edit(session session) { var sessionRepo = new SessionRepository(); session oSession = null; var cu = Session["user"] as ContextUser; DateTime?oldActualDate = null; if (session.Id == 0) { oSession = new session(); oSession.RowGUID = Guid.NewGuid(); oSession.CreatedAt = DateTime.Now; oSession.CreatedBy = cu.OUser.Id; oSession.Status = SessionStatus.Pending.ToString(); } else { oSession = sessionRepo.Get(session.Id); oSession.UpdatedAt = DateTime.Now; oldActualDate = oSession.ActualDateTime; // oSession.UpdatedBy = int.Parse(sid); } var currentStatus = (SessionStatus)Enum.Parse(typeof(SessionStatus), oSession.Status); if (cu.EnumRole == EnumUserRole.SuperAdmin && currentStatus == SessionStatus.Pending) { oSession.ProgramPurpose = "ProgramPurposeNotUsed"; oSession.TargetGroup = session.TargetGroup; if (oSession.SchoolID == null && session.SchoolID != null && session.SchoolID.Value != 0) { var cor = new CoordinatorRepository().GetBySchool(session.SchoolID.Value); var user = new AccountRepository().Get(oSession.CreatedBy); var bogusController = Util.CreateController <EmailTemplateController>(); EmailTemplateModel emodel = new EmailTemplateModel { Title = "Notification: Session Created For School", User = user.FirstName, CoordinatorName = cor.CoordinatorName, SessionTitle = oSession.ProgramName, UserName = user.Username, Email = cor.CoordinatorEmail }; string body = Util.RenderViewToString(bogusController.ControllerContext, "SessionCreatedSchool", emodel); EmailSender.SendSupportEmail(body, cor.CoordinatorEmail); } oSession.SchoolID = session.SchoolID == 0 ? null : session.SchoolID; oSession.ProgramName = session.ProgramName; oSession.ProposedDateTime = DateTime.ParseExact(session.PropesedDateString, "dd/MM/yyyy", CultureInfo.InvariantCulture); oSession.ProposedEndDateTime = session.ProposedEndDateTime; oSession.VolunteerId = session.VolunteerId == 0 ? null : session.VolunteerId; oSession.StudentCertificate = session.StudentCertificate == 0 ? null : session.StudentCertificate; oSession.VolunteerCertificate = session.VolunteerCertificate == 0 ? null : session.VolunteerCertificate; oSession.StudentEvaluationCatagory = session.StudentEvaluationCatagory; } if (session.ActualDateString != null) { oSession.ActualDateTime = DateTime.ParseExact(session.ActualDateString, "dd/MM/yyyy", CultureInfo.InvariantCulture); } if (currentStatus == SessionStatus.DateChanges) { if (session.SendKitByMailCourier && !oSession.SendKitByMailCourier) { var cor = oSession.school.coordinator_profile.First(); var user = new AccountRepository().Get(oSession.CreatedBy); var bogusController = Util.CreateController <EmailTemplateController>(); EmailTemplateModel emodel = new EmailTemplateModel { Title = "Injaz: Administrator send kit by mail courier.", User = user.FirstName, CoordinatorName = cor.CoordinatorName, SessionTitle = oSession.ProgramName, }; string body = Util.RenderViewToString(bogusController.ControllerContext, "SendKitBymailCourier", emodel); EmailSender.SendSupportEmail(body, cor.CoordinatorEmail); } oSession.SendKitByMailCourier = session.SendKitByMailCourier; } if (cu.EnumRole == EnumUserRole.Coordinator && (currentStatus == SessionStatus.Approved || currentStatus == SessionStatus.Rejected)) { if (session.ConfirmKitReceivedBySchool && !oSession.ConfirmKitReceivedBySchool) { var cor = oSession.school.coordinator_profile.First(); var user = new AccountRepository().Get(oSession.CreatedBy); var bogusController = Util.CreateController <EmailTemplateController>(); EmailTemplateModel emodel = new EmailTemplateModel { Title = "Injaz: Confirm Kit Received By School.", CoordinatorName = cor.CoordinatorName, SessionTitle = oSession.ProgramName, User = cor.user.FirstName }; string body = Util.RenderViewToString(bogusController.ControllerContext, "ConfirmKitReceivedBySchool", emodel); EmailSender.SendSupportEmail(body, user.Email); } oSession.ConfirmKitReceivedBySchool = session.ConfirmKitReceivedBySchool; } if (currentStatus == SessionStatus.Pending && oSession.ActualDateTime != null) { if (oSession.ProposedDateTime.Date == oSession.ActualDateTime.Value.Date) { if (oSession.Status != SessionStatus.Approved.ToString()) { SendEmailNotificationsApprovedByAdmin(oSession); } oSession.Status = SessionStatus.Approved.ToString(); oSession.ApprovedByAdmin = true; } else { if (oSession.Status != SessionStatus.DateChanges.ToString()) { SendEmailNotificationDateChanged(oSession); } oSession.Status = SessionStatus.DateChanges.ToString(); } } if (currentStatus == SessionStatus.Approved && oldActualDate != null && oSession.ActualDateTime != oldActualDate) { if (oSession.Status != SessionStatus.Approved.ToString()) { SendEmailNotificationDateChanged(oSession); } oSession.Status = SessionStatus.DateChanges.ToString(); oSession.ApprovedByAdmin = false; } if (session.SubmitButton != null) { if (session.SubmitButton == "approved") { if (oSession.Status != SessionStatus.Approved.ToString()) { SendEmailNotificationsApprovedByAdmin(oSession); } oSession.Status = SessionStatus.Approved.ToString(); oSession.ApprovedByAdmin = true; } if (session.SubmitButton == "submitpre") { int participantId = new ParticipiantRepository().GetByUserId(cu.OUser.Id).Id; string eve_cat = oSession.StudentEvaluationCatagory; string form = new EvaluationFormRepository().Get().First(x => x.Catagory == eve_cat && x.SubCatagory == "pre").FormPath; return(RedirectToAction(form, "EvaluationForm", new { participantid = participantId, sessionid = oSession.Id })); } if (session.SubmitButton == "submitpost") { int participantId = new ParticipiantRepository().GetByUserId(cu.OUser.Id).Id; string eve_cat = oSession.StudentEvaluationCatagory; string form = new EvaluationFormRepository().Get().First(x => x.Catagory == eve_cat && x.SubCatagory == "post").FormPath; return(RedirectToAction(form, "EvaluationForm", new { participantid = participantId, sessionid = oSession.Id })); } if (session.SubmitButton == "request") { //oSession.MarkedCompletedByVolunteer = true; var volunteer = new VolunteerRepository().GetByGoogleId(cu.GoogleId) ?? new VolunteerRepository().GetByLinkedInId(cu.GoogleId); oSession.VolunteerId = volunteer.Id; var user = new AccountRepository().Get(oSession.CreatedBy); var bogusController = Util.CreateController <EmailTemplateController>(); EmailTemplateModel emodel = new EmailTemplateModel { Title = "Injaz:Volunteer Assign Session", VolunteerName = volunteer.VolunteerName, SessionTitle = oSession.ProgramName, User = user.FirstName }; string body = Util.RenderViewToString(bogusController.ControllerContext, "VolunteerAssignSession", emodel); EmailSender.SendSupportEmail(body, user.Email); } if (session.SubmitButton == "confirm") { return(RedirectToAction("StudentAttendense", new { sessionId = oSession.RowGUID })); } if (session.SubmitButton == "reject") { oSession.Status = SessionStatus.Rejected.ToString(); } if (session.SubmitButton == "feedback") { var participant = new ParticipiantRepository().GetByUserId(cu.OUser.Id); return(RedirectToAction("FeedBack", new { sessionId = oSession.Id, participantId = participant.Id })); } if (session.SubmitButton == "coordinatorform") { int corId = new CoordinatorRepository().GetByUserId(oSession.school.CoordinatorUserId).Id; return(RedirectToAction("CoordinatorForm", "EvaluationForm", new { sessionId = oSession.Id, volId = oSession.volunteer_profile.Id, corId = corId })); } if (session.SubmitButton == "viewcertificate" || session.SubmitButton == "volunteerviewcertificate") { var participant = new ParticipiantRepository().GetByUserId(cu.OUser.Id); string certificatePath = null; List <PdfCoordinatesModel> pdfCoordinates = null; if (cu.EnumRole == EnumUserRole.Participant) { certificatePath = Server.MapPath(oSession.certificate.UploadFilePath); pdfCoordinates = new CertificateDictionary().GetPdfCoordinatesFromDictionary(oSession.certificate.Type); } else { certificatePath = Server.MapPath(oSession.certificate1.UploadFilePath); pdfCoordinates = new CertificateDictionary().GetPdfCoordinatesFromDictionary(oSession.certificate1.Type); oSession.IsVolunteerCertificateGenerated = true; } foreach (var pc in pdfCoordinates) { switch (pc.CertifiacteData) { case CertificateEnum.NameOfStudent: pc.Text = participant.Name + " " + participant.FatherName + " " + participant.Family; break; case CertificateEnum.NameOfCoordinator: pc.Text = oSession.school.coordinator_profile.First().CoordinatorName; break; case CertificateEnum.ProgrammYear: pc.Text = DateTime.Now.Year + ""; break; case CertificateEnum.TranningDate: pc.Text = Util.DateConversion(oSession.ActualDateTime.Value.ToShortDateString(), "Hijri", "en-us"); break; case CertificateEnum.TranningHour: pc.Text = ConfigurationManager.AppSettings["TranningHours"]; break; case CertificateEnum.NameOfVolunteer: pc.Text = oSession.volunteer_profile.VolunteerName; break; } } string fontFilePath = Server.MapPath("~/fonts/Arabic Fonts/trado.ttf"); var outputFile = PdfGenerator.GenerateOnflyPdf(certificatePath, pdfCoordinates, fontFilePath); if (session.SubmitButton == "viewcertificate") { EmailSender.SendSupportEmail("Student Template", participant.Email, outputFile); oSession.session_participant.Where(x => x.ParticipantID == participant.Id).First().IsCertificateGenerated = true; } else { EmailSender.SendSupportEmail("Volunteer Template", oSession.volunteer_profile.VolunteerEmail, outputFile); } } } oSession.IsActive = session.IsActive; if (session.Id == 0) { sessionRepo.Post(oSession); } else { sessionRepo.Put(oSession.Id, oSession); } return(RedirectToAction("Index")); }