예제 #1
0
        public async Task <int> AddCPs(int ReleaseID)
        {
            IEnumerable <CP> CPs = null;
            int count            = 0;

            using (ICPRepository db = new CPRepository())
            {
                CPs = db.Get().Where(cp => cp.EffectiveDate <DateTime.Today.Date && cp.ExpirationDate> DateTime.Today.Date && cp.IsDeleted == false);
            }

            using (IReleaseCPRepository db = new ReleaseCPRepository())
            {
                IList <ReleaseCP> ReleaseCP = new List <ReleaseCP>();
                CPs.ToList().ForEach(cp => ReleaseCP.Add(new ReleaseCP()
                {
                    CPID = cp.CPID, ReleaseID = ReleaseID, ExceptionIndicator = false, IsDeleted = false
                }));
                db.AddRange(ReleaseCP);
                count += await db.SaveAsync((WindowsPrincipal)User);
            }
            return(count);
        }
예제 #2
0
        public async Task <JsonResult> publishCP(int CPID, int ReleaseID, bool ChangeRiskLevel = false)
        {
            try
            {
                CP currentCP;
                IEnumerable <ReleaseChecklistAnswer> InitiatedQuestion = null;
                int count = 0;
                using (ICPRepository db = new CPRepository())
                {
                    currentCP = db.Where(cp => cp.CPID == CPID).Include(cp => cp.Milestone).Include(cp => cp.Milestone.ReleaseMilestones).FirstOrDefault();
                }
                using (IReleaseChecklistAnswerRepository db = new ReleaseChecklistAnswerRepository())
                {
                    var cpDate = currentCP.Milestone.ReleaseMilestones.Where(rm => rm.ReleaseID == ReleaseID).FirstOrDefault().MilestoneDate;
                    InitiatedQuestion = cpDate != null?db.Where(s => s.RiskLevelID == RiskLevels.Initiated && s.HandlingStartDate <= cpDate && s.ReleaseID == ReleaseID).ToList() : null;

                    int AllQuestion = db.Where(s => s.HandlingStartDate <= cpDate && s.ReleaseID == ReleaseID).Count();
                    if (InitiatedQuestion != null && InitiatedQuestion.Count() > 0)
                    {
                        if (ChangeRiskLevel)
                        {
                            InitiatedQuestion.ToList().ForEach(q => { q.RiskLevelID = RiskLevels.High; q.HandlingStartDate = DateTime.Today; });
                            count += await db.SaveAsync((WindowsPrincipal)User);

                            //(WindowsPrincipal)User);
                            // ViewStatus(ReleaseID);
                        }
                        return(Json(new { Result = "ExistQuestions", IsChanged = ChangeRiskLevel, IsUpdated = true }));
                    }
                    return(Json(new { Result = "NotExistQuestions", TotalCPQuestion = AllQuestion }));
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }