Esempio n. 1
0
        public async Task Add_Test()
        {
            var header = new HeaderModel
            {
                HeaderName  = "Header",
                HeaderValue = "Value"
            };

            var query = new QueryModel
            {
                InsertDate      = DateTime.Now,
                QueryParamName  = "Param",
                QueryParamValue = "Value"
            };

            query.Headers = new List <HeaderModel>();

            query.Headers.Add(header);

            header.Query = query;

            var target = new HeaderRepository(this.dataContext);

            var result = await target.Add(header);

            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Id);
            Assert.AreNotEqual(0, result.Query.Id);
        }
        public Header Add(Guid documentId, Header header)
        {
            if (DocumentRepository.Exists(documentId))
            {
                if (!HeaderRepository.ExistsForDocument(documentId))
                {
                    Document documentThatBelongs = DocumentRepository.GetById(documentId);
                    documentThatBelongs.StyleClass = null;

                    header.DocumentThatBelongs = documentThatBelongs;

                    header.Id = Guid.NewGuid();

                    header.Content = new Content()
                    {
                        Id = Guid.NewGuid()
                    };

                    if (header.StyleClass != null && !StyleClassRepository.Exists(header.StyleClass.Name))
                    {
                        header.StyleClass = null;
                    }

                    ContentRepository.Add(header.Content);
                    HeaderRepository.Add(header);

                    return(header);
                }
                else
                {
                    throw new ExistingHeaderException("This document already has a header.");
                }
            }
            else
            {
                throw new MissingDocumentException("This document is not in the database.");
            }
        }