public ActionResult CoordinatorProfile(coordinator_profile coordinator, HttpPostedFileBase file)
        {
            var repository  = new CoordinatorRepository();
            var oCordinator = repository.Get(coordinator.Id);

            oCordinator.CoordinatorName        = coordinator.CoordinatorName;
            oCordinator.Gender                 = coordinator.Gender;
            oCordinator.DateOfBirth            = coordinator.DateOfBirth;
            oCordinator.CoordinatorMobile      = coordinator.CoordinatorMobile;
            oCordinator.Class                  = coordinator.Class;
            oCordinator.NationalID             = coordinator.NationalID;
            oCordinator.HasTOTCertificate      = coordinator.HasTOTCertificate;
            oCordinator.VolunteerActivity1     = coordinator.VolunteerActivity1;
            oCordinator.VolunteerActivity2     = coordinator.VolunteerActivity2;
            oCordinator.VolunteerActivity3     = coordinator.VolunteerActivity3;
            oCordinator.OtherCertificate1      = coordinator.OtherCertificate1;
            oCordinator.OtherCertificate2      = coordinator.OtherCertificate2;
            oCordinator.OtherCertificate3      = coordinator.OtherCertificate3;
            oCordinator.FatherName             = coordinator.FatherName;
            oCordinator.FaimlyName             = coordinator.FaimlyName;
            oCordinator.AcademicQualification  = coordinator.AcademicQualification;
            oCordinator.AcademicQualification2 = coordinator.AcademicQualification2;
            oCordinator.AcademicQualification3 = coordinator.AcademicQualification3;
            oCordinator.IsProfileComplete      = true;
            if (file != null)
            {
                string fileName = "~/Uploads/ImageLibrary/" + Guid.NewGuid() + Path.GetExtension(file.FileName);
                string filePath = Server.MapPath(fileName);
                file.SaveAs(filePath);
                oCordinator.PhotoPath = fileName;
            }
            repository.Put(coordinator.Id, oCordinator);
            return(RedirectToAction("Index", "Session"));
        }
