Beispiel #1
0
        /// <summary>
        ///     Редактировать пользователей.
        /// </summary>
        /// <param name="users">Отредактированные пользователи</param>
        /// <returns></returns>
        public async Task <bool> EditUsersAsync(string users)
        {
            try
            {
                await Task.Run(() =>
                {
                    List <User> usersList;
                    usersList = JsonConvert.DeserializeObject <List <User> >(users);

                    using (var context = new VirtuSystemsDbContex())
                    {
                        var usersDb = context.Users.Where(x => usersList.Contains(x)).AsTracking().ToList();
                        usersDb     = GetUpdateUserList(usersDb, usersList);

                        foreach (var user in usersList)
                        {
                            if (usersDb.All(x => x.Id != user.Id))
                            {
                                usersDb.Add(GetNewUser(user));
                            }
                        }

                        context.UpdateRange(usersDb.Distinct());
                        context.SaveChanges();
                    }
                });

                return(true);
            }
            catch
            {
                return(false);
            }
        }