コード例 #1
0
 public ContractBuilder()
 {
     _id           = 1;
     _person       = null;
     _employer     = null;
     _workschedule = null;
 }
コード例 #2
0
 public Contract(long id, Person person, Employer employer, Workschedule workschedule)
 {
     Id           = id;
     Person       = person;
     Employer     = employer;
     Workschedule = workschedule;
 }
コード例 #3
0
ファイル: WSRepository.cs プロジェクト: POLSOFTEX/Przychodnia
        public async Task <Workschedule> GetUserWS(int userId)
        {
            var ws = await _context.Day
                     .Where(u => u.IdWsNavigation.IdUser == userId)
                     .ToListAsync();

            var dayList = new List <Day>();

            foreach (var item in ws)
            {
                dayList.Add(item);
            }

            var wsToReturn = new Workschedule()
            {
                IdUser = userId,
                Day    = dayList
            };

            return(wsToReturn);
        }
コード例 #4
0
 public ContractBuilder WithWorkschedule(Workschedule workschedule)
 {
     _workschedule = workschedule;
     return(this);
 }
コード例 #5
0
 public Contract CreateContract(long id, Person person, Employer employer, Workschedule workschedule)
 {
     return(new Contract(id, person, employer, workschedule));
 }
コード例 #6
0
ファイル: WSRepository.cs プロジェクト: POLSOFTEX/Przychodnia
        public async Task <Workschedule> GenerateUserWS(int userId, WorkScheduleNewDTO newWS, List <Day> vacList)
        {
            var user = await _context.User
                       .FirstOrDefaultAsync(u => u.IdUser == userId);

            var wsList     = new List <Workschedule>();
            var wsFromRepo = await GetUserWS(userId);

            for (int i = 0; i < newWS.NumberOfWeeks; i++)
            {
                var ws      = new Workschedule();
                var dayList = new List <Day>();

                foreach (var day in newWS.Day)
                {
                    Day newDay;
                    var fromTime = day.FromTime.AddDays(i * 7);
                    var toTime   = day.ToTime.AddDays(i * 7);

                    var vacDay     = vacList.FirstOrDefault(d => d.FromTime.DayOfYear == fromTime.DayOfYear);
                    var currentDay = wsFromRepo.Day.FirstOrDefault(d => d.FromTime.DayOfYear == fromTime.DayOfYear);
                    if (vacDay != null)
                    {
                        newDay = vacDay;
                        if (newDay.Type == "Zastepstwo")
                        {
                            newDay.FromTime = fromTime;
                            newDay.ToTime   = toTime;
                        }

                        if (currentDay != null)
                        {
                            _context.Remove(currentDay);
                        }

                        dayList.Add(newDay);
                        await _context.Day.AddAsync(newDay);
                    }
                    else if (currentDay == null)
                    {
                        newDay = new Day
                        {
                            FromTime       = fromTime,
                            ToTime         = toTime,
                            IdWsNavigation = ws,
                            Type           = "Praca"
                        };

                        dayList.Add(newDay);
                        await _context.Day.AddAsync(newDay);
                    }
                    else if (currentDay.Type == "Praca")
                    {
                        newDay = new Day
                        {
                            FromTime       = fromTime,
                            ToTime         = toTime,
                            IdWsNavigation = ws,
                            Type           = "Praca"
                        };

                        _context.Remove(currentDay);
                        dayList.Add(newDay);
                        await _context.Day.AddAsync(newDay);
                    }
                }
                ws.IdUserNavigation = user;
                ws.Day = dayList;

                wsList.Add(ws);
                await _context.Workschedule.AddAsync(ws);
            }
            await _context.SaveChangesAsync();

            var wsToReturn = await GetUserWS(userId);

            return(wsToReturn);
        }
コード例 #7
0
ファイル: WSRepository.cs プロジェクト: POLSOFTEX/Przychodnia
        public async Task <Workschedule> GenerateWS(IEnumerable <User> users, WorkScheduleNewDTO newWS)
        {
            foreach (var user in users)
            {
                var wsFromRepo = await GetUserWS(user.IdUser);

                var wsList = new List <Workschedule>();

                var userVac = await _context.Vacation
                              .Where(u => u.IdUserVac == user.IdUser)
                              .Include(a => a.IdAbsenceVacNavigation)
                              .Include(u => u.IdUserVacNavigation)
                              .ToListAsync();

                var vacList = VacationDaysToList(userVac);
                for (int i = 0; i < newWS.NumberOfWeeks; i++)
                {
                    var ws      = new Workschedule();
                    var dayList = new List <Day>();

                    foreach (var day in newWS.Day)
                    {
                        Day newDay;
                        var fromTime = day.FromTime.AddDays(i * 7);
                        var toTime   = day.ToTime.AddDays(i * 7);

                        var vacDay     = vacList.FirstOrDefault(d => d.FromTime.DayOfYear == fromTime.DayOfYear);
                        var currentDay = wsFromRepo.Day.FirstOrDefault(d => d.FromTime.DayOfYear == fromTime.DayOfYear);
                        if (vacDay != null)
                        {
                            newDay = vacDay;
                            if (newDay.Type == "Zastepstwo")
                            {
                                newDay.FromTime = fromTime;
                                newDay.ToTime   = toTime;
                            }

                            if (currentDay != null)
                            {
                                _context.Remove(currentDay);
                            }

                            dayList.Add(newDay);
                            await _context.Day.AddAsync(newDay);
                        }
                        else if (currentDay == null)
                        {
                            newDay = new Day
                            {
                                FromTime       = fromTime,
                                ToTime         = toTime,
                                IdWsNavigation = ws,
                                Type           = "Praca"
                            };

                            dayList.Add(newDay);
                            await _context.Day.AddAsync(newDay);
                        }
                        else if (currentDay.Type == "Praca")
                        {
                            newDay = new Day
                            {
                                FromTime       = fromTime,
                                ToTime         = toTime,
                                IdWsNavigation = ws,
                                Type           = "Praca"
                            };

                            _context.Remove(currentDay);
                            dayList.Add(newDay);
                            await _context.Day.AddAsync(newDay);
                        }
                    }
                    ws.IdUserNavigation = user;
                    ws.Day = dayList;

                    wsList.Add(ws);
                    await _context.Workschedule.AddAsync(ws);

                    await _context.SaveChangesAsync();
                }
            }
            return(null);
        }