예제 #2
0
        // GET: Funder
        public ActionResult Index(string sortOrder, string filter, string archived, int page = 1, Guid?archive = null)
        {
            ViewBag.searchQuery  = string.IsNullOrEmpty(filter) ? "" : filter.Trim();
            ViewBag.showArchived = (archived ?? "") == "on";

            page = page > 0 ? page : 1;
            int pageSize = 0;

            pageSize = pageSize > 0 ? pageSize : 10;

            ViewBag.CurrentSort = sortOrder;

            IEnumerable <session> session;
            var repository = new SessionRepository();

            repository.SetOccuredStatus();


            if (archive != null)
            {
                var oSession = repository.GetByRowId(archive.Value);
                oSession.IsActive = !oSession.IsActive;
                repository.Put(oSession.Id, oSession);
            }

            var cu = Session["user"] as ContextUser;

            int corSchoolId = 0;

            if (cu.EnumRole != EnumUserRole.Volunteer)
            {
                corSchoolId = new CoordinatorRepository().GetSchoolIdByUserId(cu.OUser.Id);
            }
            var participantId = 0;

            if (cu.EnumRole == EnumUserRole.Participant)
            {
                participantId = new ParticipiantRepository().GetByUserId(cu.OUser.Id).Id;
            }
            session = repository.Get().Where(x =>
            {
                return((filter == null || x.ProgramName.ToLower().Contains(filter.ToLower()) ||
                        (x.school != null && (x.school.SchoolName.ToLower().Contains(filter.ToLower()) ||
                                              x.school.City.ToLower().Contains(filter.ToLower())))
                        ) &&
                       ((cu.EnumRole == EnumUserRole.SuperAdmin ||
                         (cu.EnumRole == EnumUserRole.Participant && x.session_participant
                          .Select(y => y.ParticipantID)
                          .Contains(participantId)) ||
                         (cu.EnumRole == EnumUserRole.Volunteer &&
                          ((x.VolunteerId == null && x.Status == "Approved") ||
                           (x.VolunteerId.HasValue && x.VolunteerId.Value == cu.OUser.Id && (x.Status == "Approved" || x.Status == "Occured")))) ||
                         (cu.EnumRole == EnumUserRole.Coordinator && x.SchoolID == corSchoolId))));
            });
            //Sorting order
            session       = session.OrderByDescending(x => x.CreatedAt);
            ViewBag.Count = session.Count();

            return(View(session.ToPagedList(page, pageSize)));
        }
        public ActionResult VolCorEvaluation(evaluation_volunteer_coordinator ecpp)
        {
            var repo = new EvaluationVolunteerCoordinatorRepository();

            ecpp.RowGuid   = Guid.NewGuid();
            ecpp.CreatedAt = DateTime.Now;
            var cu = Session["user"] as ContextUser;

            if (cu.EnumRole == TmsWebApp.Common.EnumUserRole.Coordinator)
            {
                ecpp.IsCoordinator = false;
                var session = new SessionRepository().Get(ecpp.SessionId);
                var userId  = session.CreatedBy;
                var admin   = new AccountRepository().Get(userId);
                var corName = new CoordinatorRepository().Get(ecpp.CoordinatorId.Value).CoordinatorName;

                string             url             = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/Login/";
                var                bogusController = Util.CreateController <EmailTemplateController>();
                EmailTemplateModel model           = new EmailTemplateModel {
                    Title = "Evaluation Form Completion", VolunteerName = session.volunteer_profile.VolunteerName, CoordinatorName = corName, SessionTitle = session.ProgramName, User = admin.FirstName
                };
                string body = Util.RenderViewToString(bogusController.ControllerContext, "VolunteerFeedBack", model);

                EmailSender.SendSupportEmail(body, admin.Email);
            }
            else
            {
                ecpp.IsCoordinator = true;
            }
            repo.Post(ecpp);

            return(RedirectToAction("Index", "Session"));
        }
예제 #4
0
파일: UnitOfWork.cs 프로젝트: AdairHdz/SPP
 public UnitOfWork(ProfessionalPracticesContext context)
 {
     _context            = context;
     Accounts            = new Repository <Account>(_context);
     Assignments         = new Repository <Assignment>(_context);
     Coordinators        = new CoordinatorRepository(_context);
     LinkedOrganizations = new LinkedOrganizationRepository(_context);
     Practicioners       = new PracticionerRepository(_context);
     Projects            = new ProjectRepository(_context);
     PartialReports      = new Repository <PartialReport>(_context);
     MonthlyReports      = new MonthlyReportRepository(_context);
     RequestProjects     = new RequestProjectRepository(_context);
     ResponsibleProjects = new ResponsibleProjectRepository(_context);
     Teachers            = new TeacherRepository(_context);
     Users   = new UserRepository(_context);
     States  = new StateRepository(_context);
     Sectors = new Repository <Sector>(_context);
     Phones  = new PhoneRepository(_context);
     SchedulingActivities = new Repository <SchedulingActivity>(_context);
     Groups                = new GroupRepository(_context);
     Activities            = new ActivityRepository(_context);
     ActivityPracticioners = new Repository <ActivityPracticioner>(_context);
     Documents             = new Repository <Document>(_context);
     ActivityMades         = new Repository <ActivityMade>(_context);
     AdvanceQuestions      = new Repository <AdvanceQuestion>(_context);
 }
        // GET: EvaluationResult
        public ActionResult Index(string sortOrder, string filter, string archived, int page = 1, Guid?archive = null)
        {
            ViewBag.searchQuery  = string.IsNullOrEmpty(filter) ? "" : filter;
            ViewBag.showArchived = (archived ?? "") == "on";

            page = page > 0 ? page : 1;
            int pageSize = 0;

            pageSize = pageSize > 0 ? pageSize : 10;

            ViewBag.CurrentSort = sortOrder;

            var cu = Session["user"] as ContextUser;
            IEnumerable <school> Profile;
            var repository = new CoordinatorRepository();

            if (archive != null)
            {
                var oCoordinator = repository.GetByRowId(archive.Value);
                oCoordinator.IsActive = !oCoordinator.IsActive;
                repository.Put(oCoordinator.Id, oCoordinator);
            }

            Profile = repository.GetAllSchools();

            //Sorting order
            Profile       = Profile.OrderByDescending(x => x.CreatedAt);
            ViewBag.Count = Profile.Count();

            return(View(Profile.ToPagedList(page, pageSize)));
        }
        public ActionResult CoordinatorProfile(Guid?id)
        {
            ViewBag.gender = new List <SelectListItem>
            {
                new SelectListItem {
                    Selected = true, Text = General.Male, Value = "Male"
                },
                new SelectListItem {
                    Selected = false, Text = General.Female, Value = "Female"
                }
            };
            var cu         = Session["user"] as ContextUser;
            var repository = new CoordinatorRepository();
            coordinator_profile oCordinator = null;

            if (id != null)
            {
                oCordinator = repository.GetByRowId(id.Value);
            }
            else
            {
                oCordinator = repository.GetByUserId(cu.OUser.Id);
            }

            return(View(oCordinator));
        }
