コード例 #1
0
        public DepartmentViewModel()
        {
            DepartmentCommands = new DepartmentCommands();

            using (WorkDbContext db = new WorkDbContext())
            {
                Departments = new ObservableCollection <Department>();

                foreach (var department in db.Departments)
                {
                    Departments.Add(department);
                }

                Persons = new List <Person>();
                foreach (var person in db.Persons)
                {
                    Persons.Add(person);
                }
            }

            DepartmentCollectionView    = CollectionViewSource.GetDefaultView(Departments);
            TemporarySelectedDepartment = new Department();

            if (Application.Current.MainWindow != null)
            {
                int id = (Application.Current.MainWindow.DataContext as MainViewModel)?.NavigationId ?? 0;
                DepartmentCollectionView.MoveCurrentTo(Departments.FirstOrDefault(x => x.Id == id));
            }
        }
コード例 #2
0
 public static void MultiBulkMerge <T1, T2, T3, T4>(this WorkDbContext dbContext, IList <T1> list1, IList <T2> list2, IList <T3> list3, IList <T4> list4)
     where T1 : class where T2 : class where T3 : class where T4 : class
 {
     dbContext.BulkMerge(list1, options =>
     {
         options.InsertKeepIdentity = true;
         options.MergeKeepIdentity  = true;
         options.InsertIfNotExists  = true;
     });
     dbContext.BulkMerge(list2, options =>
     {
         options.InsertKeepIdentity = true;
         options.MergeKeepIdentity  = true;
         options.InsertIfNotExists  = true;
     });
     dbContext.BulkMerge(list3, options =>
     {
         options.InsertKeepIdentity = true;
         options.MergeKeepIdentity  = true;
         options.InsertIfNotExists  = true;
     });
     dbContext.BulkMerge(list4, options =>
     {
         options.InsertKeepIdentity = true;
         options.MergeKeepIdentity  = true;
         options.InsertIfNotExists  = true;
     });
 }
コード例 #3
0
        GetUnique(this IList <Charger> chargers, WorkDbContext workDbContext)
        {
            var newChangers = chargers.Where(c =>
                                             !workDbContext.Chargers.Any() || workDbContext.Chargers.Any(cDb => cDb.Id != c.Id)).ToList();
            var address = newChangers.Select(c => c.AddressInfo)
                          .Where(a => !workDbContext.ChargerAddresses.Any() ||
                                 workDbContext.ChargerAddresses.Any(ca => ca.Id != a.Id))
                          .ToList();
            var connections = newChangers.SelectMany(c =>
            {
                c.Connections.ForAll(con => con.ChargerId = c.Id);
                return(c.Connections);
            }).Where(c =>
                     !workDbContext.ChargerConnections.Any() ||
                     workDbContext.ChargerConnections.Any(cc => cc.Id != c.Id))
                              .ToList();
            var media = newChangers.SelectMany(c =>
            {
                c.MediaItems.ForAll(con => con.ChargerId = c.Id);
                return(c.MediaItems);
            }).Where(m =>
                     !workDbContext.ChargerMedias.Any() || workDbContext.ChargerMedias.Any(cm => cm.Id != m.Id))
                        .ToList();

            return(newChangers, address, connections, media);
        }
コード例 #4
0
 public ChargerService(IOpenChargeHttpClient openChargeHttpClient, WorkDbContext workDbContext, IMapper mapper, IBackgroundJobClient backgroundJobClient)
 {
     _openChargeHttpClient = openChargeHttpClient;
     _workDbContext        = workDbContext;
     _mapper = mapper;
     _backgroundJobClient = backgroundJobClient;
 }
コード例 #5
0
ファイル: DataAccessTests.cs プロジェクト: e0gen/MultiSearch
        public async Task FilterWebPagesAsync()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <WorkDbContext>()
                          .UseInMemoryDatabase(databaseName: "FindSearches")
                          .Options;

            // Act
            using (var context = new WorkDbContext(options))
            {
                context.WebPages.Add(new WebPageEntity("My cat", "AAA", "AAA", "AAA", "Google"));
                context.WebPages.Add(new WebPageEntity("Her cats", "AAA", "AAA", "AAA", "Yandex"));
                context.WebPages.Add(new WebPageEntity("His dogs", "AAA", "AAA", "AAA", "Bing"));
                context.SaveChanges();
            }

            // Assert
            using (var context = new WorkDbContext(options))
            {
                var sut    = new WebPageService(context);
                var result = await sut.GetWebPagesAsync("cat");

                Assert.AreEqual(2, result.Count);
            }
        }
コード例 #6
0
ファイル: DataAccessTests.cs プロジェクト: e0gen/MultiSearch
        public async Task AddWebPageToDbAsync()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <WorkDbContext>()
                          .UseInMemoryDatabase(databaseName: "AddItemsToDb")
                          .Options;

            // Act
            using (var context = new WorkDbContext(options))
            {
                var sut = new WebPageService(context);
                await sut.AddWebPageAsync(new WebPage("Sample", "Sample", "Sample", "Sample", "Sample"));

                await context.SaveChangesAsync();
            }

            using (var context = new WorkDbContext(options))
            {
                Assert.AreEqual(1, context.WebPages.Count());
                Assert.AreEqual("Sample", context.WebPages.Single().Title);
            }
        }
