public void UpdateAttendance(Objects.Attendance attendance) { IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork; IRepository <Attendance> repository = new Repositor <Attendance>(unitOfWork); try { ObjectValidator.IsValid(attendance); unitOfWork.BeginTransaction(); var a = repository.Single(c => c.AttendanceDateID == attendance.DateID && c.AttendanceWorkerID == attendance.WorkerID); if (a.Date.DateIsClosed) { throw new DateException("Směna je uzamčená, nelze odebírat ani editovat záznamy"); } a.AttendanceWorkerStateID = attendance.WorkerStateID; a.AttendanceWorkerTourID = attendance.WorkerTourID; a.AttendanceDescription = String.IsNullOrWhiteSpace(attendance.Description) ? null : attendance.Description; repository.Update(a); unitOfWork.CommitTransaction(); } catch (Exception e) { unitOfWork.RollbackTransaction(); throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e)); } }
public void AddAttendance(Objects.Attendance attendance) { IUnitOfWork unitOfWork = SessionFactory.GetUnitOfWork; IRepository <Attendance> repository = new Repositor <Attendance>(unitOfWork); try { ObjectValidator.IsValid(attendance); Attendance a = new Attendance(); a.AttendanceDateID = attendance.DateID; a.AttendanceWorkerID = attendance.WorkerID; a.AttendanceWorkerStateID = attendance.WorkerStateID; a.AttendanceDescription = String.IsNullOrWhiteSpace(attendance.Description) ? null : attendance.Description; a.AttendanceWorkerTourID = attendance.WorkerTourID; unitOfWork.BeginTransaction(); repository.Add(a); unitOfWork.CommitTransaction(); } catch (Exception e) { unitOfWork.RollbackTransaction(); throw new FaultException <WcfException>(ExceptionProvider.CreateFaultContract(e)); } }