Exemplo n.º 1
0
        public void SetDefaultSALs(int assessmentId)
        {
            try
            {
                using (CSET_Context db = new CSET_Context())
                {
                    TinyMapper.Bind <STANDARD_SELECTION, Sals>();
                    TinyMapper.Bind <Sals, STANDARD_SELECTION>();

                    STANDARD_SELECTION standardSelection = db.STANDARD_SELECTION.Find(assessmentId);

                    Sals sals = new Sals()
                    {
                        Selected_Sal_Level          = "Low",
                        Last_Sal_Determination_Type = "Simple",
                        CLevel = "Low",
                        ALevel = "Low",
                        ILevel = "Low"
                    };

                    standardSelection = TinyMapper.Map <STANDARD_SELECTION>(sals);
                    standardSelection.Assessment_Id    = assessmentId;
                    standardSelection.Application_Mode = AssessmentModeData.DetermineDefaultApplicationMode();

                    db.STANDARD_SELECTION.Add(standardSelection);
                    db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> PostSTANDARD_SELECTION(STANDARD_SELECTION sTANDARD_SELECTION)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.STANDARD_SELECTION.Add(sTANDARD_SELECTION);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (STANDARD_SELECTIONExists(sTANDARD_SELECTION.Assessment_Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = sTANDARD_SELECTION.Assessment_Id }, sTANDARD_SELECTION));
        }
Exemplo n.º 3
0
 public AssessmentModeAndSal(int assessmentId)
 {
     using (var db = new CSET_Context())
     {
         selection      = db.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();
         fullNameToChar = db.UNIVERSAL_SAL_LEVEL.ToDictionary(x => x.Full_Name_Sal, x => x.Universal_Sal_Level1);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Get the currently saved value, without regard for the sliders.
        /// This is used for the initial display of the Gen SAL screen before the user starts
        /// tweaking sliders.
        /// </summary>
        /// <param name="assessmentid"></param>
        /// <returns></returns>
        public string GetSavedSALValue(int assessmentid)
        {
            STANDARD_SELECTION sal = db.STANDARD_SELECTION.Where(ss => ss.Assessment_Id == assessmentid).FirstOrDefault();

            if (sal == null)
            {
                // default to Low if we don't yet have a record
                return("Low");
            }

            return(sal.Selected_Sal_Level);
        }
Exemplo n.º 5
0
        private Sals CalculateOveralls(int assessmentId, CSET_Context db)
        {
            Sals rval = CalculatedNist(assessmentId, db);
            STANDARD_SELECTION sTANDARD_SELECTION = db.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();

            sTANDARD_SELECTION.Selected_Sal_Level = rval.Selected_Sal_Level;
            LevelManager lm = new LevelManager(assessmentId, db);

            lm.SaveOtherLevels(assessmentId, rval);
            db.SaveChanges();
            return(rval);
        }
Exemplo n.º 6
0
        public IHttpActionResult GetSTANDARD_SELECTION()
        {
            try
            {
                int asssessmentId = Auth.AssessmentForUser();

                TinyMapper.Bind <STANDARD_SELECTION, Sals>();
                TinyMapper.Bind <Sals, STANDARD_SELECTION>();

                STANDARD_SELECTION sTANDARD_SELECTION = db.STANDARD_SELECTION.Find(asssessmentId);
                Sals rsal;
                if (sTANDARD_SELECTION == null)
                {
                    rsal = new Sals()
                    {
                        Selected_Sal_Level          = "Low",
                        Last_Sal_Determination_Type = "Simple",
                        CLevel = "Low",
                        ALevel = "Low",
                        ILevel = "Low"
                    };
                    sTANDARD_SELECTION = TinyMapper.Map <STANDARD_SELECTION>(rsal);
                    sTANDARD_SELECTION.Assessment_Id    = asssessmentId;
                    sTANDARD_SELECTION.Application_Mode = AssessmentModeData.DetermineDefaultApplicationMode();
                    db.STANDARD_SELECTION.Add(sTANDARD_SELECTION);
                    db.SaveChanges();
                }
                else
                {
                    rsal = TinyMapper.Map <Sals>(sTANDARD_SELECTION);
                }

                LevelManager lm = new LevelManager(asssessmentId, db);
                lm.RetrieveOtherLevels(rsal);
                StandardRepository sr = new StandardRepository(asssessmentId, lm, new StandardManager(), new AssessmentModeData(db, asssessmentId), new StandardSpecficLevelRepository(db));
                sr.Confidence_Level   = rsal.CLevel;
                sr.Integrity_Level    = rsal.ILevel;
                sr.Availability_Level = rsal.ALevel;
                //if(!rsal.SelectedSALOverride)
                //   rsal.Selected_Sal_Level = sr.Selected_Sal_Level;

                return(Ok(rsal));
            }
            catch (Exception)
            {
                return(Conflict());
                //return (HttpResponseMessage)CSETWeb_Api.Helpers.ElmahWrapper.LogAndReportException(e, Request, HttpContext.Current);
            }
        }
Exemplo n.º 7
0
        public OverallSalObject(ICollection <ASSESSMENT_SELECTED_LEVELS> collection, STANDARD_SELECTION sel)
        {
            PropertyInfo[] props = this.GetType().GetProperties();
            Dictionary <String, PropertyInfo> propsMap = new Dictionary <string, PropertyInfo>();

            foreach (var prop in props)
            {
                propsMap.Add(prop.Name, prop);
            }
            foreach (ASSESSMENT_SELECTED_LEVELS asl in collection)
            {
                propsMap[asl.Level_Name].SetValue(this, asl.Standard_Specific_Sal_Level, null);
            }
            Selected_Sal_Level = sel.Selected_Sal_Level;
        }
Exemplo n.º 8
0
 public AssessmentModeData(CSET_Context assessmentContextHolder, int assessmentId)
 {
     this.DataContext = assessmentContextHolder;
     this.standard    = this.DataContext.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();
     if (this.standard == null)
     {
         this.standard = new STANDARD_SELECTION()
         {
             Application_Mode   = DetermineDefaultApplicationMode(),
             Assessment_Id      = assessmentId,
             Selected_Sal_Level = Constants.SAL_LOW
         }
     }
     ;
 }
Exemplo n.º 9
0
        public void Init(STANDARD_SELECTION standard)
        {
            this.standard = standard;


            IEnumerable <UNIVERSAL_SAL_LEVEL> sals = db.UNIVERSAL_SAL_LEVEL.ToList();

            sALLevelWithNoneList = sals.OrderBy(x => x.Sal_Level_Order).ToList();

            SALLevelList = sals.Where(x => x.Full_Name_Sal != Constants.SAL_NONE).OrderBy(x => x.Sal_Level_Order).ToList();

            DictionarySALs = sals.ToDictionary(x => x.Full_Name_Sal);
            DictionarySALs[Constants.SAL_NONE] = DictionarySALs[Constants.SAL_LOW];//Handle SAL None as Low
            SetSalLevel(standard.Selected_Sal_Level);
            //not needed for now
            //CreateCSET4SALLevelDictionary(SALLevelList);
        }
Exemplo n.º 10
0
        public async Task <IHttpActionResult> GetType([FromUri] String newType)
        {
            try
            {
                int asssessmentId = Auth.AssessmentForUser();
                STANDARD_SELECTION sTANDARD_SELECTION = await db.STANDARD_SELECTION.FindAsync(asssessmentId);

                if (sTANDARD_SELECTION != null)
                {
                    sTANDARD_SELECTION.Last_Sal_Determination_Type = newType;
                    await db.SaveChangesAsync();
                }
                return(Ok());
            }
            catch (Exception e)
            {
                return((IHttpActionResult)CSETWeb_Api.Helpers.ElmahWrapper.LogAndReportException(e, Request, HttpContext.Current));
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Calculates the SAL based on the value of the sliders.
        /// The new calculated level is saved to the database.
        /// </summary>
        private string CalculateSAL(double weight)
        {
            string SALToReturn = Constants.SAL_LOW;

            foreach (double thresholdValue in this.SALThresholdDictionary.Keys)
            {
                if (weight >= thresholdValue)
                {
                    SALToReturn = SALThresholdDictionary[thresholdValue];
                }
            }

            // Persist the overall SAL to the database
            int assessmentId      = Auth.AssessmentForUser();
            STANDARD_SELECTION ss = db.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();

            ss.Selected_Sal_Level = SALToReturn;
            db.SaveChanges();

            return(SALToReturn);
        }
Exemplo n.º 12
0
        private void setdefault(CSET_Context db, int assessmentId)
        {
            TinyMapper.Bind <STANDARD_SELECTION, Sals>();
            TinyMapper.Bind <Sals, STANDARD_SELECTION>();

            STANDARD_SELECTION standardSelection = db.STANDARD_SELECTION.Find(assessmentId);

            Sals sals = new Sals()
            {
                Selected_Sal_Level          = "Low",
                Last_Sal_Determination_Type = "Simple",
                CLevel = "Low",
                ALevel = "Low",
                ILevel = "Low"
            };

            standardSelection = TinyMapper.Map <STANDARD_SELECTION>(sals);
            standardSelection.Assessment_Id    = assessmentId;
            standardSelection.Application_Mode = AssessmentModeData.DetermineDefaultApplicationMode();

            db.STANDARD_SELECTION.Add(standardSelection);
            db.SaveChanges();
        }
Exemplo n.º 13
0
        public IHttpActionResult PostSAL(Sals tmpsal)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int assessmentId = Auth.AssessmentForUser();

            TinyMapper.Bind <Sals, STANDARD_SELECTION>();
            STANDARD_SELECTION sTANDARD_SELECTION = db.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();

            if (sTANDARD_SELECTION != null)
            {
                sTANDARD_SELECTION = TinyMapper.Map <Sals, STANDARD_SELECTION>(tmpsal, sTANDARD_SELECTION);
            }
            else
            {
                sTANDARD_SELECTION = TinyMapper.Map <STANDARD_SELECTION>(tmpsal);
            }
            sTANDARD_SELECTION.Assessment_Id = assessmentId;


            db.Entry(sTANDARD_SELECTION).State = EntityState.Modified;
            LevelManager lm = new LevelManager(assessmentId, db);

            lm.SaveOtherLevels(assessmentId, tmpsal);
            lm.Init(sTANDARD_SELECTION);
            if (tmpsal.SelectedSALOverride)
            {
                lm.SaveSALLevel(tmpsal.Selected_Sal_Level);
            }

            try
            {
                db.SaveChanges();

                StandardRepository sr = new StandardRepository(assessmentId, lm, new StandardManager(), new AssessmentModeData(db, assessmentId), new StandardSpecficLevelRepository(db));
                sr.Confidence_Level   = tmpsal.CLevel;
                sr.Integrity_Level    = tmpsal.ILevel;
                sr.Availability_Level = tmpsal.ALevel;

                // save the newly-calculated overall value
                if (!tmpsal.SelectedSALOverride)
                {
                    tmpsal.Selected_Sal_Level = sr.Selected_Sal_Level;
                    lm.SaveSALLevel(tmpsal.Selected_Sal_Level);
                }

                return(Ok(tmpsal));
            }
            catch (DbUpdateConcurrencyException dbe)
            {
                if (!STANDARD_SELECTIONExists(assessmentId))
                {
                    return(NotFound());
                }
                else
                {
                    throw dbe;
                }
            }
            catch (Exception e)
            {
                CSETWeb_Api.Helpers.ElmahWrapper.LogAndReportException(e, Request, HttpContext.Current);
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }