Example #1
0
 public string[] GetObjectNames(string schemaName, string typeCode)
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.Set <string>().FromSql($"GetAllObjectNames {schemaName}, {typeCode}").Select(x => new string(x)).ToArray());
     }
 }
Example #2
0
 public List <DDLAuditClaimedObjectDomain> GetClaimedObjectsByReleaseDate(DateTime releaseDate)
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.ClaimedObjects.Where(z => !string.IsNullOrEmpty(z.ProjectLabel.ReleaseDate.ToString())
             ? z.ProjectLabel.ReleaseDate == releaseDate.Date
             : z.ReleaseDate == releaseDate.Date)
                .Where(x => x.ProjectLabel.IsJunk != true)
                .Select(a =>
                        new DDLAuditClaimedObjectDomain
         {
             Id = a.Id,
             ReleaseDate = a.ReleaseDate,
             Notes = a.Notes,
             ObjectDatabase = a.ObjectDatabase,
             ObjectName = a.ObjectName,
             ObjectSchema = a.ObjectSchema,
             ObjectType = a.ObjectType,
             Username = a.Username,
             Label = ctx.ProjectLabels.Select(l => new ProjectLabelDomain
             {
                 Id = l.Id,
                 Name = l.Name,
                 ReleaseDate = l.ReleaseDate
             }).FirstOrDefault(l => l.Id == a.ProjectLabelId)
         }).ToList());
     }
 }
Example #3
0
 //ToDo: Change to LINQ SQL or Stored Proc
 public List <DatabaseObject> GetClaimedDatabaseObjects(DateTime minimumDateTime)
 {
     using (var ctx = new smbimContext())
     {
         throw new NotImplementedException();
     }
 }
Example #4
0
        public List <DDLAuditClaimedObjectDomain> GetClaimedObjects(string loginUserName, DateTime minimumDateTime)
        {
            var yesterday = DateTime.Today.AddDays(-1);

            using (var ctx = new smbimContext())
            {
                return
                    (ctx.ClaimedObjects.Where(
                         x => x.Username.Equals(loginUserName, StringComparison.InvariantCultureIgnoreCase))
                     .Where(x => x.Username.Equals(loginUserName, StringComparison.InvariantCultureIgnoreCase))
                     .Where(z => z.ReleaseDate >= minimumDateTime)
                     .Where(x => x.ProjectLabel.IsJunk != true)
                     .Select(a =>
                             new DDLAuditClaimedObjectDomain
                {
                    Id = a.Id,
                    ReleaseDate = a.ReleaseDate,
                    Notes = a.Notes,
                    ObjectDatabase = a.ObjectDatabase,
                    ObjectName = a.ObjectName,
                    ObjectSchema = a.ObjectSchema,
                    ObjectType = a.ObjectType,
                    Username = a.Username,
                    Label = ctx.ProjectLabels.Select(l => new ProjectLabelDomain
                    {
                        Id = l.Id,
                        Name = l.Name,
                        ReleaseDate = l.ReleaseDate
                    }).FirstOrDefault(l => l.Id == a.ProjectLabelId)
                }).ToList());
            }
        }
Example #5
0
 public List <AuditLog> GetDdlAudit(int id)
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.AuditLog.Where(x => x.Id == id).ToList());
     }
 }
Example #6
0
 public List <string> GetDdlAutitsForChart(DateTime minimumDate)
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.AuditLog.Where(x => x.PostTime >= minimumDate).Select(m => m.Login.Remove(0, 6)).ToList());
     }
 }
Example #7
0
        public int GetCountOfTeamClaimedObjects(DateTime minimumDateTime)
        {
            int countOfResults;
            var yesterday = DateTime.Today.AddDays(-1);

            using (var ctx = new smbimContext())
            {
                var userDdlRecords = (from ddl in ctx.AuditLog
                                      select new { ddl.ObjectName, ddl.ObjectSchema, ddl.DatabaseName }).Distinct().AsQueryable();
                var newClaimed = from newToClaim in ctx.ClaimedObjects
                                 where newToClaim.ReleaseDate >= minimumDateTime
                                 where newToClaim.ReleaseDate >= yesterday
                                 where newToClaim.ProjectLabel.IsJunk != true
                                 select newToClaim;
                var query = from qry in userDdlRecords
                            join claimed in newClaimed on new
                {
                    ObjectName     = qry.ObjectName,
                    ObjectSchema   = qry.ObjectSchema,
                    ObjectDatabase = qry.DatabaseName
                }
                equals new
                {
                    ObjectName     = claimed.ObjectName,
                    ObjectSchema   = claimed.ObjectSchema,
                    ObjectDatabase = claimed.ObjectDatabase
                }
                select qry;

                countOfResults = query.Distinct().Count();
            }

            return(countOfResults);
        }
