Exemplo n.º 1
0
        private void LoginCommandExecute()
        {
            PersonViewModel admin;

            using (var ctx = new IncheckerDbCtx())
            {
                admin = new PersonViewModel(ctx.Persons.First(n => n.Role == Common.Enums.Roles.Admin));
            }

            if (string.IsNullOrEmpty(admin.Pin))
            {
                LoggedPerson = admin;
            }
            else
            {
                using (var dataCtx = new AuthenticationViewModel(Common.Enums.AuthenticationModes.Admin, admin))
                {
                    var auth = new AuthenticationView();
                    auth.ShowDialogWithViewModel(dataCtx);

                    if (dataCtx.UserAuthenticated == true)
                    {
                        LoggedPerson = admin;
                    }
                    else
                    {
                        LoggedPerson = null;
                    }
                }
            }

            RaisePropertyChanged(nameof(AdvancedFunctionsEnabled));
        }
Exemplo n.º 2
0
        private void CheckInCommandExecute(int id)
        {
            using (var ctx = new IncheckerDbCtx())
            {
                var person = ctx.Persons.FirstOrDefault(n => n.Id == id);
                if (person == null)
                {
                    return;
                }

                if (string.IsNullOrEmpty(person.Pin))
                {
                    person.CheckinTime = DateTime.Now;
                    ctx.SaveChanges();
                }
                else
                {
                    using (var dataCtx = new AuthenticationViewModel(Common.Enums.AuthenticationModes.CheckInOut
                                                                     , new PersonViewModel(person)))
                    {
                        var auth = new AuthenticationView();
                        auth.ShowDialogWithViewModel(dataCtx);

                        if (dataCtx.UserAuthenticated == true)
                        {
                            person.CheckinTime = DateTime.Now;
                            ctx.SaveChanges();
                        }
                    }
                }
            }

            RefreshPersonsInOut();
        }
Exemplo n.º 3
0
 private static int ReadSetting(string name)
 {
     using (var ctx = new IncheckerDbCtx())
     {
         return(ctx.Settings.First(n => n.Name == name).Value);
     }
 }
Exemplo n.º 4
0
 private static bool SaveSetting(string name, int value)
 {
     using (var ctx = new IncheckerDbCtx())
     {
         ctx.Settings.First(n => n.Name == name).Value = value;
         ctx.SaveChanges();
         return(true);
     }
 }
Exemplo n.º 5
0
        private void CheckOutCommandExecute(int id)
        {
            using (var ctx = new IncheckerDbCtx())
            {
                var person = ctx.Persons.FirstOrDefault(n => n.Id == id);
                if (person == null)
                {
                    return;
                }

                if (string.IsNullOrEmpty(person.Pin))
                {
                    ctx.Inchecks.Add(new Incheck()
                    {
                        PersonId       = person.Id
                        , FirstName    = person.FirstName
                        , LastName     = person.LastName
                        , CheckinTime  = person.CheckinTime
                        , CheckoutTime = DateTime.Now
                    });

                    person.CheckinTime = null;
                    ctx.SaveChanges();
                }
                else
                {
                    using (var dataCtx = new AuthenticationViewModel(Common.Enums.AuthenticationModes.CheckInOut
                                                                     , new PersonViewModel(person)))
                    {
                        var auth = new AuthenticationView();
                        auth.ShowDialogWithViewModel(dataCtx);

                        if (dataCtx.UserAuthenticated == true)
                        {
                            ctx.Inchecks.Add(new Incheck()
                            {
                                PersonId       = person.Id
                                , FirstName    = person.FirstName
                                , LastName     = person.LastName
                                , CheckinTime  = person.CheckinTime
                                , CheckoutTime = DateTime.Now
                            });

                            person.CheckinTime = null;
                            ctx.SaveChanges();
                        }
                    }
                }
            }

            RefreshPersonsInOut();

            Messenger.Default.Send <Incheck>(null);
        }
Exemplo n.º 6
0
        private void RefreshPersons()
        {
            Persons.Clear();

            using (var ctx = new IncheckerDbCtx())
            {
                foreach (var person in ctx.Persons)
                {
                    Persons.Add(new PersonViewModel(person));
                }
            }
        }
Exemplo n.º 7
0
        private void RefreshPersonsInOut()
        {
            PersonsIn.Clear();
            PersonsOut.Clear();
            using (var ctx = new IncheckerDbCtx())
            {
                foreach (var person in ctx.Persons.Where(n => n.CheckinTime == null))
                {
                    PersonsOut.Add(person);
                }

                foreach (var person in ctx.Persons.Where(n => n.CheckinTime != null))
                {
                    PersonsIn.Add(person);
                }
            }
        }
Exemplo n.º 8
0
        private void CommitCommandExecute()
        {
            if (!CommitCommandCanExecute())
            {
                return;
            }

            List <int> keep = new List <int>();

            using (var ctx = new IncheckerDbCtx())
            {
                foreach (var p1 in Persons)
                {
                    var pdb = ctx.Persons.FirstOrDefault(n => n.Id == p1.Id);
                    if (pdb == null)
                    {
                        ctx.Persons.Add(new Person()
                        {
                            FirstName     = p1.FirstName
                            , LastName    = p1.LastName
                            , FloorNr     = p1.FloorNr
                            , RoomNr      = p1.RoomNr
                            , Pin         = p1.Pin
                            , Role        = p1.Role
                            , CheckinTime = null
                        });
                    }
                    else
                    {
                        keep.Add(p1.Id);

                        pdb.FirstName = p1.FirstName;
                        pdb.LastName  = p1.LastName;
                        pdb.FloorNr   = p1.FloorNr;
                        pdb.RoomNr    = p1.RoomNr;
                        pdb.Pin       = p1.Pin;
                        pdb.Role      = p1.Role;

                        foreach (var incheck in ctx.Inchecks.Where(n => n.PersonId == p1.Id))
                        {
                            incheck.FirstName = p1.FirstName;
                            incheck.LastName  = p1.LastName;
                        }
                    }
                }

                foreach (var p2 in ctx.Persons.Where(n => n.Id != 0 && !keep.Contains(n.Id)))
                {
                    ctx.Persons.Remove(p2);

                    foreach (var incheck in ctx.Inchecks.Where(n => n.PersonId == p2.Id))
                    {
                        ctx.Inchecks.Remove(incheck);
                    }
                }

                ctx.SaveChanges();
                RefreshPersons();
                Messenger.Default.Send(new NotificationMessage(MessengerNotificationMessages.RefreshPersonsInOut));
            }
        }