예제 #1
0
        private Model.DocumentUnit UdsGetDocumentUnitModel(Guid idDocumentUnit, out bool isReadOnly, out bool isPreserved)
        {
            isReadOnly  = false;
            isPreserved = false;

            var unit = this.db.DocumentUnit
                       .Include("DocumentUnitAggregate")
                       .SingleOrDefault(p => p.IdDocumentUnit == idDocumentUnit);

            if (unit == null)
            {
                throw DocumentUnitException.NotFound();
            }

            if (unit.CloseDate != null)
            {
                isReadOnly = true;
            }

            foreach (var aggregate in unit.DocumentUnitAggregate)
            {
                isReadOnly  = isReadOnly || (aggregate.CloseDate != null || aggregate.PreservationDate != null);
                isPreserved = isPreserved || aggregate.PreservationDate != null;
            }

            return(unit);
        }
예제 #2
0
        /// <summary>
        /// Aggiunge una nuova DocumentUnit
        /// </summary>
        /// <param name="unit">DocumentUnit da aggiungere</param>
        /// <returns>DocumentUnit inserita</returns>
        public DocumentUnit UdsAddDocumentUnit(DocumentUnit unit)
        {
            try
            {
                if (unit == null)
                {
                    throw DocumentUnitException.NotFound();
                }

                var entity = new Model.DocumentUnit
                {
                    IdDocumentUnit = Guid.NewGuid(),
                    InsertDate     = DateTime.Now,
                    CloseDate      = null,
                    Identifier     = unit.Identifier ?? "",
                    Subject        = unit.Subject ?? "",
                    Classification = unit.Classification ?? "",
                    UriFascicle    = unit.UriFascicle ?? "",
                    XmlDoc         = unit.XmlDoc ?? ""
                };

                this.db.DocumentUnit.AddObject(entity);
                if (requireSave)
                {
                    this.db.SaveChanges();
                }

                var ret = entity.Convert(0, 3);
                return(ret);
            }
            finally
            {
                Dispose();
            }
        }
예제 #3
0
        private Model.DocumentUnit UdsGetDocumentUnitByIdentifierModel(string identifierDocumentUnit)
        {
            var unit = this.db.DocumentUnit
                       .SingleOrDefault(p => p.Identifier == identifierDocumentUnit);

            if (unit == null)
            {
                throw DocumentUnitException.NotFound();
            }

            return(unit);
        }