public MainViewModel()
        {
            //Handling of selection
            Persons.CollectionChanged += (s, e) =>
            {
                switch (e.Action)
                {
                case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                    SelectedPerson = e.NewItems.Cast <Person>().First();
                    break;

                case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                    SelectedPerson = Persons.Count > e.OldStartingIndex ? Persons[e.OldStartingIndex] : Persons.LastOrDefault();
                    break;

                case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                    SelectedPerson = Persons[e.OldStartingIndex];
                    break;

                case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
                    SelectedPerson = Persons.FirstOrDefault();
                    break;
                }
            };
        }
Beispiel #2
0
 /// <summary>
 /// 根据<paramref name="searchText"/>过滤<see cref="Groups"/>
 /// </summary>
 /// <param name="searchText">查询关键字</param>
 public void GroupsFilter(string searchText)
 {
     PersonOnDisplay = Persons.FirstOrDefault();
     Groups.Clear();
     foreach (var person in Persons)
     {
         if (person.Name.Contains(searchText) ||
             person.StudentNumber.Contains(searchText) ||
             person.Dormitory.Contains(searchText) ||
             person.NativeProvince.Equals(searchText))
         {
             PersonGroup group = Groups.Where(g => g.LastName == person.LastName).FirstOrDefault();
             if (group == null)
             {
                 var newGroup = new PersonGroup(person.LastName);
                 newGroup.Items.Add(person);
                 Groups.Add(newGroup);
             }
             else
             {
                 group.Items.Add(person);
             }
         }
     }
 }
Beispiel #3
0
        public List <Person> AddPersons(List <Person> updatedPersons)
        {
            var           isUpdated = false;
            List <Person> response;

            lock (Persons)
            {
                response = Persons.Except(updatedPersons).ToList();

                foreach (var person in updatedPersons)
                {
                    var p = Persons.FirstOrDefault(p1 => p1.Id == person.Id);

                    if (p == null)
                    {
                        Persons.Add(person.Copy());
                        isUpdated = true;
                    }
                    else if (p.IsRemoved == false && person.IsRemoved)
                    {
                        p.IsRemoved = true;
                    }
                }

                if (isUpdated)
                {
                    Persons.Sort((p1, p2) => p1.Id.CompareTo(p2.Id));
                    PersonCount = Persons.Count;
                }
            }

            return(response);
        }
        public MainPageViewModel(INavigationService navigationService)
            : base(navigationService)
        {
            Title = "Main Page";

            LotteryNumbers = new ObservableCollection <int>(Enumerable.Range(1, Persons.Count));

            AddCommand.Subscribe(() =>
            {
                var temp = new Person
                {
                    Name = "Hoge",
                    Age  = 50,
                };
                Persons.Add(temp);
            });

            DeleteCommand.Subscribe(() =>
            {
                if (Persons.Count > 0)
                {
                    Persons.Remove(Persons.FirstOrDefault());
                }
            });

            Persons.ObserveAddChanged().Subscribe(list =>
            {
                LotteryNumbers.Add(Persons.Count);
            });

            Persons.ObserveRemoveChanged().Subscribe(list =>
            {
                LotteryNumbers.Remove(Persons.Count + 1);
            });
        }
Beispiel #5
0
 /// <summary>
 /// Aufgabe 1c - Abfrage einer Person auf Basis seiner Telefonnummer.
 /// Hinweis:
 ///     Geben Sie den ersten gefundenen Datensatz zurück, da theoretisch auch 2 Personen die gleiche Nummer haben können.
 ///     Eine Telefonnummer ist gleich, wenn alle Nummernteile gleich sind.
 ///     Wird keine Person gefunden, ist null zu liefern.
 /// </summary>
 public Domain.Person GetPersonByPhoneNumber(PhoneNumber phoneNumber)
 {
     return(Persons.FirstOrDefault(p =>
                                   p.PhoneNumber.CountryCode == phoneNumber.CountryCode &&
                                   p.PhoneNumber.AreaCode == phoneNumber.AreaCode &&
                                   p.PhoneNumber.SerialNumber == phoneNumber.SerialNumber));
 }
        public void SendMoney(double amount, IAccount senderAccount, IAccount receiver)
        {
            IPerson senderPerson = Persons.FirstOrDefault(o => o.Accounts.Contains(senderAccount));

            senderAccount.Balance -= amount;
            receiver.ReceiveMoney(amount, senderPerson);
        }