コード例 #7
0
ファイル: OrderViewModel.cs プロジェクト: Art8m/WpfTest
        public OrderViewModel()
        {
            OrderCommands = new OrderCommands();

            using (WorkDbContext db = new WorkDbContext())
            {
                Orders = new ObservableCollection <Order>();

                foreach (var Order in db.Orders)
                {
                    Orders.Add(Order);
                }

                Persons = new List <Person>();
                foreach (var person in db.Persons)
                {
                    Persons.Add(person);
                }
            }

            OrderCollectionView    = CollectionViewSource.GetDefaultView(Orders);
            TemporarySelectedOrder = new Order();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            using var db = new WorkDbContext();
            // Linq 분류(2가지)
            // 1. 쿼리 구문
            // from user in Users
            // where ....
            // select new ...

            // 2. 메서드 구문
            // db.Users.Where().ToList();


            // 1. SELECT 쿼리
            // 1) DbSet<Login_infors> selectList = db.Login_infor;
            // 2) List<Login_infors> selectList = db.Login_infor.ToList().Where().OrderBy();
            // 3) IEnumerable<Login_infors> selectList = db.Login_infor.AsEnumerable();
            // 4) IQueryable<Login_infors> selectList = from Login_infors in db.Login_infor select Login_infors;    // linq to Sql

            // IEnumerable vs IQueryable
            // Extension Query => 작성 가능
            // 1. IEnumerable => 쿼리 => 데이터 => Client com => Slow
            // 2. IQueryable => 쿼리 => 데이터 => Server (메모리상에 있는 데이터를 가공) => Fast

            //var selectList = db.Login_infor.ToList();
            //foreach (var item in selectList)
            //{
            //   Console.WriteLine(item.StaffName);
            //}

            // var user = new Login_infors{SeqId=4, StaffName="장길동"};

            // 2. INSERT 쿼리
            // db.Login_infor.Add(user);
            // db.SaveChanges(); // = insert, update, delete 실행 후 db에 반영 // commit
            // 3. UPDATE 쿼리
            // db.Entry(user).State = EntityState.Modified;
            // db.SaveChanges();
            // 4. DELETE 쿼리
            // DELETE FROM USer WHERE UserId = 2;
            // var user1 = new Login_infors { SeqId = 2};
            // db.Login_infor.Remove(user1);
            // db.SaveChanges();

            // # .WHere(), OrderBy()
            // 1. .Where() -> 조건절 - > 리스트가 가능
            // var list = db.Login_infor.ToList();

            // SELECT * FROM Users WHERE UserId = 1

            //var list1 = db.Login_infor.Where(i => i.CompanyName == "동천(주)");
            //Console.WriteLine("시작");
            //foreach (var user2 in list1)
            //{
            //    Console.WriteLine($"{user2.SeqId}.{user2.StaffName}");
            //}

            // # 특정 데이터 1개 가져오기
            // .First(), .FirstOrDefault(), .Single(), SingleOrDefault()
            //var user3 = db.Login_infor.First(u => u.CompanyName == "동천(주)");
            //Console.WriteLine(user3.SeqId);
            // SingleOrDefault() vs FirstOrDefault()
            // SingleOrDefault() 권장.

            // # OrderBy()  1 2 3 4 5 6
            // # OrderByDecending() 6 5 4 3 2 1
            // var list2 = db.Login_infor.OrderBy(i => i.StaffName).ToList();

            var list2 = from Login_infors in db.Login_infor
                        join 출퇴근기록_집계표s in db.출퇴근기록_집계표
                        on Login_infors.StaffID equals 출퇴근기록_집계표s.StaffID
                        where Login_infors.CompanyName == "동천(주)"
                        select Login_infors;

            //.Include(u => u.출퇴근기록_집계표)
            //.Where(i => i.CompanyName == "동천(주)");
            foreach (var user4 in list2)
            {
                Console.WriteLine($"{user4.SeqId}.{user4.StaffName}({user4.StaffID}, {user4.출퇴근기록_집계표s.기준일})");
            }
        }
コード例 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GenegalCRUDRepository"/> class.
 /// </summary>
 /// <param name="context">Navi業務DBContext</param>
 /// <param name="httpContextAccessor">HttpContext</param>
 public CRUDRepository(WorkDbContext context)
 {
     _context = context;
 }
コード例 #10
0
 public GenericRepository(WorkDbContext db)
 {
     this._db   = db;
     this.dbSet = _db.Set <T>();
 }
コード例 #11
0
 public DbInitializerService(WorkDbContext context)
 {
     this.context = context;
 }
コード例 #12
0
 public BackgroundDbWorker(WorkDbContext workDbContext)
 {
     _workDbContext = workDbContext;
 }
コード例 #13
0
 public DepartmentController(ILogger <DepartmentController> logger, WorkDbContext db)
 {
     _logger = logger;
     _db     = db;
 }
コード例 #14
0
 public EmployeesRepository(WorkDbContext db) : base(db)
 {
 }
コード例 #15
0
 public WorkUnitOfWork(WorkDbContext dbContext) : base(dbContext)
 {
 }
コード例 #16
0
 public EmployeeController(WorkDbContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
コード例 #17
0
 public LoginRepository(WorkDbContext context)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
 }
コード例 #18
0
 public ManagerController(WorkDbContext context)
 {
     this.context = context;
 }
コード例 #19
0
 public CompanyRepository(WorkDbContext context, IPropertyMappingService propertyMappingService)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
     _propertyMappingService = propertyMappingService ?? throw new ArgumentNullException(nameof(propertyMappingService));
 }