コード例 #1
0
        public override void add(ref RequirementEntity entity, bool persistir = true)
        {
            try
            {
                if (checkProjectBalance(entity.ProjectID, entity.cost))
                {
                    unit.BeginTransaction();

                    ProjectEntity project = projectService.get(entity.ProjectID);
                    entity.preTraceability = projectService.isPreTraceability(project);
                    entity.versionNumber   = 1;
                    entity.active          = true;

                    if (entity.RequirementTemplateID.Equals(0))
                    {
                        entity.RequirementTemplateID = null;
                    }
                    if (entity.RequirementSubTypeID.Equals(0))
                    {
                        entity.RequirementSubTypeID = null;
                    }

                    Mapper.Initialize(cfg =>
                    {
                        cfg.CreateAutomaticMapping <RequirementEntity, RequirementVersionsEntity>();
                    });

                    RequirementVersionsEntity version = new RequirementVersionsEntity();
                    version = Mapper.Map <RequirementEntity, RequirementVersionsEntity>(entity);
                    version.RequirementRequestForChangesID = null;
                    version.creationDate = DateTime.Now;
                    version.rationale    = "First version of the requirement.";

                    base.add(ref entity, false);
                    version.RequirementID = entity.RequirementID;
                    versionService.add(ref version, false);

                    foreach (var item in characteristicsService.getRequiredCharacteristics())
                    {
                        RequirementCharacteristicsEntity req = new RequirementCharacteristicsEntity();
                        req.RequirementID     = entity.RequirementID;
                        req.CharacteristicsID = item.CharacteristicsID;
                        req.check             = false;
                        requirementCharacteristicsService.add(ref req, false);
                    }

                    unit.Commit();
                }
                else
                {
                    throw new ArgumentException("The inclusion of this requirement exceeds the project balance!");
                }
            }
            catch (Exception ex)
            {
                unit.Rollback();
                throw ex;
            }
        }
コード例 #2
0
        public void update(ref RequirementEntity entity, int RequirementRequestForChangesID, string rationale)
        {
            try
            {
                if (checkProjectBalance(entity.ProjectID, entity.cost))
                {
                    unit.BeginTransaction();

                    entity.versionNumber += 1;

                    if (entity.RequirementTemplateID.Equals(0))
                    {
                        entity.RequirementTemplateID = null;
                    }
                    if (entity.RequirementSubTypeID.Equals(0))
                    {
                        entity.RequirementSubTypeID = null;
                    }

                    Mapper.Initialize(cfg =>
                    {
                        cfg.CreateAutomaticMapping <RequirementEntity, RequirementVersionsEntity>();
                    });

                    RequirementRequestForChangesEntity request = requestService.get(RequirementRequestForChangesID);

                    request.RequestStatusID = 3;

                    RequirementVersionsEntity version = new RequirementVersionsEntity();
                    version = Mapper.Map <RequirementEntity, RequirementVersionsEntity>(entity);
                    version.creationDate = DateTime.Now;
                    version.rationale    = rationale;
                    version.RequirementRequestForChangesID = request.RequirementRequestForChangesID;
                    version.RequirementID = null;

                    versionService.add(ref version, false);
                    requestService.update(ref request, false);
                    update(ref entity, false);

                    unit.Commit();
                }
                else
                {
                    throw new ArgumentException("The inclusion of this requirement exceeds the project balance!");
                }
            }
            catch (Exception ex)
            {
                unit.Rollback();
                throw ex;
            }
        }