Beispiel #7
0
 public async Task <Person> GetById(int id)
 {
     if (!Persons.Any())
     {
         await Init();
     }
     return(Persons.FirstOrDefault(p => p.id == id));
 }
        private void RemoveCurrentPersonCommandExecute(object obj)
        {
            var doDelete = AskToDeleteFunc != null && AskToDeleteFunc(SelectedPersonViewModel.Person);

            if (doDelete)
            {
                LocalDataStorage.Instance.RemovePerson(SelectedPersonViewModel.Person);
                SelectedPersonViewModel.Person = Persons.FirstOrDefault();
            }
        }
Beispiel #9
0
        public void RemovePerson(int id)
        {
            lock (Persons)
            {
                var person = Persons.FirstOrDefault(p => p.Id == id);

                if (person == null)
                {
                    return;
                }

                person.IsRemoved = true;
            }
        }
        private async Task OnRemoveExecuteAsync()
        {
            var selectedPerson = SelectedPerson;

            if (await _messageService.ShowAsync(string.Format("Are you sure you want to remove person '{0}'?", selectedPerson), "Are you sure?", MessageButton.YesNoCancel, MessageImage.Question) == MessageResult.Yes)
            {
                Log.Info("Removing person '{0}'", selectedPerson);

                await _dispatcherService.InvokeAsync(() =>
                {
                    Persons.Remove(selectedPerson);
                    SelectedPerson = Persons.FirstOrDefault();
                });
            }
        }
Beispiel #11
0
        public static bool AddNewPerson(string Name)
        {   // Check if same name already exists
            bool result = false;
            var  person = Persons.FirstOrDefault(p => p.Name == Name);

            if (person == null)
            {
                Persons.Add(new Model.Person()
                {
                    Name = Name
                });
                result = true;
            }

            return(result);
        }
Beispiel #12
0
        private void TogglePersonsFilter()
        {
            if (IsFilterByBirthdate)
            {
                Persons             = new ObservableCollection <PersonViewModel>(Persons.OrderBy(t => t.Lastname).ThenBy(t => t.Firstname).ToList());
                IsFilterByBirthdate = false;
            }
            else
            {
                Persons             = new ObservableCollection <PersonViewModel>(Persons.OrderBy(t => t.Birthdate?.Month).ThenBy(t => t.Birthdate?.Day).ThenBy(t => t.Lastname).ThenBy(t => t.Firstname).ToList());
                IsFilterByBirthdate = true;
            }

            Notify("Persons");

            SelectedListPerson = Persons.FirstOrDefault();
        }
        public void DeletePerson(int id)
        {
            try
            {
                Database.Person temp = new Database.Person();
                temp.Id = id;

                Persons.Remove(Persons.FirstOrDefault(p => p.Id == temp.Id));
                eventkalenderDAL.DeletePerson(temp);

                Events = new ObservableCollection <Database.Event>(eventkalenderDAL.GetEvents());
                //NotifyPropertyChanged("Persons");
            }
            catch (Exception ex)
            {
                Status = ExceptionHandler.GetErrorMessage(ex);
            }
        }
