Exemplo n.º 1
0
        private void AddClauseToSection(XmlNodeList docSections, LicenseSection section,
                                        OrganizationLicenseClause licenseClause)
        {
            // Get published clause template
            var publishedTemplate = _clauseTemplates.Where(i => i.LicenseClauseID == licenseClause.LicenseClauseID).FirstOrDefault(i => i.Status == (int)TemplateStatus.Active);

            // Get retracted clause template
            var retractedTemplate =
                _clauseTemplates.Where(i => i.LicenseClauseID == licenseClause.LicenseClauseID).FirstOrDefault(i => i.Status == (int)TemplateStatus.Retracted);

            // Return error if both not found
            if (publishedTemplate == null && retractedTemplate == null)
            {
                throw new BaseException("No published templates for this clause.");
            }
            // If published template was not found, so it was retracted - use it
            publishedTemplate = publishedTemplate ?? retractedTemplate;
            // Process clauses for section
            switch ((ClauseType)publishedTemplate.ClauseType)
            {
            case ClauseType.Text:
            case ClauseType.Input:
            case ClauseType.InputAndDropDown:
            {
                var temp = new string(licenseClause.ClauseData.Where(p => p != '{' && p != '}').ToArray());
                InsertContentIntoNodes(docSections, section.Title, temp);
                break;
            }

            default:
                throw new BaseException("Unknown clause type");
            }
        }
        public static LicenseSectionModel ToModel(this LicenseSection section)
        {
            var result = new LicenseSectionModel();

            result.ID    = section.ID;
            result.Title = section.Title;
            return(result);
        }
        /// <summary>
        /// Get Section list. Save sections that not in db (save difference)
        /// </summary>
        /// <param name="stream">The source file</param>
        private void UpdateSectionsFromTemplateFile(byte[] file, LoggedInUserDetails user)
        {
            if (file.Length == 0)
            {
                return;
            }

            var document = new XmlDocument();
            var stream   = new MemoryStream(file);

            document.Load(stream);
            var documentSections = document.GetElementsByTagName("section");
            // Get all sections
            var existingSections = _sections.All();

            // Get section titles
            var existingSectionTitles = existingSections.Select(p => p.Title).ToList();

            var sectionList = GetSectionsFromDocument(documentSections);

            // Get titles that are not present in database
            var diff = sectionList.Except(existingSectionTitles).ToList();

            // Save new sections
            foreach (var item in diff)
            {
                var section = new LicenseSection
                {
                    Title     = item,
                    CreatedAt = GetDate,
                    CreatedBy = user.ID.Value
                };

                // Save section
                _sections.Add(section);
            }
        }
Exemplo n.º 4
0
        public void Init()
        {
            var today = DateTime.Now;

            userSysAdmin = new User
            {
                ID             = 2,
                OrganizationID = 1,
                IsActive       = true,
                Email          = "*****@*****.**",
                IsSysAdmin     = true,
            };

            user = new User
            {
                ID             = 3,
                IsActive       = true,
                Email          = "*****@*****.**",
                IsSysAdmin     = false,
                OrganizationID = null,
            };

            sectionA = new LicenseSection
            {
                ID        = 1,
                CreatedBy = user.ID,
                Title     = "sectionA"
            };

            sectionB = new LicenseSection
            {
                ID        = 2,
                CreatedBy = user.ID,
                Title     = "sectionB"
            };

            sectionC = new LicenseSection
            {
                ID        = 3,
                CreatedBy = user.ID,
                Title     = "sectionC"
            };

            licenseTemplate = new LicenseTemplate
            {
                ID        = 1,
                CreatedAt = today,
                CreatedBy = 1,
                Status    = (int)TemplateStatus.Active,
                Name      = "titleLicense"
            };

            clauseTemplateDraft = new LicenseClauseTemplate
            {
                ID              = 1,
                Status          = (int)TemplateStatus.Draft,
                Description     = "Descr",
                LegalText       = "text",
                ShortText       = "shortText",
                LicenseClauseID = 1,
                Version         = 1
            };

            clauseTemplateActive = new LicenseClauseTemplate
            {
                ID          = 2,
                Status      = (int)TemplateStatus.Active,
                Description = "Descr",
                LegalText   = "text",
                ShortText   = "shortText",
                Version     = 1
            };

            clause1SectionA = new LicenseClause
            {
                ID               = 1,
                OrderNumber      = 0,
                LicenseSectionID = sectionA.ID
            };

            clause2SectionA = new LicenseClause
            {
                ID               = 2,
                OrderNumber      = 0,
                LicenseSectionID = sectionA.ID
            };

            clause1SectionB = new LicenseClause
            {
                ID               = 3,
                OrderNumber      = 0,
                LicenseSectionID = sectionA.ID
            };

            var fileMock = new Mock <HttpPostedFileBase>();

            _clauseService          = new Mock <ILicenseClauseService>();
            _clauseTemplateService  = new Mock <ILicenseClauseTemplateService>();
            _sectionService         = new Mock <ILicenseSectionService>();
            organizationService     = new Mock <IOrganizationService>();
            userService             = new Mock <IUserService>();
            licenseTemplateService  = new Mock <ILicenseTemplatesService>();
            userNotificationService = new Mock <IUserNotificationService>();
            notificationService     = new Mock <INotificationService>();
            // Setup notification service
            notificationService.SetupGet(m => m.User).Returns(userNotificationService.Object);
            var urlHelper = new Mock <UrlHelper>();

            context = new Mock <ControllerContext>();
            context.Setup(m => m.HttpContext.Request.Files.Count).Returns(1);
            context.Setup(m => m.HttpContext.Request.Files[0]).Returns(fileMock.Object);

            _sectionService.Setup(m => m.GetAll()).Returns(new List <LicenseSection> {
                sectionA, sectionB, sectionC
            });
            _sectionService.Setup(m => m.Get(sectionA.ID)).Returns(sectionA);
            _sectionService.Setup(m => m.Get(sectionB.ID)).Returns(sectionB);
            _sectionService.Setup(m => m.Get(sectionC.ID)).Returns(sectionC);

            _clauseService.Setup(m => m.Get(It.IsAny <Expression <Func <LicenseClause, bool> > >()))
            .Returns(new List <LicenseClause> {
                clause1SectionA, clause2SectionA
            });
            _clauseService.Setup(i => i.Get(clause1SectionA.ID)).Returns(clause1SectionA);

            _clauseTemplateService.Setup(m => m.Get(It.IsAny <Expression <Func <LicenseClauseTemplate, bool> > >()))
            .Returns(new List <LicenseClauseTemplate> {
                clauseTemplateDraft
            });
            _clauseTemplateService.Setup(m => m.Get(clauseTemplateDraft.ID)).Returns(clauseTemplateDraft);
            _clauseTemplateService.Setup(m => m.Get(clauseTemplateActive.ID)).Returns(clauseTemplateActive);

            licenseTemplateService.Setup(m => m.GetPublishedGlobalLicense()).Returns(licenseTemplate);

            controller = new LicenseClausesController(_clauseService.Object, _sectionService.Object,
                                                      _clauseTemplateService.Object, userService.Object, organizationService.Object,
                                                      licenseTemplateService.Object, notificationService.Object)
            {
                LoggedInUser      = new LoggedInUserDetails(userSysAdmin),
                Url               = urlHelper.Object,
                ControllerContext = context.Object
            };
        }