예제 #1
0
 public static AuditObject ConvertBinaryAttributes(Audit AuditRecord, AuditObject AuditDomainObject)
 {
     foreach (var binaryAuditAttribute in AuditRecord.Attribute.OfType<BinaryAttribute>())
     {
         if (!AuditDomainObject.AuditAttributes.Keys.Contains(binaryAuditAttribute.Key))
             AuditDomainObject.AuditAttributes.Add(binaryAuditAttribute.Key,
                                                   new BinaryAuditAttributeObject { Value = binaryAuditAttribute.Value });
     }
     return AuditDomainObject;
 }
예제 #2
0
 /// <summary>
 /// Function the creates a new audit record.
 /// </summary>
 /// <param name="AuditRecord">Audit Domain object populated that needs
 /// saving away.</param>
 public static int Add(AuditObject AuditRecord)
 {
     using (var ctx = new AuditEntities())
     {
         Entity newRecord = Convert(AuditRecord, ctx);
         // Add the new AuditRecord record
         ctx.Entity.AddObject(newRecord);
         ctx.SaveChanges();
         return newRecord.Id;
     }
 }
예제 #3
0
 /// <summary>
 /// Function to convert DataAccess File Attributes to FileAttribute
 /// objects and return the Domain AuditBR Object with the files attached.
 /// </summary>
 /// <param name="AuditRecord">DataAccess AuditBR object that will have the
 /// fileauditattributes to be converted</param>
 /// <param name="AuditDomainObject">The returning Auditobject with the Files attached</param>
 /// <returns>The returning Auditobject with the Files attached</returns>
 public static AuditObject ConvertFileAttributes(Audit AuditRecord, AuditObject AuditDomainObject)
 {
     foreach (var fileAttribute in AuditRecord.Attribute.OfType<FileAttribute>())
     {
         var fileAttributeObject = new FileAuditAttributeObject
                                       {
                                           DateCreated = fileAttribute.DateCreated,
                                           DateUpdated = fileAttribute.DateUpdated,
                                           DateDeleted = fileAttribute.DateDeleted,
                                           Name = fileAttribute.FileName,
                                           Extension = fileAttribute.Extension,
                                           Value = fileAttribute.Value
                                       };
         AuditDomainObject.AuditAttributes.Add(fileAttribute.Key, fileAttributeObject);
     }
     return AuditDomainObject;
 }
예제 #4
0
        public static Audit ConvertBinaryAttributes(AuditObject AuditDomainObject, Audit AuditRecord)
        {
            foreach (var binaryObject in AuditDomainObject.AuditAttributes.Where(P => P.Value is BinaryAuditAttributeObject))
            {
                var attribute = binaryObject.Value as BinaryAuditAttributeObject;

                if (attribute != null)
                {
                    var binaryAttribute = new BinaryAttribute
                                              {
                                                  Key = binaryObject.Key,
                                                  Value = attribute.Value,
                                                  DateCreated = attribute.DateCreated == DateTime.MinValue ? DateTime.Now : attribute.DateCreated,
                                                  DateUpdated = attribute.DateUpdated,
                                                  DateDeleted = attribute.DateDeleted,
                                              };
                    AuditRecord.Attribute.Add(binaryAttribute);
                }
            }
            return AuditRecord;
        }
예제 #5
0
        /// <summary>
        /// Domain to data access converter for FileAttributes
        /// </summary>
        /// <param name="AuditDomainObject"></param>
        /// <param name="AuditRecord"></param>
        /// <returns></returns>
        public static Audit ConvertFileAttributes(AuditObject AuditDomainObject, Audit AuditRecord)
        {
            var recordsToDelete = new List<string>();
            foreach (var attachmentObject in AuditDomainObject.AuditAttributes.Where(P => P.Value is FileAuditAttributeObject))
            {
                var attachment = attachmentObject.Value as FileAuditAttributeObject;

                if (attachment != null)
                {
                    var fileAttribute = new FileAttribute
                                            {
                                                Key = attachmentObject.Key,
                                                DateCreated =
                                                    attachment.DateCreated == DateTime.MinValue
                                                        ? DateTime.Now
                                                        : attachment.DateCreated,
                                                DateDeleted = attachment.DateDeleted,
                                                DateUpdated = attachment.DateUpdated,
                                                FileName = attachment.Name,
                                                Extension = attachment.Extension,
                                                Value = attachment.Value
                                            };
                    AuditRecord.Attribute.Add(fileAttribute);
                }
                recordsToDelete.Add(attachmentObject.Key);
            }
            recordsToDelete.ForEach(I => AuditDomainObject.AuditAttributes.Remove(I));
            return AuditRecord;
        }
