private void ExecuteInsertRSMethod(object obj) { if (SelectedService == null) { MessageBox.Show("추가할 서비스를 선택해주세요."); return; } List <ReservedServiceVo> list = _reservedServiceRepository.GetReservedServices(SelectedRes.ResNum); if (list.FirstOrDefault(x => (x.SerId == SelectedService.ServiceId)) != null) { MessageBox.Show("이미 존재하는 서비스입니다."); return; } ReservedServiceVo rv = new ReservedServiceVo(); rv.ResNum = SelectedRes.ResNum; rv.SerId = SelectedService.ServiceId; ServiceVo s = ServiceList.Single(x => x.ServiceId == rv.SerId); ushort serviceTime = s.ServiceTime; if (HasReservations(SelectedRes.StylistId, SelectedRes.EndAt, SelectedRes.EndAt + new TimeSpan(serviceTime / 60, serviceTime % 60, 0))) { MessageBox.Show("이미 예약이 존재한 시간대입니다."); return; } _reservedServiceRepository.InsertReservedService(rv); ServiceCommands.Add(new DataCommandViewModel <ReservedServiceVo>(SelectedService.ServiceName, new Command(RemoveRS), rv)); TimeSpan ts = new TimeSpan(SelectedService.ServiceTime / 60, SelectedService.ServiceTime % 60, 0); SelectedRes.EndAt = SelectedRes.EndAt + ts; _reservationRepository.UpdateReservation(SelectedRes); }
private void onSelectedResChanged(uint resNum) { List <ReservedServiceVo> list = _reservedServiceRepository.GetReservedServices(resNum); ServiceCommands.Clear(); foreach (var v in list) { string serviceName = ServiceList.Single(x => (x.ServiceId == v.SerId)).ServiceName; ServiceCommands.Add(new DataCommandViewModel <ReservedServiceVo>(serviceName, new Command(RemoveRS), v)); } }
private void RemoveRS(object obj) { ReservedServiceVo rsv = (ReservedServiceVo)obj; _reservedServiceRepository.RemoveReservedService(rsv.ResNum, rsv.SerId); ServiceCommands.Remove(ServiceCommands.Single(x => (x.Data == rsv))); ServiceVo s = ServiceList.Single(x => x.ServiceId == rsv.SerId); ReservationVo r = ResList.Single(x => x.ResNum == rsv.ResNum); TimeSpan ts = new TimeSpan(s.ServiceTime / 60, s.ServiceTime % 60, 0); r.EndAt = r.EndAt - ts; _reservationRepository.UpdateReservation(r); }
private void ExecuteModifyMethod(object obj) { if (!Check(SelectedRes)) { return; } int dayInterval = (SelectedRes.StartAt.Date - formerDate.Date).Days; int hourInterval = SelectedRes.StartAt.Hour - formerDate.Hour; int minInterval = SelectedRes.StartAt.Minute - formerDate.Minute; //SelectedRes.StartAt.AddDays(dayInterval); //SelectedRes.StartAt.AddHours(hourInterval); //SelectedRes.StartAt.AddMinutes(minInterval); SelectedRes.EndAt = SelectedRes.StartAt; int sumTime = 0; foreach (ReservedServiceVo rsv in ReservedServiceRepository.RSR.GetReservedServices(SelectedRes.ResNum)) { sumTime += ServiceList.Single(x => x.ServiceId == rsv.SerId).ServiceTime; } DateTime endAt = new DateTime();//임시로 저장해놓은 endat; endAt = SelectedRes.EndAt.AddHours(sumTime / 60); endAt = endAt.AddMinutes(sumTime % 60); if (HasReservations(SelectedRes.StylistId, SelectedRes.StartAt, endAt)) { MessageBox.Show("이미 예약이 존재한 시간입니다."); return; } //통과하면 실제 데이터에 적용 SelectedRes.EndAt = SelectedRes.EndAt.AddHours(sumTime / 60); SelectedRes.EndAt = SelectedRes.EndAt.AddMinutes(sumTime % 60); _reservationRepository.UpdateReservation(SelectedRes); }