Beispiel #14
0
        public async Task SetCurrentPersonAsync(int id)
        {
            this.CurrentPerson = Persons.FirstOrDefault(x => x.Id == id);

            if (this.CurrentPerson == null)
            {
                var currentPerson =
                    await Fluent.Start(Queries.GetPersonByIdQueryAsync.GetExecutor())
                    .SetValue(x => x.Id, id)
                    .ExecuteAsync(true);

                if (currentPerson == null)
                {
                    throw new Exception("Person not found");
                }

                this.CurrentPerson = currentPerson;
            }
        }
Beispiel #15
0
        private void RevertChanges()
        {
            if (_messageDialogService.OpenConfirmationDialog("Änderungen verwerfen", "Wollen Sie die Änderungen verwerfen?"))
            {
                SelectedDetailedPerson?.ResetChanges();

                if (IsNewModeActive)
                {
                    SelectedDetailedPerson = null;
                    SelectedListPerson     = Persons.FirstOrDefault();

                    _logger.Info(LoggerMessage.GetFunctionUsageMessage("Revert Changes on New Mode"));
                }
                else
                {
                    _logger.Info(LoggerMessage.GetFunctionUsageMessage("Revert Changes on Edit Mode"));
                }
            }
        }
Beispiel #16
0
        async Task GetSimilarFaces()
        {
            var detectSelectedPersonRes = await FaceApiService.DetectFaces(PersonSelected.FaceImageUrl);

            var similarFaces = await FaceApiService.GetSimilarFaces(detectSelectedPersonRes.FirstOrDefault().FaceId);

            List <Person> similarPersons = new List <Person>();

            foreach (var similarFace in similarFaces)
            {
                var person = Persons.FirstOrDefault(p => p.LargeListFaceId == similarFace.PersistedFaceId);
                if (person != null)
                {
                    person.ConfidenceSimilarity = similarFace.Confidence.ToString();
                    similarPersons.Add(person);
                }
            }

            SimilarPersons = new ObservableCollection <Person>(similarPersons);
        }
        async Task <List <Relation> > DownloadRelationsAsync(DataContext context)
        {
            var result1 = context.GetAllRelations().Select(p => p.ConvertToViewRelation(
                                                               id => Persons.FirstOrDefault(person => person.Id == id))
                                                           ).ToList();

            /*we have to make the other end of relations if they aren't exists!*/
            /*we also need to make the siblings and nephews if they aren't exists*/
            var result2 = new List <Relation>();

            result1.ForEach(relation =>
            {
                if (!result1.IsReverseRelationExists(relation))
                {
                    result2.Add(relation.GetReverseRelation());
                }
            });

            return(result1.Union(result2).Distinct().ToList());
        }
        // Добавим запись, если такой еще нет - Person
        public Person AddPerson(string name)
        {
            Person P = Persons.FirstOrDefault((p => p.Name == name));

            if (P == null)  // Имя не нашли
            {
                P = new Person(name);
                Persons.Add(P);
                SaveChanges();
            }
            else
            {
                if (!P.ActMk)
                {
                    P.ActMk = true;
                    SaveChanges();
                }
            }
            return(P);
        }
Beispiel #19
0
        private void OnRemoveExecute()
        {
            var selectedPerson = SelectedPerson;

            var task = _messageService.Show(string.Format("Are you sure you want to remove person '{0}'?", selectedPerson), "Are you sure?", MessageButton.YesNo, MessageImage.Question);

            task.ContinueWith(result =>
            {
                if (result.Result == MessageResult.Yes)
                {
                    Log.Info("Removing person '{0}'", selectedPerson);

                    _dispatcherService.Invoke(() =>
                    {
                        Persons.Remove(selectedPerson);
                        SelectedPerson = Persons.FirstOrDefault();
                    });
                }
            });
        }
        public void RemovePerson(Person person)
        {
            using (var context = new DataContext())
            {
                var relationsToRemove = Relations
                                        .Where(r => r.SourcePerson == person || r.DestinationPerson == person)
                                        .ToList();

                relationsToRemove.ForEach(r =>
                {
                    Relations.Remove(r);
                    context.DeleteRelation(r.ConvertToDalRelation());
                });

                if (Persons.FirstOrDefault(p => p == person) != null)
                {
                    Persons.Remove(person);
                }

                context.DeletePerson(person.ConvertToDalPerson());
            }
        }
