コード例 #1
0
        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;
                }
            };
        }
コード例 #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);
             }
         }
     }
 }
コード例 #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);
        }
コード例 #4
0
        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);
            });
        }
コード例 #5
0
ファイル: CovidTestContext.cs プロジェクト: schletz/Pos5xhif
 /// <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));
 }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: PersonWebSource.cs プロジェクト: zameerkh/SW
 public async Task <Person> GetById(int id)
 {
     if (!Persons.Any())
     {
         await Init();
     }
     return(Persons.FirstOrDefault(p => p.id == id));
 }
コード例 #8
0
        private void RemoveCurrentPersonCommandExecute(object obj)
        {
            var doDelete = AskToDeleteFunc != null && AskToDeleteFunc(SelectedPersonViewModel.Person);

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

                if (person == null)
                {
                    return;
                }

                person.IsRemoved = true;
            }
        }
コード例 #10
0
        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();
                });
            }
        }
コード例 #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);
        }
コード例 #12
0
ファイル: MainViewModel.cs プロジェクト: kampee/zugab
        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();
        }
コード例 #13
0
        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);
            }
        }
コード例 #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;
            }
        }
コード例 #15
0
ファイル: MainViewModel.cs プロジェクト: kampee/zugab
        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"));
                }
            }
        }
コード例 #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);
        }
コード例 #17
0
        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());
        }
コード例 #18
0
        // Добавим запись, если такой еще нет - 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);
        }
コード例 #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();
                    });
                }
            });
        }
コード例 #20
0
        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());
            }
        }
コード例 #21
0
ファイル: MainViewModel.cs プロジェクト: kampee/zugab
        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"));
                }
            }
        }
コード例 #22
0
        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;
                }
            }
        }
コード例 #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;
                    }
                }
            }
        }
コード例 #24
0
        private void Load()
        {
            Persons = personsService.Get();

            SelectedPerson = Persons.FirstOrDefault();
        }
コード例 #25
0
        private string GetPersonName(int personId)
        {
            Person person = Persons.FirstOrDefault(p => p.Id == personId);

            return(person.NameDefaultWithNumber());
        }
コード例 #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");
                }
            };
        }
コード例 #27
0
ファイル: PhotoDetailBase.cs プロジェクト: makhin/PhotoBank
 protected string GetPersonNameById(int?id)
 {
     return(!id.HasValue ? string.Empty : Persons.FirstOrDefault(p => p.Id == id)?.Name);
 }
コード例 #28
0
        protected override async Task InitializeAsync()
        {
            await base.InitializeAsync();

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