예제 #1
0
        public ActionResult ShowUser(int id = 0)
        {
            var allGroups = _educationalGroupService.GetAll();

            ViewBag.CollegeList = new SelectList(_collegeService.GetAll(), "Id", "Name");
            ViewBag.GroupList   = new SelectList(allGroups.Where(w => 1 == 2), "EducationalGroupCode", "Name");
            if (id > 0)
            {
                var item        = _userService.Get(g => g.ID == id);
                var serviceUser = _serviceUsersMappingService.Get(g => g.Username == item.Username);
                return(View(new Models.User
                {
                    //College = Mapper.Map<Models.College>(item.College),
                    College = item.College != null ? new Models.College {
                        Id = item.College.Id, CollegeCode = item.College.CollegeCode, Name = item.College.Name
                    } : null,
                    EducationalGroupCode = item.EducationalGroupCode,
                    EducationalGroupName = allGroups.Where(w => w.EducationalGroupCode == item.EducationalGroupCode).FirstOrDefault()?.Name,//_educationalGroupService.GetMany(g=> g.EducationalGroupCode == item.EducationalGroupCode).FirstOrDefault()?.Name,
                    FirstName = item.FirstName,
                    LastName = item.LastName,
                    ID = item.ID,
                    IsAdministrator = item.IsAdministrator,
                    IsPowerUser = item.IsPowerUser,
                    ServiceUsername = serviceUser != null ? serviceUser.ServiceUsername : string.Empty,
                    Username = item.Username
                }));
            }

            return(View(new Models.User()));
        }
        public ActionResult RankOfProfessorInEducationalGroup(string id = null, string group = null, string term = null)
        {
            SetViewBag(title: "رتبه بندی اساتید در سطح گروه", menuItem: "RankOfProfessorInEducationalGroup");
            var collegeId = 0;
            var termId    = 0;
            var groupCode = 0;

            ViewBag.CollegeList = new SelectList(_collegeService.GetAll().Where(w => 1 == 2), "Id", "Name", id);
            ViewBag.GroupList   = new SelectList(_educationalGroupService.GetAll().Where(w => 1 == 2), "EducationalGroupCode", "Name", group);
            ViewBag.TermList    = new SelectList(_termService.GetAll().OrderByDescending(o => o.TermCode), "Id", "Name", term);

            if (!string.IsNullOrEmpty(id))
            {
                int.TryParse(id, out collegeId);
            }
            if (!string.IsNullOrEmpty(group))
            {
                int.TryParse(group, out groupCode);
            }
            var user = (Models.User)Session["UserInfo"];

            if (user != null && user.College != null)
            {
                collegeId         = user.College.Id;
                ViewBag.CollegeId = collegeId;
            }
            if (user != null && user.EducationalGroupCode != null)
            {
                groupCode = (int)user.EducationalGroupCode;
            }

            if (!string.IsNullOrEmpty(term) && int.TryParse(term, out termId) && termId > 0 && collegeId > 0 && groupCode > 0)
            {
                var educationalGroup = _educationalGroupService.Get(g => g.EducationalGroupCode == groupCode && g.Term.Id == termId);
                var college          = _collegeService.Get(g => g.Id == collegeId);
                ViewBag.EducationalGroup   = educationalGroup.Name;
                ViewBag.College            = college.Name;
                ViewBag.CollegeId          = college.Id;
                ViewBag.EducationalGroupId = educationalGroup.EducationalGroupCode;
                ViewBag.TermId             = termId;

                //// Old Methode Start
                //var counter = 0;
                //var professors = _educationalGroupService.Get(g => g.Id == groupId).EducationalClasses.Where(w => w.Term.Id == termId).Select(s => s.Professor)
                //    .OrderByDescending(o => o.ProfessorScores.Where(w => w.Term != null && w.Term.Id == termId).Sum(s => s.CurrentScore))
                //    .Select(s => new Models.Professor
                //    {
                //        //Colleges = Mapper.Map<ICollection<Model.Models.College>, ICollection<Models.College>>(s.Colleges),
                //        //EducationalGroups = Mapper.Map<ICollection<Model.Models.EducationalGroup>, ICollection<Models.EducationalGroup>>(s.EducationalGroups),
                //        EducationalClasses = Mapper.Map<ICollection<Model.Models.EducationalClass>, ICollection<Models.EducationalClass>>(s.EducationalClasses),
                //        ProfessorScores = Mapper.Map<ICollection<Model.Models.ProfessorScore>, ICollection<Models.ProfessorScore>>(s.ProfessorScores),
                //        Name = s.Name,
                //        Family = s.Family,
                //        NationalCode = s.NationalCode,
                //        ProfessorCode = s.ProfessorCode,
                //        Gender = Convert.ToBoolean(s.Gender),
                //        RankInUniversity = ++counter
                //    })
                //    .ToList();
                //return View(professors);
                //// Old Methode End
                var collegeList = new List <int>();
                var groupList   = new List <int>();
                collegeList.Add(collegeId);
                groupList.Add(educationalGroup.Id);
                var model = _reportService.GetProfessorReport(termId, collegeList: collegeList, groupList: groupList, allColleges: false, allGroups: false)
                            .General.ToList();
                foreach (var item in model)
                {
                    item.RowNumber = model.IndexOf(item) + 1;
                }
                return(View(model));
            }
            return(View());
        }