示例#1
0
        public static UserInfoModel UpdateUserRole(ApplicationDbContext database, ClaimsPrincipal user, RoleType roleType)
        {
            var userInfo = GetContextUserInfo(database, user);
            var userRole = database.Roles.Find(userInfo.RoleID);

            if (userRole.Type == roleType)
            {
                return(userInfo);
            }

            var newRole = database.Roles.FirstOrDefault(r => r.Type == roleType);

            userInfo.RoleID = newRole.ID;

            database.UserInfos.Update(userInfo);
            database.SaveChanges();

            LoggingUtil.AddEntry(user.Identity.Name, $"User role changed from {userRole.Name} to {newRole.Name}");

            return(userInfo);
        }
示例#2
0
        public static async Task <bool> ImportApplicationData(ApplicationDbContext database, AppDataModel data)
        {
            try
            {
                // Categories
                foreach (var category in data.Categories)
                {
                    var exists = await database.Categories.FirstOrDefaultAsync(x => x.ID == category.ID) != null;

                    if (!exists)
                    {
                        database.Categories.Add(category);
                    }
                }

                await database.SaveChangesAsync();

                // CategoryTests
                foreach (var test in data.CategoryTests)
                {
                    var exists = await database.Categories.FirstOrDefaultAsync(x => x.ID == test.ID) != null;

                    if (!exists)
                    {
                        database.CategoryTests.Add(test);
                    }
                }

                await database.SaveChangesAsync();

                // Scorecards
                foreach (var scorecard in data.Scorecards)
                {
                    var exists = await database.Scorecards.FirstOrDefaultAsync(x => x.ID == scorecard.ID) != null;

                    if (!exists)
                    {
                        database.Scorecards.Add(scorecard);
                    }
                }

                await database.SaveChangesAsync();

                // ScorecardTests
                foreach (var test in data.ScorecardTests)
                {
                    var exists = await database.ScorecardTests.FirstOrDefaultAsync(x => x.ID == test.ID) != null;

                    if (!exists)
                    {
                        database.ScorecardTests.Add(test);
                    }
                }

                await database.SaveChangesAsync();

                // ScorecardsInProgress
                foreach (var progress in data.ScorecardsInProgress)
                {
                    var exists = await database.ScorecardsInProgress.FirstOrDefaultAsync(x => x.ID == progress.ID) != null;

                    if (!exists)
                    {
                        database.ScorecardsInProgress.Add(progress);
                    }
                }

                await database.SaveChangesAsync();

                // ScorecardResults
                foreach (var results in data.ScorecardResults)
                {
                    var exists = await database.ScorecardResults.FirstOrDefaultAsync(x => x.ID == results.ID) != null;

                    if (!exists)
                    {
                        database.ScorecardResults.Add(results);
                    }
                }

                await database.SaveChangesAsync();

                // Tasks
                foreach (var task in data.Tasks)
                {
                    var exists = await database.Tasks.FirstOrDefaultAsync(x => x.ID == task.ID) != null;

                    if (!exists)
                    {
                        database.Tasks.Add(task);
                    }
                }

                await database.SaveChangesAsync();

                // TaskHistory
                foreach (var history in data.TaskHistory)
                {
                    var exists = await database.TaskHistory.FirstOrDefaultAsync(x => x.ID == history.ID) != null;

                    if (!exists)
                    {
                        database.TaskHistory.Add(history);
                    }
                }

                await database.SaveChangesAsync();

                // TaskComments
                foreach (var comment in data.TaskComments)
                {
                    var exists = await database.TaskComments.FirstOrDefaultAsync(x => x.ID == comment.ID) != null;

                    if (!exists)
                    {
                        database.TaskComments.Add(comment);
                    }
                }

                await database.SaveChangesAsync();

                // Roles
                foreach (var role in data.Roles)
                {
                    var exists = await database.Roles.FirstOrDefaultAsync(x => x.ID == role.ID) != null;

                    if (!exists)
                    {
                        database.Roles.Add(role);
                    }
                }

                await database.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                LoggingUtil.AddException(ex);

                return(false);
            }
        }
示例#3
0
 public static void Initialize()
 {
     _instance = new LoggingUtil();
 }