Example #8
0
        public static List <T> RawSqlQuery <T>(string query, Func <DbDataReader, T> map)
        {
            using (var context = new smbimContext())
            {
                using (var command = context.Database.GetDbConnection().CreateCommand())
                {
                    command.CommandText = query;
                    command.CommandType = CommandType.Text;

                    context.Database.OpenConnection();

                    using (var result = command.ExecuteReader())
                    {
                        var entities = new List <T>();

                        while (result.Read())
                        {
                            entities.Add(map(result));
                        }

                        return(entities);
                    }
                }
            }
        }
Example #9
0
        public int GetCountOfTeamUnclaimedObjects(DateTime minimumDateTime)
        {
            int countOfResults;

            using (var ctx = new smbimContext())
            {
                countOfResults = ctx.AuditLog.FromSql($"GetUnclaimedDatabaseObjects {minimumDateTime}, null").Count();
            }

            return(countOfResults);
        }
Example #10
0
        public int GetCountOfUserUnclaimedObjects(string username, DateTime minimumDateTime)
        {
            int countOfResults;

            using (var ctx = new smbimContext())
            {
                countOfResults = ctx.AuditLog.FromSql($"GetUnclaimedDatabaseObjects {minimumDateTime}, {username}").Count();
            }

            return(countOfResults);
        }
Example #11
0
 public List <ProjectLabelDomain> GetProjectLabels()
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.ProjectLabels.Select(p =>
                                         new ProjectLabelDomain
         {
             Id = p.Id,
             Name = p.Name,
             ReleaseDate = p.ReleaseDate
         }).OrderBy(p => p.Name).ToList());
     }
 }
Example #12
0
 public void DeleteLabel(ProjectLabelDomain label)
 {
     if (label != null)
     {
         using (var ctx = new smbimContext())
         {
             ProjectLabels deleteLabel = ctx.ProjectLabels.FirstOrDefault(l => l.Id == label.Id);
             if (deleteLabel != null)
             {
                 ctx.ProjectLabels.Remove(deleteLabel);
                 ctx.SaveChanges();
             }
         }
     }
 }
Example #13
0
        public List <DatabaseObject> GetUnclaimedDatabaseObjects(string developerUserName, DateTime minimumDateTime)
        {
            using (var ctx = new smbimContext())
            {
                var returnResults = ctx.AuditLog.FromSql($"GetUnclaimedDatabaseObjects {minimumDateTime}, {developerUserName}").AsNoTracking().ToList();

                return(returnResults
                       .Select(r => new DatabaseObject
                {
                    DatabaseName = r.DatabaseName,
                    ObjectSchema = r.ObjectSchema,
                    ObjectName = r.ObjectName,
                    Category = r.ObjectType
                }).GroupBy(x => new { x.DatabaseName, x.ObjectSchema, x.ObjectName }).Select(y => y.First()).ToList());
            }
        }
Example #14
0
 public void DeleteClaimedObject(int claimedObjectId)
 {
     using (var ctx = new smbimContext())
     {
         try
         {
             var claimedObject = ctx.ClaimedObjects.Single(x => x.Id == claimedObjectId);
             ctx.ClaimedObjects.Remove(claimedObject);
             ctx.SaveChanges();
         }
         catch (InvalidOperationException)
         {
             throw new ApplicationException("Claimed Object does not exist");
         }
     }
 }
Example #15
0
 //ToDo: Change to LINQ SQL or Stored Proc
 public List <DatabaseObject> GetClaimedDatabaseObjects(string userName, DateTime minimumDateTime)
 {
     using (var ctx = new smbimContext())
     {
         //Select(d =>
         //new DatabaseObject
         //{
         //    DatabaseName = d.DatabaseName,
         //    LastDdlChange = d.LastDdlChange,
         //    ObjectSchema = d.ObjectSchema,
         //    ObjectName = d.ObjectName
         //}
         //).ToList();
         throw new NotImplementedException();
     }
 }
Example #16
0
        public void DeleteIgnoredDatabaseObject(int id)
        {
            using (var ctx = new smbimContext())
            {
                try
                {
                    var ignoredObjectRecord = ctx.IgnoredObjects.Single(x => x.Id == id);

                    ctx.IgnoredObjects.Remove(ignoredObjectRecord);
                    ctx.SaveChanges();
                }
                catch (InvalidOperationException)
                {
                    throw new ApplicationException("Ignored Object Record Not Found.");
                }
            }
        }
Example #17
0
 public List <AuditRecord> GetDdlAudits(DateTime minimumDate, string developer)
 {
     using (var ctx = new smbimContext())
     {
         return(ctx.AuditLog.Where(x => x.PostTime >= minimumDate && x.Login.Contains(developer)).Select(m => new AuditRecord
         {
             DatabaseName = m.DatabaseName,
             Event = m.Event,
             Id = m.Id,
             ObjectName = string.IsNullOrEmpty(m.ParentTable) ? m.ObjectName : m.ParentTable,
             ObjectType = m.ObjectType,
             ObjectSchema = m.ObjectSchema,
             PostDateTime = m.PostTime,
             User = m.Login
         }).ToList());
     }
 }