예제 #6
0
        private static Audit Convert(AuditObject AuditRecord, AuditEntities Ctx)
        {
            var audit = new Audit
                            {
                                DateCreated = AuditRecord.DateCreated,
                                Application = string.IsNullOrEmpty(AuditRecord.Application) ? "UNKNOWN" : AuditRecord.Application
                            };

            var level = GetLevel(AuditRecord.Level, Ctx);
            if (level != null)
            {
                audit.AuditLevel = level;
            }
            else
            {
                throw new InvalidLevelException(string.Format("Audit Level {0} does not exist", AuditRecord.Level));
            }

            var organisation = GetOrganisation(AuditRecord.Organisation.Id, Ctx);
            if (organisation != null)
            {
                audit.Organisation = organisation;
            }
            else
            {
                throw new InvalidOrganisationException(string.Format("Organisation {0} does not exist", AuditRecord.Organisation.Id));
            }

            audit = ConvertFileAttributes(AuditRecord, audit);
            audit = ConvertStringAttributes(AuditRecord, audit);
            audit = ConvertBinaryAttributes(AuditRecord, audit);
            audit = ConvertTagAttributes(AuditRecord, audit, Ctx);
            return audit;
        }
예제 #7
0
        private static AuditObject Convert(Audit AuditRecord)
        {
            var auditObject = new AuditObject
                                  {
                                      DateCreated = AuditRecord.DateCreated,
                                      Level = AuditRecord.AuditLevel.Id,
                                      Application = AuditRecord.Application
                                  };

            auditObject = ConvertFileAttributes(AuditRecord, auditObject);
            auditObject = ConvertTagAttributes(AuditRecord, auditObject);
            auditObject = ConvertBinaryAttributes(AuditRecord, auditObject);
            auditObject = ConvertStringAttributes(AuditRecord, auditObject);
            auditObject = ConvertOrganisation(AuditRecord, auditObject);
            return auditObject;
        }
예제 #8
0
        /// <summary>
        /// Suspect this function is NOT USED !!!!!!
        /// </summary>
        /// <param name="SearchCriteria"></param>
        /// <returns></returns>
        public static List<AuditObject> Get(AuditObject SearchCriteria)
        {
            using (var ctx = new AuditEntities())
            {
                var records = from a in ctx.Entity.OfType<Audit>() select a;

                records = SearchCriteria.Tags.Aggregate(records, (Current, Record) => Current.Where(T => T.Tag.Any(R => R.TagName == Record)));
                return Convert(records.ToList());
            }
        }
예제 #9
0
        /// <summary>
        /// Convert the Tags from domain object to data object.  If the tag
        /// already exists in the database the tag will be attached to the
        /// existing record stopping duplicates being created.
        /// </summary>
        /// <param name="AuditDomainObject">Domain object with any tags associated.</param>
        /// <param name="AuditRecord">Audit data record where the tags need to
        /// be attached if they already exist and added if they do not.</param>
        /// <param name="Ctx">Context to manage the tags being attached or added.</param>
        /// <returns></returns>
        public static Audit ConvertTagAttributes(AuditObject AuditDomainObject, Audit AuditRecord, AuditEntities Ctx)
        {
            foreach (var tagObject in AuditDomainObject.Tags)
            {
                Tag tag = GetTag(tagObject, Ctx);

                if (tag != null)
                    AuditRecord.Tag.Add(tag);
                else
                {
                    var tagAttribute = new Tag
                                           {
                                               TagName = tagObject,
                                               DateCreated = DateTime.Now
                                           };
                    AuditRecord.Tag.Add(tagAttribute);
                }
            }
            return AuditRecord;
        }
