예제 #1
0
        // Add new user in Database (asynchronous)
        private static async Task <bool> AddUser()
        {
            var    user = new Models.User();
            string temp = null;

            // Enter and save Name (no need to parse)
            Console.WriteLine("Enter Name:");
            user.Name = Console.ReadLine();

            // Enter and save Surname (no need to parse)
            Console.WriteLine("Enter Surname:");
            user.Surname = Console.ReadLine();

            // Enter and save Birthday (parse)
            DateTime dateTime;

            Console.WriteLine("Enter Birthday (yyyy-mm-dd hh:mm:ss):");
            temp = Console.ReadLine();
            // Check, if input text matches the format
            if (!DateTime.TryParseExact(temp, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
            {
                Console.WriteLine("Incorrect date format!");
                return(false);
            }
            user.Birthday = dateTime;

            // Enter and save Address (no need to parse)
            Console.WriteLine("Enter Address:");
            user.Address = Console.ReadLine();

            try
            {
                using (Context.ContextDB db = new Context.ContextDB())
                {
                    db.Users.Add(user);
                    await db.SaveChangesAsync();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(false);
        }
예제 #2
0
        // Search info about user by name (asynchronous)
        private static async Task <Models.User> SearchByName(string name)
        {
            try
            {
                using (Context.ContextDB db = new Context.ContextDB())
                {
                    var user = await(db.Users.FirstOrDefaultAsync(u => u.Name == name));
                    return(user);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(null);
        }
예제 #3
0
        // Select all users from Database (asynchronous)
        private static async Task <IList <Models.User> > SelectAll()
        {
            try
            {
                using (Context.ContextDB db = new Context.ContextDB())
                {
                    var list = await(db.Users.ToListAsync());
                    return(list);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(null);
        }
예제 #4
0
        // Search info about user by Id (asynchronous)
        private static async Task <Models.User> SearchById(int id)
        {
            try
            {
                using (Context.ContextDB db = new Context.ContextDB())
                {
                    var user = await(db.Users.FindAsync(id));
                    return(user);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(null);
        }
예제 #5
0
        // Add some info into Database (asynchronous)
        private static async Task AddInfo(IList <Models.User> dbInfo)
        {
            try
            {
                // Create new Users
                IList <Models.User> newUsers = new List <Models.User>()
                {
                    new Models.User {
                        Name = "John", Surname = "Smith", Birthday = new DateTime(1996, 09, 25), Address = "St. Gorman 1"
                    },
                    new Models.User {
                        Name = "Sarah", Surname = "Smith", Birthday = new DateTime(1989, 11, 06), Address = "St. Germany 14"
                    },
                    new Models.User {
                        Name = "Bob", Surname = "Parker", Birthday = new DateTime(1999, 03, 15), Address = "Center Park"
                    },
                    new Models.User {
                        Name = "Kim", Surname = "Gray", Birthday = new DateTime(1985, 06, 30), Address = "Prokupe st."
                    },
                    new Models.User {
                        Name = "Paul", Surname = "Larcraft", Birthday = new DateTime(1979, 02, 19), Address = "Baimble 12"
                    },
                    new Models.User {
                        Name = "Remy", Surname = "Blackwood", Birthday = new DateTime(2000, 05, 10), Address = "Library"
                    },
                    new Models.User {
                        Name = "Bob", Surname = "Redkliff", Birthday = new DateTime(1999, 04, 11), Address = "Eston st."
                    }
                };

                using (Context.ContextDB db = new Context.ContextDB())
                {
                    // EnsureCreated - creates DataBase if it does not exist. Else, this method doing nothing
                    db.Database.EnsureCreated();

                    // Add new Users to server. First of all, we must avoid inserting same data in the DataBase
                    if (dbInfo.Count == 0 || null == dbInfo)
                    {
                        // if Database have nothing - set new Info into it
                        db.Users.AddRange(newUsers);
                    }
                    else
                    {
                        // if server have something, start searching for coincidence
                        for (int i = 0; i < newUsers.Count; ++i)
                        {
                            // in current situation, 'Birthday' - is like a primary key (because the chance of it coincidence is very small)
                            if (!newUsers[i].Birthday.Equals(dbInfo[i].Birthday))
                            {
                                db.Users.Add(newUsers[i]);
                            }
                        }
                    }

                    // Save changes to DataBase
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }