Example #1
0
        public static Control ToDataModel(this Contracts.Control.CreateControl create, RAAPEntities db)
        {
            var control = new Control
            {
                Name              = create.Name,
                Description       = create.Description,
                CreatedOn         = DateTime.Now,
                UpdatedOn         = DateTime.Now,
                ExecutedDate      = create.ExecutedDate,
                Deadline          = create.Deadline,
                InvestmentCost    = create.InvestmentCost,
                LegalObligation   = create.LegalObligation,
                MaintenanceCost   = create.MaintenanceCost,
                ResponsibleUserId = create.ResponsibleUserId,
                Status            = (int)create.Status,
                Type              = (int)create.Type,
                ValidTo           = create.ValidTo,
                ControlCategory   = (create.Category != null ? db.ControlCategories.FirstOrDefault(cc => cc.ControlCategoryId == create.Category.ControlCategoryId) : null),
                React             = create.React,
                Detect            = create.Detect,
                Prevent           = create.Prevent,
                AlertUserId       = create.AlertUserId,
                AlertDate         = create.AlertDate,
                Avoid             = create.Avoid
            };

            create.Evaluations.Where(e => e.EvaluationId == 0 && !string.IsNullOrEmpty(e.Text)).OrderBy(e => e.Revision)
            .ForEach(e => control.HtmlComments.Add(e.ToDataModel(db, control)));
            create.Risks.ForEach(r => control.ControlRisks.Add(r.ToDataModel()));
            return(control);
        }
Example #2
0
        public Contracts.Control.Control Create(Contracts.Control.CreateControl createControl)
        {
            using (var db = new RAAPEntities(GetConnectionString()))
            {
                if (db.Controls.Any(a => a.Name == createControl.Name))
                {
                    throw new RAAPConflictException("Name is already in use, please try another name.");
                }
                RiskCalculator.CheckRiskTypes(createControl, db);
                var process = createControl.ToDataModel(db);
                db.Controls.Add(process);

                db.SaveChanges();

                return(process.ToContract(_userService));
            }
        }