コード例 #1
0
        private static void UpdateDisconnectedPeople()
        {
            Person janeDoe;

            using (var db = new AbsenceManagementContext()) {
                db.Database.Log = Console.WriteLine;
                janeDoe         = db.People
                                  .Where(p => p.FirstName == "Jane")
                                  .FirstOrDefault();
                PrintPerson(janeDoe);
            }

            janeDoe.GetType().GetProperty("FirstName").SetValue(janeDoe, "Jean");

            using (var db = new AbsenceManagementContext()) {
                db.Database.Log         = Console.WriteLine;
                db.Entry(janeDoe).State = EntityState.Modified;
                db.SaveChanges();
                PrintPerson(janeDoe);
            }

            janeDoe.GetType().GetProperty("FirstName").SetValue(janeDoe, "Jane");

            using (var db = new AbsenceManagementContext()) {
                db.Database.Log         = Console.WriteLine;
                db.Entry(janeDoe).State = EntityState.Modified;
                db.SaveChanges();
                PrintPerson(janeDoe);
            }
        }
コード例 #2
0
        private static void RemovePeople()
        {
            IList <Person> peopleToDelete;

            using (var db = new AbsenceManagementContext()) {
                db.Database.Log = Console.WriteLine;
                var pplRepo           = new EFDisconnectedPersonRepository(db);
                var peopleToDeleteIds = GetPeople().Select(p => p.DataSourceId);
                peopleToDelete = pplRepo.GetAll().Where(p => peopleToDeleteIds.Contains(p.DataSourceId)).ToList();
            }

            using (var db = new AbsenceManagementContext()) {
                db.Database.Log = Console.WriteLine;
                var pplRepo = new EFDisconnectedPersonRepository(db);
                foreach (var personToDelete in peopleToDelete)
                {
                    pplRepo.Delete(personToDelete);
                }
            }

            // NOTE: deleting could very well be done by going off to a stored procedure,
            // because retrieving and then doing another query for deletion
            // seems a bit much
            // Depends on the scenario
        }
コード例 #3
0
 private static void ListAllPeople()
 {
     using (var db = new AbsenceManagementContext()) {
         db.Database.Log = Console.WriteLine;
         var repo = new EFDisconnectedPersonRepository(db);
         PrintPerson(repo.GetAll().ToArray());
     }
 }
コード例 #4
0
 private static void RemoveRelationships()
 {
     using (var db = new AbsenceManagementContext()) {
         db.Database.Log = Console.WriteLine;
         db.Relations.RemoveRange(db.Relations.ToList());
         db.SaveChanges();
     }
 }
コード例 #5
0
 private static void InsertPeople()
 {
     using (var db = new AbsenceManagementContext()) {
         db.Database.Log = Console.WriteLine;
         var repo = new EFDisconnectedPersonRepository(db);
         foreach (var person in GetPeople())
         {
             repo.Add(person);
         }
     }
 }
コード例 #6
0
 public EFUnitOfWork(
     AbsenceManagementContext dataContext,
     IExternalLoginRepository externalLoginRepository,
     IRoleRepository roleRepository,
     IUserRepository userRepository
     )
 {
     Database = dataContext;
     ExternalLoginRepository = externalLoginRepository;
     RoleRepository          = roleRepository;
     UserRepository          = userRepository;
 }
コード例 #7
0
        public static AbsenceManagementContext GetTransientAbsenceManagementContext(
            IEnumerable <Person> people      = null,
            IEnumerable <Relation> relations = null
            )
        {
            var dbConnection = Effort.DbConnectionFactory.CreateTransient();
            var dbContext    = new AbsenceManagementContext(dbConnection);

            dbContext.People.AddRange(people ?? new List <Person>());
            dbContext.Relations.AddRange(relations ?? new List <Relation>());
            dbContext.SaveChanges();
            return(dbContext);
        }
コード例 #8
0
        private static AbsenceManagementContext SetupPersistentAbsenceManagementContext(
            string id = "_",
            IEnumerable <Person> people      = null,
            IEnumerable <Relation> relations = null
            )
        {
            var dbConnection = Effort.DbConnectionFactory.CreatePersistent(id);
            var dbContext    = new AbsenceManagementContext(dbConnection);

            dbContext.People.AddRange(people ?? new List <Person>());
            dbContext.Relations.AddRange(relations ?? new List <Relation>());
            dbContext.SaveChanges();
            return(dbContext);
        }
コード例 #9
0
        private static void InsertRelation()
        {
            using (var db = new AbsenceManagementContext()) {
                db.Database.Log = Console.WriteLine;
                var pplRepo = new EFDisconnectedPersonRepository(db);
                var relRepo = new EFDisconnectedRelationRepository(db);

                var janeDoe = pplRepo.GetAll()
                              .FirstOrDefault(p => p.FirstName == "Jane");
                var johnDoe = pplRepo.GetAll()
                              .FirstOrDefault(p => p.FirstName == "John");
                var relation = RelationBuilder
                               .CreateRelation(RelationType.ManagerToSubordinate)
                               .ForMaster(janeDoe)
                               .WithSlave(johnDoe)
                               .Build();
                relRepo.Add(relation);
            }
        }
コード例 #10
0
 public CoverageController(UserManager <User> userM, AbsenceManagementContext ctx)
 {
     userManager = userM;
     data        = new UnitOfWork(ctx);
 }
コード例 #11
0
 public AbsenceTypeController(AbsenceManagementContext ctx)
 {
     data = new UnitOfWork(ctx);
 }
コード例 #12
0
 //Constructor
 public UnitOfWork(AbsenceManagementContext ctx)
 {
     context = ctx;
 }
コード例 #13
0
 //Constructor
 public Repository(AbsenceManagementContext ctx)
 {
     context = ctx;
     dbSet   = context.Set <T>(); //Will hold the DbSet<TEntity>
 }
 public AccountController(UserManager <User> userM, SignInManager <User> signInM, AbsenceManagementContext ctx)
 {
     userManager   = userM;
     signInManager = signInM;
     data          = new UnitOfWork(ctx);
 }
コード例 #15
0
 public UserController(UserManager <User> userM, RoleManager <IdentityRole> roleM, AbsenceManagementContext ctx)
 {
     userManager = userM;
     roleManager = roleM;
     data        = new UnitOfWork(ctx);
 }