예제 #7
0
        public void TestInitialize()
        {
            _data = new List <Coordinator>
            {
                new Coordinator
                {
                    StaffNumber      = "XGC16215",
                    RegistrationDate = DateTime.Now,
                    DischargeDate    = null,
                    User             = new User
                    {
                        IdUser         = 1,
                        Name           = "Eduardo Aldair",
                        LastName       = "Hernández Solís",
                        Gender         = Gender.MALE,
                        UserStatus     = UserStatus.ACTIVE,
                        Email          = "*****@*****.**",
                        AlternateEmail = "*****@*****.**",
                        PhoneNumber    = "2298046218",
                        Account        = new Account
                        {
                            Username   = "******",
                            Password   = "******",
                            FirstLogin = true
                        }
                    }
                }
            };

            _mockSet     = DbContextMock.GetQueryableMockDbSet(_data, x => x.StaffNumber);
            _mockContext = DbContextMock.GetContext(_mockSet);
            _repository  = new CoordinatorRepository(_mockContext);
            _unitOfWork  = new UnitOfWork(_mockContext);
        }
        public ActionResult SchoolLocation()
        {
            var cu = Session["user"] as ContextUser;
            var coordinatorRepo = new CoordinatorRepository();
            var cor             = coordinatorRepo.Get(cu.OUser.coordinator_profile.First().Id);

            return(View(cor.school));
        }
        public ActionResult SchoolLocation(school sc)
        {
            var cu = Session["user"] as ContextUser;
            var coordinatorRepo = new CoordinatorRepository();
            var cor             = coordinatorRepo.GetBySchool(sc.Id);

            //cor.school.Lat = sc.Lat;
            //cor.school.Lng = sc.Lng;
            cor.school.SchoolGeoLocation = sc.SchoolGeoLocation;
            coordinatorRepo.Put(cor.Id, cor);
            return(RedirectToAction("Index", "Session"));
        }
