private string DeleteCurrentWorkingStaffInfo(int matchedScheduleID) { Table <DAL.WorkingRegularStaff> staffTable = GetWorkingRegularStaffTable(); Table <DAL.WorkingWarehouseManager> keeperTable = GetWorkingWarehouseManagerTable(); Table <DAL.WorkingManager> managerTable = GetWorkingManagerTable(); Table <DAL.WorkingCashier> cashierTable = GetWorkingCashierTable(); List <string> deletedStaff = new List <string>(); try { var matchedRes1 = (from st in staffTable where st.scheduleID == matchedScheduleID select st).ToList(); foreach (DAL.WorkingRegularStaff staff in matchedRes1) { staffTable.DeleteOnSubmit(staff); deletedStaff.Add(staff.staffID); } var matchedRes2 = (from st in keeperTable where st.scheduleID == matchedScheduleID select st).ToList(); foreach (DAL.WorkingWarehouseManager staff in matchedRes2) { keeperTable.DeleteOnSubmit(staff); deletedStaff.Add(staff.staffID); } var matchedRes3 = (from st in managerTable where st.scheduleID == matchedScheduleID select st).ToList(); foreach (DAL.WorkingManager staff in matchedRes3) { managerTable.DeleteOnSubmit(staff); deletedStaff.Add(staff.staffID); } var matchedRes4 = (from st in cashierTable where st.scheduleID == matchedScheduleID select st).ToList(); foreach (DAL.WorkingCashier staff in matchedRes4) { cashierTable.DeleteOnSubmit(staff); deletedStaff.Add(staff.staffID); } db.SubmitChanges(); } catch (Exception ex) { return(ex.Message); } foreach (string id in deletedStaff) { string err = staffManager.SubtractWorkingHours(id, ParameterManager.GetShiftHour()); if (err != "") { return(err); } } return(""); }
private string AddOrUpdateScheduleShift(WorkingShift schedule) { Table <DAL.Schedule> scheduleTable = GetScheduleTable(); int matchedScheduleID = (from sch in scheduleTable where schedule.StartTime.Date.CompareTo(sch.date) == 0 && sch.workingShiftID == schedule.ShiftID select sch.scheduleID).FirstOrDefault(); if (matchedScheduleID == default(int)) { // Create new schedule DAL.Schedule newData = new DAL.Schedule(); try { newData.date = schedule.StartTime.Date; newData.workingShiftID = schedule.ShiftID; scheduleTable.InsertOnSubmit(newData); scheduleTable.Context.SubmitChanges(); } catch (Exception ex) { return(ex.Message); } matchedScheduleID = newData.scheduleID; } string err = DeleteCurrentWorkingStaffInfo(matchedScheduleID); if (err != "") { return(err); } foreach (Staff staff in schedule.WorkingStaff.Values) { err = "No data updated"; if (staffManager.GetPositionCode(staff.CurrentPosition) == 1) { err = AddOrNewWorkingCashier(staff, matchedScheduleID); } else if (staffManager.GetPositionCode(staff.CurrentPosition) == 2) { err = AddOrUpdateNewWorkingManager(staff, matchedScheduleID); } else if (staffManager.GetPositionCode(staff.CurrentPosition) == 3) { err = AddOrUpdateNewWorkingKeeper(staff, matchedScheduleID); } else if (staffManager.GetPositionCode(staff.CurrentPosition) == 4) { err = AddOrUpdateNewWorkingStaff(staff, matchedScheduleID); } if (err != "") { return(err); } staffManager.AddWorkingHours(staff.StaffID, ParameterManager.GetShiftHour()); } return(""); }