Ejemplo n.º 1
0
        // Prints all student attendances to pdf
        // parameter passed in is list of students and their attendance
        private void PrintAttendance()
        {
            var pdfPresents = new List <PdfPresence>();

            Attendances.ToList().ForEach(a => {
                pdfPresents.Add(new PdfPresence {
                    FirstName      = a.FirstName,
                    LastName       = a.LastName,
                    MatricelNumber = a.MatricelNumber,
                    Date           = a.Date,
                    Note           = a.Note,
                    WasPresent     = a.WasPresent
                });
            });

            var    course           = dataAccess.GetCourseById(CourseID);
            var    lab              = dataAccess.GetLabById(LabID);
            var    lecturers        = context.GetLecturerOfCourse(CourseID);
            string lecturerFullName = "Kein Lehrender";

            if (lecturers.Count > 0)
            {
                var lecturer = lecturers.First();
                lecturerFullName = $"{lecturer.firstName} {lecturer.lastName}";
            }

            // format list for pdf by wanted property
            pdfPresents = pdfPresents.OrderBy(p => p.Date).ToList();

            var pdfPath = exporter.CreatePresenceListForStuds(course.Name, lecturerFullName, lab.LabNumber.ToString(), pdfPresents);

            CheckIfPdfCreated(pdfPath);
        }
Ejemplo n.º 2
0
        public Attendance CheckOut(Attendance attendance)
        {
            if (Attendances == null)
            {
                Attendances = new List <Attendance>().AsReadOnly();
            }

            var list = Attendances.ToList();

            list.Add(attendance);

            ReadModel.Attendances.Add(new AttendanceReadModel(attendance));

            Attendances = list.AsReadOnly();

            return(attendance);
        }
Ejemplo n.º 3
0
        public Attendance DeleteAsync(Attendance attendance)
        {
            if (Attendances == null)
            {
                Attendances = new List <Attendance>().AsReadOnly();
            }

            var list = Attendances.ToList();

            list.Remove(attendance);

            ReadModel.Attendances.Remove(new AttendanceReadModel(attendance));

            Attendances = list.AsReadOnly();

            return(attendance);
        }
Ejemplo n.º 4
0
        public Attendance CheckIn(DateTimeOffset checkInDate, LocationsCheckInEnum locationStatus, DateTimeOffset?checkOutDate, TimeSpan?duration)
        {
            //validation for the same CheckInDate
            if (Attendances.Count > 0)
            {
                if (Attendances.Select(o => o.CheckInDate.Date).Contains(checkInDate.Date))
                {
                    return(null);
                }
            }

            //validation for checkin more than current date
            var comparison2 = DateTimeOffset.Compare(checkInDate.Date, DateTimeOffset.Now.Date);

            if (comparison2 >= 1)
            {
                return(null);
            }

            var attendance = new Attendance(Guid.NewGuid(), this.Identity, checkInDate, locationStatus, checkOutDate, duration);

            if (Attendances == null)
            {
                Attendances = new List <Attendance>().AsReadOnly();
            }

            var list = Attendances.ToList();

            list.Add(attendance);

            ReadModel.Attendances.Add(new AttendanceReadModel(attendance));

            Attendances = list.AsReadOnly();

            return(attendance);
        }