예제 #10
0
        public ActionResult MarkCompleted(session session)
        {
            var cu          = Session["user"] as ContextUser;
            var sessionRepo = new SessionRepository();
            var oSession    = sessionRepo.Get(session.Id);

            if (Request.Form["SubmitButton"] == "Upload")
            {
                sessionRepo.RemoveSessionPhoto(session.Id);
                foreach (var item in session.EvaluationImageLink.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)))
                {
                    oSession.session_evaluationform_photo.Add(new session_evaluationform_photo {
                        FilePath = item, FileExtension = Path.GetExtension(item)
                    });
                }
                foreach (var item in session.SessionImageLink.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)))
                {
                    oSession.session_photo.Add(new session_photo {
                        FilePath = item, FileExtension = Path.GetExtension(item)
                    });
                }
            }
            else if (Request.Form["SubmitButton"] == "fillvolunteerevaluation")
            {
                int corId = new CoordinatorRepository().GetByUserId(cu.OUser.Id).Id;
                return(RedirectToAction("VolenteerForm", "EvaluationForm", new { sessionId = oSession.Id, volId = oSession.volunteer_profile.Id, corId = corId }));
            }
            else
            {
                oSession.MarkedCompletedByCoordinator = true;

                var volEmail              = oSession.volunteer_profile.VolunteerEmail;
                var bogusController       = Util.CreateController <EmailTemplateController>();
                EmailTemplateModel emodel =
                    new EmailTemplateModel
                {
                    Title           = "Notification: coordinator session marked as completed.",
                    CoordinatorName = oSession.school.coordinator_profile.FirstOrDefault().CoordinatorName,
                    SessionTitle    = oSession.ProgramName,
                    VolunteerName   = oSession.volunteer_profile.VolunteerName,
                    User            = oSession.school.user.FirstName
                };
                string body =
                    Util.RenderViewToString(bogusController.ControllerContext, "CoordinatorMarkCompleted", emodel);
                EmailSender.SendSupportEmail(body, volEmail);

                var adminEmail = new AccountRepository().Get(oSession.CreatedBy).Email;
                EmailSender.SendSupportEmail(body, adminEmail);
            }
            sessionRepo.Put(oSession.Id, oSession);
            return(RedirectToAction("Index"));
        }
예제 #11
0
파일: UnitOfWork.cs 프로젝트: YazLuna/SPP
 public UnitOfWork(ProfessionalPracticesContext context)
 {
     _context            = context;
     Accounts            = new Repository <Account>(_context);
     Coordinators        = new CoordinatorRepository(_context);
     LinkedOrganizations = new Repository <LinkedOrganization>(_context);
     Practicioners       = new Repository <Practicioner>(_context);
     Projects            = new Repository <Project>(_context);
     PartialReports      = new Repository <PartialReport>(_context);
     MonthlyReports      = new Repository <MonthlyReport>(_context);
     RequestProjects     = new Repository <RequestProject>(_context);
     ResponsibleProjects = new Repository <ResponsibleProject>(_context);
     Teachers            = new Repository <Teacher>(_context);
     Users = new UserRepository(_context);
 }
예제 #12
0
        public ActionResult Register(Guid id)
        {
            ViewBag.gender = new List <SelectListItem>
            {
                new SelectListItem {
                    Selected = true, Text = General.Male, Value = "Male"
                },
                new SelectListItem {
                    Selected = false, Text = General.Female, Value = "Female"
                }
            };
            SetRegisterDD();
            var coordinatorRepo = new CoordinatorRepository();
            var coordinator     = coordinatorRepo.GetByRowId(id);

            return(View(coordinator));
        }
예제 #13
0
        // GET: Coordinator

        public ActionResult Index(string sortOrder, string filter, string archived, int page = 1, Guid?archive = null)
        {
            //PdfGenerator.PdfGenerator pdf = new PdfGenerator.PdfGenerator();
            //pdf.GenerateOnflyPdf();

            //ExcelReader.Read(@"C:\Users\malikwaqar\Desktop\bredford code analysic.xlsx");

            ViewBag.searchQuery  = string.IsNullOrEmpty(filter) ? "" : filter;
            ViewBag.showArchived = (archived ?? "") == "on";

            page = page > 0 ? page : 1;
            int pageSize = 0;

            pageSize = pageSize > 0 ? pageSize : 10;

            ViewBag.CurrentSort = sortOrder;

            var cu = Session["user"] as ContextUser;
            IEnumerable <coordinator_profile> Profile;
            var repository = new CoordinatorRepository();

            if (archive != null)
            {
                var oCoordinator = repository.GetByRowId(archive.Value);
                oCoordinator.IsActive      = !oCoordinator.IsActive;
                oCoordinator.user.IsLocked = !oCoordinator.IsActive;
                repository.Put(oCoordinator.Id, oCoordinator);
            }
            if (cu != null && cu.EnumRole == EnumUserRole.Coordinator)
            {
                Profile = repository.GetSubCoordinator(cu.OUser.coordinator_profile.First().Id);
            }
            else
            {
                Profile = string.IsNullOrEmpty(filter) ? repository.Get() : repository.Get().Where(x => x.school.SchoolName.Contains(filter));
            }
            //Sorting order
            Profile       = Profile.OrderByDescending(x => x.CreatedAt);
            ViewBag.Count = Profile.Count();

            return(View(Profile.ToPagedList(page, pageSize)));
        }
