public ActionResult RatingsPeriod(int MonthlyStart, int NumOfDays, int MonthlyLockOut, string Rating)
 {
     Configuration config = new Configuration();
     config.id = 1;
     config.RatingDays = NumOfDays;
     config.ratingStartDate = MonthlyStart;
     config.ratingEndDate = MonthlyLockOut;
     string[] rating = Rating.Split('-');
     config.ratingMin = Int32.Parse(rating[0].Trim());
     config.ratingMax = Int32.Parse(rating[1].Trim());
     _configRepository.Merge(config);
     return RedirectToAction("Configuration");
 }
        public ActionResult Configuration()
        {
            List<TeamRatings> tr = _teamRatingsRepository.GetAll().OrderBy(x=>x.NumberOfMembers).ToList();
            if (tr.Count() == 0)
            {
                TeamRatings team = new TeamRatings();
                team.NumberOfMembers = 1;
                team.MaxScore = 100;
                team.Id = 1;
                tr.Add(team);
            }
            ViewBag.TeamRatings = tr;

            var config = _configRepository.GetAll().FirstOrDefault();
            if (config == null)
            {
                config = new Configuration();
                config.id =1;
                config.RatingDays = 21;
                config.ratingStartDate = 1;
                config.ratingEndDate = 31;
                config.ratingMax = 100;
                config.ratingMin = 0;
            }
            ViewBag.Configuration = config;

            return View();
        }
        private PersonRating GetRating(int ratedBy, int personid, Configuration config )
        {
            DateTime d = _ratingPeriod.LockDate;
            PersonRating pr = _personratingRepository.Get(x => x.personid == personid && x.ratedBy == ratedBy && x.createdAt >= _ratingPeriod.StartDate && x.createdAt <= _ratingPeriod.LockDate).FirstOrDefault();

            if (pr == null)
            {
                pr = new PersonRating();
                pr.personid = personid;
                pr.ratedBy = ratedBy;
                DateTime date = DateTime.Now;
                pr.startDate = new DateTime(date.Year, date.Month, config.ratingStartDate) ;
                pr.endDate = new DateTime(date.Year, date.Month, config.ratingEndDate);
                int ave = (config.ratingMax - config.ratingMin) / 2 + config.ratingMin;
                pr.innovation = ave;
                pr.communication = ave;
                pr.problemSolving = ave;
                pr.performance = ave;
                pr.productivity = ave;
            }
            return pr;
        }