public bool AddSubscriber(int UserId, string firstName, string middleName, string lastName, DateTime?dateOfBirth, byte[] photo, Sex sex, string mail)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                user.AddSubscriber(firstName, middleName, lastName, dateOfBirth, photo, sex, mail);
                context.SaveChanges();
                return(true);
            }

            return(false);
        }
        public bool DeleteUser(int id)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(id);

            if (user != null)
            {
                context.Users.Remove(user);
                context.SaveChanges();
                return(true);
            }

            return(false);
        }
        public bool AddGroupPhone(int UserId, string name)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                user.AddGroupPhone(name);
                context.SaveChanges();
                return(true);
            }

            return(false);
        }
        public SubscriberDto GetSubscriber(int UserId, int id)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                var subscriber = user.Subscribers.ToList().Find(s => s.Id == id);
                if (subscriber != null)
                {
                    return(SubscriberDto.Get(subscriber));
                }
            }
            return(null);
        }
        public GroupPhoneDto GetGroupPhone(int UserId, int id)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                var groupPhone = user.GroupPhones.ToList().Find(s => s.Id == id);
                if (groupPhone != null)
                {
                    return(GroupPhoneDto.Get(groupPhone));
                }
            }
            return(null);
        }
        public bool DeleteSubscriber(int UserId, int id)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                var subscriber = user.Subscribers.ToList().Find(s => s.Id == id);
                if (subscriber != null)
                {
                    user.RemoveSubscriber(subscriber);
                }
                context.SaveChanges();
                return(true);
            }

            return(false);
        }
        public bool DeleteGroup(int UserId, int id)
        {
            var context = new AddressBookContext();
            var user    = context.GetUser(UserId);

            if (user != null)
            {
                var group = user.Groups.ToList().Find(s => s.Id == id);
                if (group != null)
                {
                    user.RemoveGroup(group);
                }
                context.SaveChanges();
                return(true);
            }

            return(false);
        }