예제 #14
0
        public ActionResult Edit(Guid?id)
        {
            var cities = new CityRepository().Get().Distinct().Select(x =>
                                                                      new SelectListItem {
                Text = x.City + " (" + x.City_ar + ")", Value = x.City + "", Selected = x.City == "Jeddah"
            }).ToList();

            ViewBag.citiesdd = cities;
            var distict = new CityRepository().Get().GroupBy(x => x.Region).Select(x => x.First()).Select(x =>
                                                                                                          new SelectListItem {
                Text = x.Region + " (" + x.Region_ar + ")", Value = x.Region + ""
            }).ToList();

            ViewBag.distictdd = distict;

            coordinator_profile coordinator = null;
            var su = Session["user"] as ContextUser;

            if (id == null)
            {
                coordinator = new coordinator_profile();
                if (su.EnumRole == EnumUserRole.Coordinator)
                {
                    coordinator.school = su.OUser.coordinator_profile.First().school;
                }
                else
                {
                    coordinator.school = new school();
                }
                coordinator.IsActive = true;
                coordinator.Password = Membership.GeneratePassword(8, 4);
            }
            else
            {
                var coordinatorRepo = new CoordinatorRepository();
                coordinator          = coordinatorRepo.GetByRowId(id.Value);
                coordinator.Password = EncryptionKeys.Decrypt(coordinator.user.Password);
            }

            return(View(coordinator));
        }
        public ActionResult CoordinatorForm(int sessionId, int?volId, int?corId)
        {
            evaluation_coordinator ecpp = new EvaluationCoordinatorRepository().GetEvaluationForm(sessionId);

            if (ecpp == null)
            {
                ecpp           = new evaluation_coordinator();
                ecpp.SessionId = sessionId;
                if (volId != null)
                {
                    ecpp.VolunteerId = volId.Value;
                }
                if (corId != null)
                {
                    ecpp.CoordinatorId = corId.Value;
                    var cor = new CoordinatorRepository().Get(corId.Value);
                    ecpp.F1 = cor.CoordinatorName + " " + cor.FatherName + " " + cor.FaimlyName;
                    ecpp.F2 = cor.CoordinatorEmail;
                    ecpp.F2 = cor.CoordinatorEmail;
                    ecpp.F3 = cor.CoordinatorMobile;
                    ecpp.F4 = cor.school.Region;
                    ecpp.F5 = cor.school.City;
                    ecpp.F6 = cor.school.SchoolName;
                }
            }
            var cities = new CityRepository().Get().Distinct().Select(x =>
                                                                      new SelectListItem {
                Text = x.City + " (" + x.City_ar + ")", Value = x.City + "", Selected = x.City == "Jeddah"
            }).ToList();

            ViewBag.citiesdd = cities;
            var distict = new CityRepository().Get().GroupBy(x => x.Region).Select(x => x.First()).Select(x =>
                                                                                                          new SelectListItem {
                Text = x.Region + " (" + x.Region_ar + ")", Value = x.Region + ""
            }).ToList();

            ViewBag.distictdd = distict;

            return(View(ecpp));
        }
        public ActionResult VolenteerForm(evaluation_volunteer ecpp)
        {
            var repo = new EvaluationVolunteerRepository();

            ecpp.RowId     = Guid.NewGuid();
            ecpp.CreatedAt = DateTime.Now;
            repo.Post(ecpp);

            var session    = new SessionRepository().Get(ecpp.SessionId);
            var userId     = session.CreatedBy;
            var adminEmail = new AccountRepository().Get(userId).Email;
            var corName    = new CoordinatorRepository().Get(ecpp.CoordinatorId).CoordinatorName;

            var bogusController      = Util.CreateController <EmailTemplateController>();
            EmailTemplateModel model = new EmailTemplateModel {
                Title = "Evaluation Form Completion", VolunteerName = session.volunteer_profile.VolunteerName, CoordinatorName = corName, SessionTitle = session.ProgramName
            };
            string body = Util.RenderViewToString(bogusController.ControllerContext, "VolunteerFeedBack", model);

            EmailSender.SendSupportEmail(body, adminEmail);

            return(RedirectToAction("Index", "Session"));
        }
 public CoordinatorManager(CoordinatorRepository coordinatorRepository)
 {
     _coordinatorRepository = coordinatorRepository;
 }
