public void Update(time_table param) { var timePoint = db.time_table.SingleOrDefault( x => x.user_id == param.user_id && x.start_date.Year == param.start_date.Year && x.start_date.Month == param.start_date.Month && x.start_date.Day == param.start_date.Day ); if (timePoint != null) { //TODO: Módosítás szebben? //db.Entry(timePoint).CurrentValues.SetValues(param); if (timePoint.start_date.Hour != param.start_date.Hour || timePoint.end_date.Hour != param.end_date.Hour) { timePoint.user_id = param.user_id; timePoint.start_date = param.start_date; timePoint.end_date = param.end_date; timePoint.paid_leave = param.paid_leave; timePoint.sick_leave = param.sick_leave; timePoint.update_at = param.update_at; Debug.Write("update"); } } }
public void Insert(time_table param) { if (Exists(param)) { throw new Exception("Már létezik ilyen id!"); } db.time_table.Add(param); }
public bool Exists(time_table param) { return(db.time_table.Any(x => x.user_id == param.user_id && x.start_date.Year == param.start_date.Year && x.start_date.Month == param.start_date.Month && x.start_date.Day == param.start_date.Day )); }
public void Delete(time_table param) { var timePoint = db.time_table.SingleOrDefault( x => x.user_id == param.user_id && x.start_date.Year == param.start_date.Year && x.start_date.Month == param.start_date.Month && x.start_date.Day == param.start_date.Day ); db.time_table.Remove(timePoint); }
public void GetGlobalTimeTable() { using (PositionsRepository repoPositions = new PositionsRepository()) { int selectedYear = selectedDate.Year; int selectedMonth = selectedDate.Month; DataTable dt = new DataTable(); int lastDayOfMonth = DateTime.DaysInMonth(selectedDate.Year, selectedDate.Month); //Oszlopok kialakítása dt.Columns.Add(new DataColumn(("Név"), typeof(string))); for (int i = 1; i <= lastDayOfMonth; i++) { dt.Columns.Add(new DataColumn(("" + i), typeof(string))); } dt.Columns.Add(new DataColumn(("Id"), typeof(int))); BindingList <position> posList = repoPositions.getAllPositions(); //Sorok kialakítása foreach (var positionItem in posList) { dt.Rows.Add(positionItem.position_name); foreach (var item in positionItem.user_data) { //A kiválasztott dátumkor már állományban volt if ((item.first_working_day.Value.Year <= selectedYear && item.first_working_day.Value.Month <= selectedMonth) && //aktív állományban van vagy a kiválasztott hónapban lépett ki vagy attól régebben (item.last_working_day == null || (item.last_working_day.Value.Year >= selectedYear && item.last_working_day.Value.Month >= selectedMonth))) { //Első oszlopban név kiíratása dt.Rows.Add(item.personal_data.first_name + " " + item.personal_data.last_name); //Utolsó oszlopba Névhez tartozó user_data ID kiíratása dt.Rows[dt.Rows.Count - 1][dt.Columns.Count - 1] = item.id; //Adott userhez tartozó beosztás lekérés (kiválasztott időszakra) List <time_table> userTimeTable = new List <time_table>(); userTimeTable = item.time_table.Where(x => x.start_date.Year == selectedYear && x.start_date.Month == selectedMonth).ToList(); //Ha van a kiválasztott időszakra beosztása a neki létrehozott sorba kiíratás if (userTimeTable.Count > 0) { //Oszlop index megfelel dátumnak(nap) (1 es oszlop indexbe kell hogy kerüljön elseje...) for (int i = 1; i <= dt.Columns.Count - 2; i++) { string cell = ""; if (userTimeTable.Any(x => x.start_date.Day == i)) { time_table dayTime = userTimeTable.SingleOrDefault(x => x.start_date.Day == i); if ((bool)dayTime.paid_leave) { cell = "FSZ"; } else if ((bool)dayTime.sick_leave) { cell = "B"; } else { int startTime = dayTime.start_date.Hour; DateTime stopTime = (DateTime)dayTime.end_date; cell = startTime + "-" + stopTime.Hour; } } dt.Rows[dt.Rows.Count - 1][i] = cell; } } } } } view.globalTimeTable = dt; } }