예제 #10
0
 /// <summary>
 /// Function to take the tags on an Audit data record and apply them
 /// to the Audit domain object.
 /// </summary>
 /// <param name="AuditRecord">Data record with the tags associated to it.</param>
 /// <param name="AuditDomainObject">Audit domain object that will have the tags associated to.</param>
 /// <returns>returns a copy of the Audit Domain object with the tags associated.</returns>
 public static AuditObject ConvertTagAttributes(Entity AuditRecord, AuditObject AuditDomainObject)
 {
     foreach (var tagAuditAttribute in AuditRecord.Tag)
     {
         AuditDomainObject.Tags.Add(tagAuditAttribute.TagName);
     }
     return AuditDomainObject;
 }
예제 #11
0
        /// <summary>
        /// Domain to data access converter for FileAttributes
        /// </summary>
        /// <param name="AuditDomainObject"></param>
        /// <param name="AuditRecord"></param>
        /// <returns></returns>
        public static Audit ConvertStringAttributes(AuditObject AuditDomainObject, Audit AuditRecord)
        {
            foreach (var stringObject in AuditDomainObject.AuditAttributes.Where(P => P.Value is StringAuditAttributeObject))
            {
                var attribute = stringObject.Value as StringAuditAttributeObject;

                if (attribute != null)
                {
                    var stringAttribute = new StringAttribute
                                              {
                                                  Key = stringObject.Key,
                                                  Value = attribute.Value,
                                                  DateCreated = attribute.DateCreated == DateTime.MinValue
                                                                      ? DateTime.Now
                                                                      : attribute.DateCreated
                                              };
                    AuditRecord.Attribute.Add(stringAttribute);
                }
            }
            return AuditRecord;
        }
예제 #12
0
 public static AuditObject ConvertStringAttributes(Entity AuditRecord, AuditObject AuditDomainObject)
 {
     foreach (var stringAttribute in AuditRecord.Attribute.OfType<StringAttribute>())
     {
         AuditDomainObject.AuditAttributes.Add(stringAttribute.Key,
                                               new StringAuditAttributeObject
                                                   {
                                                       Value = stringAttribute.Value,
                                                       DateCreated = stringAttribute.DateCreated,
                                                       DateUpdated = stringAttribute.DateUpdated,
                                                       DateDeleted = stringAttribute.DateDeleted,
                                                   });
     }
     return AuditDomainObject;
 }
예제 #13
0
 /// <summary>
 /// Function that applies the Organisation to the Audit domain object.
 /// </summary>
 /// <param name="AuditRecord">Audit data object that has the
 /// organisation associated.</param>
 /// <param name="AuditDomainObject">Audit Domain object that will have
 /// the organisation associated to it.</param>
 /// <returns>Returns the audit domain object with the organisation
 /// associated.</returns>
 public static AuditObject ConvertOrganisation(Entity AuditRecord, AuditObject AuditDomainObject)
 {
     if (AuditDomainObject.Organisation == null)
         AuditDomainObject.Organisation = new OrganisationObject();
     AuditDomainObject.Organisation.Id = AuditRecord.Organisation.Id;
     AuditDomainObject.Organisation.Name = AuditRecord.Organisation.OrganisationName;
     return AuditDomainObject;
 }
예제 #14
0
        /// <summary>
        /// function that applies the Organisation to the Audit data object.
        /// The Organisation must already exist in the system.
        /// </summary>
        /// <param name="AuditDomainObject">Audit Domain object that has the associated Organisation</param>
        /// <param name="AuditRecord">Audit data object that will have the organisation associated to.</param>
        /// <returns>returns the Audit data object with the Organisation associated.</returns>
        public static Entity ConvertOrganisation(AuditObject AuditDomainObject, Entity AuditRecord)
        {
            if (AuditRecord.Organisation == null)
                AuditRecord.Organisation = new Organisation();

            AuditRecord.Organisation.Id = AuditDomainObject.Organisation.Id;
            AuditRecord.Organisation.OrganisationName = AuditDomainObject.Organisation.Name;

            return AuditRecord;
        }
예제 #15
0
 public static List<AuditObject> Get(AuditObject SearchObject)
 {
     return AuditDataAccess.Get(SearchObject);
 }
예제 #16
0
 public static int Add(AuditObject AuditRecord)
 {
     return AuditDataAccess.Add(AuditRecord);
 }