예제 #18
0
        private ActionResult RedirectToPortal(EnumUserRole userRole, user user)
        {
            switch (userRole)
            {
            case EnumUserRole.SuperAdmin:
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(RedirectToAction("DashBoard", "Home"));

            case EnumUserRole.Coordinator:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                var oCordinator = new CoordinatorRepository().GetByUserId(user.Id);
                if (oCordinator.IsProfileComplete == null || !oCordinator.IsProfileComplete.Value)
                {
                    return(RedirectToAction("CoordinatorProfile", "Coordinator"));
                }
                var cu = Session["user"] as ContextUser;
                if (cu != null)
                {
                    cu.PhotoPath    = oCordinator.PhotoPath;
                    Session["user"] = cu;
                }
                return(RedirectToAction("Index", "Session"));
            }

            case EnumUserRole.Volunteer:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(AfterExternalLoginCallBack(user.FirstName + user.LastName, user.Email, user.Id.ToString(), "user", "", user.FirstName + " " + user.LastName));
            }

            case EnumUserRole.Participant:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                var participant = new ParticipiantRepository().GetByUserId(user.Id);

                if (participant.IsProfileComplete == null || !participant.IsProfileComplete.Value)
                {
                    return(RedirectToAction("ParticipantProfile", "Participant"));
                }
                var cu = Session["user"] as ContextUser;
                if (cu != null)
                {
                    cu.PhotoPath    = participant.PhotoPath;
                    Session["user"] = cu;
                }
                return(RedirectToAction("Index", "Session"));
            }

            case EnumUserRole.Approver1:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(RedirectToAction("Index", "Supervisor"));
            }

            case EnumUserRole.Approver2:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(RedirectToAction("Index", "Supervisor"));
            }

            case EnumUserRole.Approver3:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(RedirectToAction("Index", "Supervisor"));
            }

            case EnumUserRole.Funder:
            {
                if (!user.FirstLogin)
                {
                    return(RedirectToAction("UpdatePassword"));
                }
                return(RedirectToAction("Index", "Report"));
            }

            default:
                return(RedirectToAction("Index", "Home"));
            }
        }
예제 #19
0
        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"));
        }
