Esempio n. 1
0
        public bool Update(int id, ExperimentRequest entity, HttpContext current)
        {
            var entityOld = _experimentRepository.GetById(id, new List <string>()
            {
                "Project.Company"
            });
            var company = _companyRepository.GetById(1, new List <string>()
            {
                "License.LicenseType"
            });
            var auditMetaData = new AuditTrailMetaData()
            {
                User             = _userRepository.GetById(1),
                Company          = company,
                Permission       = new PermissionEntity(),
                RequestMethod    = current.Request.HttpMethod,
                RequestBaseUrl   = current.Request.Path,
                RequestIpAddress = current.Request.UserHostAddress,
                License          = company.Licenses.Any(x => x.LicenseType.Name == "CFR")
            };

            //var update = ExperimentRequest.ToEntity(entity);
            //update.Id = id;
            entityOld.Name        = entity.Name;
            entityOld.Description = entity.Description;


            var success = false;

            success = _experimentRepository.Update(id, entityOld);
            success = _experimentRepository.SaveChanges(auditMetaData);
            return(success);
        }
Esempio n. 2
0
 public bool SaveChanges(AuditTrailMetaData auditTrailMetaData)
 {
     if (auditTrailMetaData.Company.Licenses.First(x => x.LicenseType.Name == "CFR") != null)
     {
         _auditTrailRepository.Capture(auditTrailMetaData);
     }
     return(_context.SaveChanges() > 0);
 }
Esempio n. 3
0
        public bool Delete(int id, HttpContext current)
        {
            var auditMetaData = new AuditTrailMetaData()
            {
                User             = _userRepository.GetById(1),
                Company          = _companyRepository.GetById(1),
                RequestMethod    = current.Request.HttpMethod,
                RequestBaseUrl   = current.Request.ToString(),
                RequestIpAddress = current.Request.UserHostAddress
            };

            _experimentRepository.Delete(id);
            return(_experimentRepository.SaveChanges(auditMetaData));
        }
Esempio n. 4
0
        public bool Create(ProjectRequest entity, HttpContext current)
        {
            var auditMetaData = new AuditTrailMetaData()
            {
                User       = _userRepository.GetById(1),
                Company    = _companyRepository.GetById(1),
                Permission = new PermissionEntity()
                {
                    Id = 1
                },
                RequestMethod    = current.Request.HttpMethod,
                RequestBaseUrl   = current.Request.Path,
                RequestIpAddress = current.Request.UserHostAddress
            };

            var success = false;

            success = _projectRepository.Create(ProjectRequest.ToEntity(entity));
            success = _projectRepository.SaveChanges(auditMetaData);
            return(success);
        }
Esempio n. 5
0
        public bool Create(ExperimentRequest entity, HttpContext current)
        {
            var auditMetaData = new AuditTrailMetaData()
            {
                User             = _userRepository.GetById(1),
                Company          = _companyRepository.GetById(1),
                Permission       = new PermissionEntity(),
                RequestMethod    = current.Request.HttpMethod,
                RequestBaseUrl   = current.Request.Path,
                RequestIpAddress = current.Request.UserHostAddress
            };

            Console.WriteLine(auditMetaData.RequestMethod + "aaa");
            Console.WriteLine(auditMetaData.RequestBaseUrl + " bbb");
            Console.WriteLine(auditMetaData.RequestIpAddress + "vvv");

            var success = false;

            success = _experimentRepository.Create(ExperimentRequest.ToEntity(entity));
            success = _experimentRepository.SaveChanges(auditMetaData);
            return(success);
        }
Esempio n. 6
0
        public bool Capture(AuditTrailMetaData auditTrailMetaData)
        {
            // Meta Data
            var user             = auditTrailMetaData.User;
            var company          = auditTrailMetaData.Company;
            var permission       = auditTrailMetaData.Permission;
            var requestMethod    = auditTrailMetaData.RequestMethod;
            var requestBaseUrl   = auditTrailMetaData.RequestBaseUrl;
            var requestIpAddress = auditTrailMetaData.RequestIpAddress;
            var license          = auditTrailMetaData.License;

            if (license == false)
            {
                license = company.Licenses.Any(x => x.LicenseType.Name == "CFR");
            }

            var now = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture);

            // Validation
            if (license == false)
            {
                return(false);
            }
            if (user == null)
            {
                throw new Exception("AuditTrail Error: User is mandatory");
            }
            if (company == null)
            {
                throw new Exception("AuditTrail Error: Company is mandatory");
            }
            if (permission == null)
            {
                throw new Exception("AuditTrail Error: Permission is mandatory");
            }
            if (requestIpAddress == null)
            {
                requestIpAddress = "Not specified";
            }
            if (requestMethod == null)
            {
                requestMethod = "Not specified";
            }
            if (requestBaseUrl == null)
            {
                requestBaseUrl = "Not specified";
            }


            var states =
                ((IObjectContextAdapter)_context).ObjectContext.ObjectStateManager.GetObjectStateEntries(
                    EntityState.Added | EntityState.Modified | EntityState.Deleted);

            foreach (var state in states)
            {
                switch (state.State)
                {
                case EntityState.Added:
                {
                    var auditTrailEntity = new AuditTrailEntity()
                    {
                        User       = user,
                        Company    = company,
                        Permission = permission,

                        RequestBaseUrl     = requestBaseUrl,
                        RequestMethod      = requestMethod,
                        RequestMethodColor = "Green",
                        IpAddress          = requestIpAddress,

                        Identifier = GetTableName(state),
                        PrimaryKey = GetPrimaryKey(state),

                        CreatedAt = now
                    };
                    _context.Set <AuditTrailEntity>().Add(auditTrailEntity);
                    return(true);
                }

                case EntityState.Modified:
                {
                    var logs = GetChanges();
                    if (logs.Count == 0)
                    {
                        return(false);
                    }
                    var auditTrailUpdate = new AuditTrailEntity()
                    {
                        User       = user,
                        Company    = company,
                        Permission = permission,

                        RequestBaseUrl     = requestBaseUrl,
                        RequestMethod      = requestMethod,
                        RequestMethodColor = "Yellow",
                        IpAddress          = requestIpAddress,

                        AuditTrailChangeLog = logs,

                        Identifier = GetTableName(state),
                        PrimaryKey = GetPrimaryKey(state),

                        CreatedAt = now.ToString(CultureInfo.InvariantCulture),
                    };

                    _context.Set <AuditTrailEntity>().Add(auditTrailUpdate);
                    return(true);
                }

                case EntityState.Deleted:
                {
                    var auditTrailEntity = new AuditTrailEntity()
                    {
                        User       = user,
                        Company    = company,
                        Permission = permission,

                        RequestBaseUrl     = requestBaseUrl,
                        RequestMethod      = requestMethod,
                        RequestMethodColor = "Red",
                        IpAddress          = requestIpAddress,

                        Identifier = GetTableName(state),
                        PrimaryKey = GetPrimaryKey(state),

                        CreatedAt = now
                    };
                    _context.Set <AuditTrailEntity>().Add(auditTrailEntity);
                    return(true);
                }

                case EntityState.Detached:
                {
                    break;
                }

                case EntityState.Unchanged:
                {
                    break;
                }

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            return(false);
        }
Esempio n. 7
0
 public bool SaveChanges(AuditTrailMetaData auditTrailMetaData)
 {
     _auditTrailRepository.Capture(auditTrailMetaData);
     return(_context.SaveChanges() > 0);
 }