Ejemplo n.º 5
0
        private void InitCommands()
        {
            NewEntry = new Command(OnNewEntryExecute, OnNewEntryCanExecute);

            TransferEntry = new Command(OnTransferEntryExecute, OnTransferEntryCanExecute);

            DeleteEntry = new Command(OnDeleteEntryExecute, OnDeleteEntryCanExecute);

            LockDay = new Command(OnLockDayExecute, OnLockDayCanExecute);

            UnlockDay = new Command(OnUnlockDayExecute, OnUnlockDayCanExecute);

            RefreshTree = new Command(OnRefreshTreeExecute);

            EditWorkCommand = new Command((p) =>
            {
                var n = Navigator.CreateChild();
                n.Startup <CreateWorkView, UpdateWorkViewModel>(ViewMode.Dialog, null, new ParameterStorage {
                    NWork = (Work)p, Date = Date, TopFaultWorks = topFaultWorks, TopCauseWorks = topCauseWorks
                });
            }, (p) => { return(SelectedWork != null); });

            Exit = new Command(() =>
            {
                Application.Current.Shutdown();
            });

            HelpView = new Command(() =>
            {
                System.Windows.Forms.Help.ShowHelp(null, @"Help.chm");
            });

            PreviewDialog = new Command(() =>
            {
                try
                {
                    var n       = Navigator.CreateChild();
                    dataClient  = ContainerProvider.GetInstance.Resolve <DataServiceClient>();
                    Works       = dataClient.FindWorks(Date.ID);
                    Attendances = dataClient.FindAttendances(Date.ID);
                    Changeovers = dataClient.FindChangeovers(LoginInit.user.DetachmentID);
                    n.ShowPreview(Date, Works.ToList(), Attendances.ToList(), Changeovers.ToList());
                }
                catch (Exception e)
                {
                    ErrorProvider.ShowError(e, Navigator);
                }
            }, () => { return(Date != null); });


            PrintDialog = new Command(() =>
            {
                try
                {
                    var n       = Navigator.CreateChild();
                    dataClient  = ContainerProvider.GetInstance.Resolve <DataServiceClient>();
                    Works       = dataClient.FindWorks(Date.ID);
                    Attendances = dataClient.FindAttendances(Date.ID);
                    Changeovers = dataClient.FindChangeovers(LoginInit.user.DetachmentID);
                    n.ShowPrint(Date, Works.ToList(), Attendances.ToList(), Changeovers.ToList());
                }
                catch (Exception e)
                {
                    ErrorProvider.ShowError(e, Navigator);
                }
            }, () => { return(Date != null); });

            AccountDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <AccountView, AccountViewModel>(ViewMode.Dialog);
            });

            WorkerStateDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <WindowView, WorkerStateViewModel>(ViewMode.Dialog);
            });

            DetachmentDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <WindowView, DetachmentViewModel>(ViewMode.Dialog);
            },
                                           () => { return(LoginInit.user.Roles.Any(c => c.Name == "Admin")); });

            UserDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <UserView, UserViewModel>(ViewMode.Dialog);
            },
                                     () => { return(LoginInit.user.Roles.Any(c => c.Name == "Admin")); });

            CreateDayDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <CreateDayView, CreateDayViewModel>(ViewMode.Dialog, (s, e) =>
                {
                    OnCreateDayExecute(s, e);
                });
            },
                                          () => { return(LoginInit.user.Roles.Any(c => c.Name == "Write")); });

            DeleteDay = new Command(() =>
            {
                var n = Navigator.CreateChild();
                if (n.ShowMessageBox("Jste si jistí že chcete smazat " + (Date.IsNight ? "noční" : " denní") + " směnu, dne " + Date.DateContent.ToString("D", CultureInfo.CreateSpecificCulture("cs-CZ")) + "?\nSmažou se i veškerá data obsažená v této směně!", "Varováni", MessageBoxButton.YesNo, MessageBoxResult.No, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    Busy       = true;
                    dataClient = ContainerProvider.GetInstance.Resolve <DataServiceClient>();
                    dataClient.DeleteDateCompleted += DeleteDateCompleted;
                    dataClient.DeleteDateAsync(Date.ID);
                }
            }, OnDeleteDayCanExecute);

            VehicleDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <WindowView, VehicleViewModel>(ViewMode.Dialog);
            });
            TourDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <TourView, TourViewModel>(ViewMode.Dialog);
            });
            WorkerDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <WorkerView, WorkerViewModel>(ViewMode.Dialog);
            });
            FullTextDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <FullTextView, FullTextViewModel>(ViewMode.Dialog);
            });
            WorkTypeDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <WindowView, WorkTypeViewModel>(ViewMode.Dialog);
            });

            AttendanceDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <AttendanceView, AttendanceViewModel>(ViewMode.Dialog, null, new ParameterStorage {
                    Date = Date, Attendances = this.Attendances
                });
            }, OnAttendanceDialogCanExecute);

            AboutDialog = new Command(() =>
            {
                var n = Navigator.CreateChild();
                n.Startup <AboutView>();
            });
        }