예제 #20
0
        public ActionResult Edit(coordinator_profile profile)
        {
            var coordinatorRepo             = new CoordinatorRepository();
            var accountRepo                 = new AccountRepository();
            coordinator_profile coordinator = null;
            var  su       = Session["user"] as ContextUser;
            var  userRole = new RoleRepository().Get().FirstOrDefault(x => x.Code == (int)EnumUserRole.Coordinator);
            user ouser    = null;

            if (profile.Id == 0)
            {
                if (accountRepo.EmailExist(profile.CoordinatorEmail))
                {
                    var cities = new CityRepository().Get().Distinct().Select(x =>
                                                                              new SelectListItem {
                        Text = x.City + " (" + x.City_ar + ")", Value = x.City + "", Selected = x.City == "Jeddah"
                    }).ToList();
                    ViewBag.citiesdd = cities;
                    var distict = new CityRepository().Get().GroupBy(x => x.Region).Select(x => x.First()).Select(x =>
                                                                                                                  new SelectListItem {
                        Text = x.Region + " (" + x.Region_ar + ")", Value = x.Region + ""
                    }).ToList();
                    ViewBag.distictdd  = distict;
                    ViewBag.EmailExist = true;
                    if (su != null && su.EnumRole == EnumUserRole.Coordinator)
                    {
                        profile.school = su.OUser.coordinator_profile.First().school;
                    }
                    return(View(profile));
                }
                coordinator           = new coordinator_profile();
                coordinator.RowGuid   = Guid.NewGuid();
                coordinator.CreatedAt = DateTime.Now;
                coordinator.CreatedBy = su.OUser.Id;

                coordinator.IsPrimery  = true;
                coordinator.FirstLogin = true;
                ouser = new user
                {
                    RowGuid = Guid.NewGuid(),

                    Username         = profile.CoordinatorEmail,
                    RegistrationDate = DateTime.Now,
                    FirstName        = "",
                    RoleId           = userRole.Id,
                    CreatedAt        = DateTime.Now,
                    FirstLogin       = false,
                    ValidFrom        = DateTime.Now,
                    IsMobileVerified = false,
                    IsEmailVerified  = false,
                    CreatedBy        = su.OUser.Id
                };

                coordinator.user = ouser;

                coordinator.IsActive      = profile.IsActive;
                coordinator.user.IsLocked = !coordinator.IsActive;
                if (su.EnumRole == EnumUserRole.SuperAdmin)
                {
                    coordinator.school           = new school();
                    coordinator.school.RowGuid   = Guid.NewGuid();
                    coordinator.school.CreatedBy = su.OUser.Id;
                    coordinator.school.CreatedAt = DateTime.Now;
                    coordinator.school.user      = ouser;

                    coordinator.school.SchoolName = profile.school.SchoolName;
                    coordinator.school.City       = profile.school.City;
                    coordinator.school.District   = profile.school.District;
                    coordinator.school.Region     = profile.school.Region;
                    coordinator.school.Status     = "Initial";
                }

                else
                {
                    coordinator.ParentId = su.OUser.coordinator_profile.First().Id;
                    coordinator.SchoolId = su.OUser.coordinator_profile.First().school.Id;
                    //coordinator.school.Status = "Approved";
                    coordinator.CoordinatorName = su.OUser.coordinator_profile.First().CoordinatorName;
                }
            }
            else
            {
                coordinator           = coordinatorRepo.Get(profile.Id);
                coordinator.UpdatedAt = DateTime.Now;
                coordinator.UpdatedBy = su.OUser.Id;
                coordinator.IsActive  = profile.IsActive;

                coordinator.user.Email    = profile.CoordinatorEmail;
                coordinator.user.Username = profile.CoordinatorEmail;


                coordinator.user.Password = EncryptionKeys.Encrypt(profile.Password);
                if (su.EnumRole == EnumUserRole.Coordinator)
                {
                    coordinator.ParentId      = su.OUser.coordinator_profile.First().Id;
                    coordinator.SchoolId      = su.OUser.coordinator_profile.First().school.Id;
                    coordinator.school.Status = "Approved";
                }
                else
                {
                    coordinator.school.SchoolName = profile.school.SchoolName;
                    coordinator.school.City       = profile.school.City;
                    coordinator.school.District   = profile.school.District;
                    coordinator.school.Region     = profile.school.Region;
                    if (coordinator.school.Status == "Pending")
                    {
                        coordinator.school.Status = "Approved";
                        NewCoordinatorEmail(coordinator);
                    }
                }
            }
            coordinator.user.Email       = profile.CoordinatorEmail;
            coordinator.CoordinatorEmail = profile.CoordinatorEmail;
            coordinator.user.Username    = profile.CoordinatorEmail;
            coordinator.user.Password    = EncryptionKeys.Encrypt(profile.Password);
            if (profile.Id == 0)
            {
                //  coordinator.school.Status = "Pending";

                if (su.EnumRole == EnumUserRole.Coordinator)
                {
                    NewCoordinatorEmail(coordinator);
                }
                else
                {
                    SchoolRegistrationEmail(coordinator);
                }
                coordinatorRepo.Post(coordinator);
            }
            else
            {
                coordinatorRepo.Put(coordinator.Id, coordinator);
            }
            return(RedirectToAction("Index"));
        }