Beispiel #21
0
        private void DeleteSelectedPerson()
        {
            if (_messageDialogService.OpenConfirmationDialog("Löschen", $"Wollen Sie '{SelectedDetailedPerson.Firstname} {SelectedDetailedPerson.Lastname}' wirklich löschen?"))
            {
                var toDelete = SelectedDetailedPerson;
                Persons.Remove(SelectedDetailedPerson);
                SelectedDetailedPerson = Persons.FirstOrDefault();
                SelectedListPerson     = Persons.FirstOrDefault();

                toDelete.DeleteDocuments();

                if (!IsNewModeActive)
                {
                    using (var session = _documentStoreFactory.CreateDocumentStore().OpenSession())
                    {
                        session.Delete(toDelete.Id);
                        session.SaveChanges();
                    }

                    _logger.Info(LoggerMessage.GetFunctionUsageMessage("Delete Selected Person"));
                }
            }
        }
        public void AddNewPersonWithRelation(Person person, Person child, RelationType relationType)
        {
            using (var context = new DataContext())
            {
                if (Persons.FirstOrDefault(p => p == child) == null)
                {
                    Persons.Add(child);
                    var dalPerson = child.ConvertToDalPerson();
                    context.AddPerson(dalPerson);
                    child.Id = dalPerson.Id;
                }

                var personToChild = new Relation
                {
                    SourcePerson      = person,
                    DestinationPerson = child,
                    RelationType      = relationType
                };
                var childToPerson = personToChild.GetReverseRelation();

                if (Relations.FirstOrDefault(r => r == personToChild) == null)
                {
                    Relations.Add(personToChild);
                    var dalRelation = personToChild.ConvertToDalRelation();
                    context.AddRelation(dalRelation);
                    personToChild.RelationId = dalRelation.RelationId;
                }

                if (Relations.FirstOrDefault(r => r == childToPerson) == null)
                {
                    Relations.Add(childToPerson);
                    var dalRelation = childToPerson.ConvertToDalRelation();
                    context.AddRelation(dalRelation);
                    childToPerson.RelationId = dalRelation.RelationId;
                }
            }
        }