Example #18
0
        public void AddIgnoredDatabaseObject(string objectName, string objectSchema, string objectDatabase,
                                             string userName)
        {
            using (var ctx = new smbimContext())
            {
                var ignoredObjectRecord = new IgnoredObjects
                {
                    IgnoredByTime  = DateTime.Now,
                    IgnoredByUser  = userName,
                    ObjectName     = objectName,
                    ObjectSchema   = objectSchema,
                    ObjectDatabase = objectDatabase
                };

                ctx.IgnoredObjects.Add(ignoredObjectRecord);
                ctx.SaveChanges();
            }
        }
Example #19
0
 public void AddLabel(ProjectLabelDomain label)
 {
     if (label == null)
     {
         return;
     }
     using (var ctx = new smbimContext())
     {
         var insertLabel = new ProjectLabels
         {
             Name        = label.Name,
             ReleaseDate = label.ReleaseDate,
             IsJunk      = label.IsJunk
         };
         ctx.ProjectLabels.Add(insertLabel);
         ctx.SaveChanges();
     }
 }
Example #20
0
        public List <IgnoredDatabaseObject> GetIgnoredDatabaseObjects()
        {
            var dateWindow = DateTime.Now.AddMonths(-1);

            using (var ctx = new smbimContext())
            {
                return
                    (ctx.IgnoredObjects.Where(x => x.IgnoredByTime >= dateWindow)
                     .Select(x => new IgnoredDatabaseObject
                {
                    Id = x.Id,
                    ObjectName = x.ObjectName,
                    ObjectSchema = x.ObjectSchema,
                    ObjectDatabase = x.ObjectDatabase,
                    IgnoredByUser = x.IgnoredByUser,
                    IgnoredByTime = x.IgnoredByTime
                }).ToList());
            }
        }
Example #21
0
 public void UpdateLabel(ProjectLabelDomain label)
 {
     if (label == null)
     {
         return;
     }
     using (var ctx = new smbimContext())
     {
         var editLabel = ctx.ProjectLabels.FirstOrDefault(l => l.Id == label.Id);
         if (editLabel == null)
         {
             return;
         }
         editLabel.Name        = label.Name;
         editLabel.ReleaseDate = label.ReleaseDate;
         editLabel.IsJunk      = label.IsJunk;
         ctx.SaveChanges();
     }
 }
Example #22
0
        public List <DatabaseObjectStatus> GetObjectsWithUnclimainedChangesByDatabaseAndType(string databaseName, DatabaseObjectTypeCode type, DateTime startDate, string userName)
        {
            List <DatabaseObjectStatus> statusList = new List <DatabaseObjectStatus>();

            using (var ctx = new smbimContext())
            {
                var unclaimedChanges = ctx.AuditLog.FromSql($"GetUnclaimedDatabaseObjects {startDate}, {userName}").
                                       Where(u => string.Compare(u.ObjectType, UtilityRepository.DatabaseReadableTypeCodesLookup[type], StringComparison.OrdinalIgnoreCase) == 0).ToList();
                statusList.AddRange(unclaimedChanges.Select(change => new DatabaseObjectStatus
                {
                    ObjectInformation = new DatabaseObjectBasicInformation
                    {
                        DatabaseName = databaseName,
                        ObjectName   = change.ObjectName,
                        ObjectSchema = change.ObjectSchema
                    },
                    HasUnclaimedChanges = true
                }));
                return(statusList);
            }
        }
Example #23
0
 public void ClaimAuditRecord(string userName, DateTime?releaseDate, string objectName, string objectSchema,
                              string objectDatabase, string objectType, string notes, int projectLabelId)
 {
     if (releaseDate == null && projectLabelId == 0)
     {
         throw new ArgumentException("Either a release date or project label is needed.");
     }
     if (string.IsNullOrEmpty(userName))
     {
         throw new ArgumentException("User is required.");
     }
     if (string.IsNullOrEmpty(objectName))
     {
         throw new ArgumentException("Object Name is required.");
     }
     if (string.IsNullOrEmpty(objectSchema))
     {
         throw new ArgumentException("Object Schema is required.");
     }
     if (string.IsNullOrEmpty(objectDatabase))
     {
         throw new ArgumentException("Object Database is required.");
     }
     using (var ctx = new smbimContext())
     {
         var claimedObject = new ClaimedObjects
         {
             Username       = userName,
             ReleaseDate    = releaseDate?.Date,
             ObjectName     = objectName,
             ObjectSchema   = objectSchema,
             ObjectDatabase = objectDatabase,
             ObjectType     = objectType,
             Notes          = notes,
             ProjectLabelId = projectLabelId == 0 ? (int?)null : projectLabelId
         };
         ctx.ClaimedObjects.Add(claimedObject);
         ctx.SaveChanges();
     }
 }