예제 #21
0
        public ActionResult Register(coordinator_profile profile, IEnumerable <HttpPostedFileBase> file)
        {
            var coordinatorRepo = new CoordinatorRepository();
            var coordinator     = coordinatorRepo.Get(profile.Id);

            coordinator.school.Telephone = profile.school.Telephone;
            coordinator.Gender           = profile.Gender;
            coordinator.school.Fax       = profile.school.Fax;
            coordinator.school.SchoolID  = profile.school.SchoolID;
            coordinator.school.Website   = profile.school.Website;
            //coordinator.school.Lat = profile.school.Lat;
            //coordinator.school.Lng = profile.school.Lng;
            coordinator.school.SchoolGeoLocation = profile.school.SchoolGeoLocation;

            coordinator.school.SchoolManagerName         = profile.school.SchoolManagerName;
            coordinator.school.SchoolManagerEmailAddress = profile.school.SchoolManagerEmailAddress;
            coordinator.school.SchoolManagerMobile       = profile.school.SchoolManagerMobile;
            coordinator.school.SchoolGuardMobile         = profile.school.SchoolGuardMobile;
            coordinator.school.SchoolGuardName           = profile.school.SchoolGuardName;
            coordinator.school.GoogleAddress             = profile.school.GoogleAddress;
            coordinator.school.LinkedInAddress           = profile.school.LinkedInAddress;
            coordinator.school.TypeOfSchool  = profile.school.TypeOfSchool;
            coordinator.school.StageOfSchool = profile.school.StageOfSchool;
            coordinator.school.YouTube       = profile.school.YouTube;
            coordinator.school.FaceBook      = profile.school.FaceBook;
            var file1 = file.ToArray()[0];

            if (file1 != null)
            {
                string fileName = "~/Uploads/ImageLibrary/" + Guid.NewGuid() + Path.GetExtension(file1.FileName);
                string filePath = Server.MapPath(fileName);
                file1.SaveAs(filePath);
                coordinator.school.PhotoPath = fileName;
            }

            var file2 = file.ToArray()[1];

            if (file2 != null)
            {
                string fileName2 = "~/Uploads/DocumentLibrary/" + Guid.NewGuid() + Path.GetExtension(file2.FileName);
                string filePath2 = Server.MapPath(fileName2);
                file2.SaveAs(filePath2);
                coordinator.school.Status       = "Pending";
                coordinator.school.DocumentPath = fileName2;
            }
            coordinator.IsRegisterComplete = true;
            if (coordinator.school.DocumentPath == null || file2 == null)
            {
                ViewBag.NeedFile = true;
                SetRegisterDD();

                return(View(profile));
            }
            coordinatorRepo.Put(profile.Id, profile);

            ViewBag.gender = new List <SelectListItem>
            {
                new SelectListItem {
                    Selected = true, Text = General.Male, Value = "Male"
                },
                new SelectListItem {
                    Selected = false, Text = General.Female, Value = "Female"
                }
            };
            SetRegisterDD();
            ViewBag.CompleteFirstTime = true;
            return(RedirectToAction("Edit", new { id = coordinator.RowGuid }));
        }