Beispiel #23
0
        private void OnBeforeSaving()
        {
            ChangeTracker.DetectChanges();
            // get entries that are being Added or Updated or Deleted
            var modifiedEntries = ChangeTracker
                                  .Entries()
                                  .Where(x => x.Entity is IAuditableObject && states.Contains(x.State));
            //var currentUsername = !string.IsNullOrEmpty(HttpContext.Current?.User?.Identity?.Name)
            //    ? HttpContext.Current.User.Identity.Name
            //    : "Anonymous";

            /*
             *
             * ASP.NET provides the following principal and identity object implementations:
             *
             * WindowsPrincipal and WindowsIdentity objects represent users who have been authenticated with Windows authentication. With these objects, the role list is automatically obtained from the set of Windows groups to which the Windows user belongs.
             * GenericPrincipal and GenericIdentity objects represent users who have been authenticated using Forms authentication or other custom authentication mechanisms. With these objects, the role list is obtained in a custom manner, typically from a database.
             * FormsIdentity and PassportIdentity objects represent users who have been authenticated with Forms and Passport authentication respectively.
             *
             * The following tables illustrate, for a range of IIS authentication settings, the resultant identity that is obtained from each of the variables that maintain an IPrincipal and/or IIdentity object. The following abbreviations are used in the table:
             *
             * HttpContext = HttpContext.Current.User, which returns an IPrincipal object that contains security information for the current Web request. This is the authenticated Web client.
             * WindowsIdentity = WindowsIdentity.GetCurrent(), which returns the identity of the security context of the currently executing Win32 thread.
             * Thread = Thread.CurrentPrincipal which returns the principal of the currently executing .NET thread which rides on top of the Win32 thread.
             *
             */
            // HttpContext.Current.User
            // HttpContext.User.Identity;
            string identityName = _httpContextAccessor?.HttpContext?.User?.Identity?.Name ??
                                                                      // HttpContext.Current.User
                                  WindowsIdentity.GetCurrent()?.Name; // WindowsIdentity.GetCurrent()?.User?.User;
            Person person = string.IsNullOrEmpty(identityName) ?
                            null :
                            Persons
                            .FirstOrDefault(u => string.Compare(u.UserName, identityName, true) == 0);
            var now         = DateTime.Now;
            var exceptTypes = new Type[] { typeof(PersonCompany), typeof(PersonRole) };

            foreach (var entry in modifiedEntries)
            {
                if (entry.Entity is IAuditableObject auditableEntity)
                {
                    switch (entry.State)
                    {
                    case EntityState.Deleted:
                        if (!exceptTypes.Contains(entry.Entity.GetType()) && entry.Entity is ISoftDelete softDeleteEntity)
                        {
                            entry.State = EntityState.Modified;
                            softDeleteEntity.IsDeleted = true;
                        }
                        break;

                    case EntityState.Modified:
                        auditableEntity.ModifiedAt   = now;
                        auditableEntity.ModifiedbyId = person?.Id;
                        break;

                    case EntityState.Added:
                        auditableEntity.CreatedAt        =
                            auditableEntity.ModifiedAt   = now;
                        auditableEntity.CreatedbyId      =
                            auditableEntity.ModifiedbyId = person?.Id;
                        break;

                    default:
                        break;
                    }
                }
            }
        }
        private void Load()
        {
            Persons = personsService.Get();

            SelectedPerson = Persons.FirstOrDefault();
        }
        private string GetPersonName(int personId)
        {
            Person person = Persons.FirstOrDefault(p => p.Id == personId);

            return(person.NameDefaultWithNumber());
        }
Beispiel #26
0
        public EAService(int port)
        {
            Port = port;

            _timer = new Timer
            {
                AutoReset = true,
                Interval  = 2 * 1000,
                Enabled   = true
            };
            _timer.Elapsed += (sender, args) =>
            {
                if (Clients.Count == 0 || IsClosed)
                {
                    return;
                }

                try
                {
                    List <Person> response;
                    lock (Clients)
                    {
                        if (Clients.All(c => c.SessionId == null))
                        {
                            return;
                        }

                        ConnectedClient client;
                        do
                        {
                            client = Clients[new Random().Next(Clients.Count)];
                        } while (client.SessionId == null);

                        response = client.Channel.AddPersons(Persons);
                    }

                    if (response.Count <= 0)
                    {
                        return;
                    }

                    foreach (var person in response)
                    {
                        var p = Persons.FirstOrDefault(p1 => p1.Id == person.Id);

                        if (p == null)
                        {
                            Persons.Add(person);
                        }
                        else if (p.IsRemoved == false && person.IsRemoved)
                        {
                            p.IsRemoved = true;
                        }
                    }

                    Persons.Sort((p1, p2) => p1.Id.CompareTo(p2.Id));
                    PersonCount = Persons.Count;
                }
                catch (Exception)
                {
                    Console.WriteLine("client is closed");
                }
            };
        }
Beispiel #27
0
 protected string GetPersonNameById(int?id)
 {
     return(!id.HasValue ? string.Empty : Persons.FirstOrDefault(p => p.Id == id)?.Name);
 }
        protected override async Task InitializeAsync()
        {
            await base.InitializeAsync();

            SelectedPerson = Persons.FirstOrDefault();
        }
Beispiel #29
0
 public static Person GetPerson(int id)
 {
     return(Persons.FirstOrDefault(p => p.Id == id));
 }