简单的物流项目实战,WPF的MVVM设计模式(四)

接下来写ViewModels

创建运单的ViewModel类

简单的物流项目实战,WPF的MVVM设计模式(四)

    public class CreateExpressWindowViewModel: NotificationObject
    {
        private string province;

        public string Province
        {
            get
            {
                return province;
            }
            set
            {
                province = value;
                this.RaisePropertyChanged("Province");
            }
        }

        private string city;

        public string City
        {
            get
            {
                return city;
            }
            set
            {
                city = value;
                this.RaisePropertyChanged("City");
            }
        }

        private string area;

        public string Area
        {
            get
            {
                return area;
            }
            set
            {
                area = value;
                this.RaisePropertyChanged("Area");
            }
        }

        private string street;

        public string Street
        {
            get
            {
                return street;
            }
            set
            {
                street = value;
                this.RaisePropertyChanged("Street");
            }
        }

        private string username;

        public string Username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
                this.RaisePropertyChanged("Username");
            }
        }

        private string phonenumber;

        public string Phonenumber
        {
            get
            {
                return phonenumber;
            }
            set
            {
                phonenumber = value;
                this.RaisePropertyChanged("Phonenumber");
            }
        }

        private string createtime;

        public string Createtime
        {
            get
            {
                return createtime;
            }
            set
            {
                createtime = value;
                this.RaisePropertyChanged("Createtime");
            }
        }

        public DelegateCommand CreateExpressCommand { get; set; }

        public CreateExpressWindowViewModel()
        {
            Createtime = DateTime.Now.ToShortDateString();
            CreateExpressCommand = new DelegateCommand(new Action(InsertExpress));
        }

        private void InsertExpress()
        {
            //Random rd = new Random();
            //int num = rd.Next(10000000, 99999999);
            
            InsertExpressService insertExpressService = new InsertExpressService();
            Express express = new Express();
            insertExpressService.InsertExpress(Province,City,Area,Street,Username,Phonenumber,Createtime);
            MessageBox.Show("成功下单!");
            ExpressWindow expressWindow = new ExpressWindow();
           
            ReadExpressWindow readExpressWindow = new ReadExpressWindow();
            readExpressWindow.Show();
            expressWindow.Close();
        }
    }

简单的物流项目实战,WPF的MVVM设计模式(四)

public class GetExpressWindow : NotificationObject
    {
        private string province;

        public string Province
        {
            get
            {
                return province;
            }
            set
            {
                province = value;
                this.RaisePropertyChanged("Province");
            }
        }

        private string city;

        public string City
        {
            get
            {
                return city;
            }
            set
            {
                city = value;
                this.RaisePropertyChanged("City");
            }
        }

        private string area;

        public string Area
        {
            get
            {
                return area;
            }
            set
            {
                area = value;
                this.RaisePropertyChanged("Area");
            }
        }

        private string street;

        public string Street
        {
            get
            {
                return street;
            }
            set
            {
                street = value;
                this.RaisePropertyChanged("Street");
            }
        }

        private string username;

        public string Username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
                this.RaisePropertyChanged("Username");
            }
        }

        private string phonenumber;

        public string Phonenumber
        {
            get
            {
                return phonenumber;
            }
            set
            {
                phonenumber = value;
                this.RaisePropertyChanged("Phonenumber");
            }
        }

        private string createtime;

        public string Createtime
        {
            get
            {
                return createtime;
            }
            set
            {
                createtime = value;
                this.RaisePropertyChanged("Createtime");
            }
        }
        public DelegateCommand GetExpressCommand { get; set; }
        public GetExpressWindow()
        {
            GetExpressCommand = new DelegateCommand(new Action(GetExpress));
        }

        private void GetExpress()
        {
            GetExpressService getExpressService = new GetExpressService();
            Express express = new Express();
            express = getExpressService.GetExpressData();
            Province = express.Province;
            City = express.City;
            Area = express.Area;
            Street = express.Street;
            Username = express.UserName;
            Phonenumber = express.PhoneNumber;
            Createtime = express.CteateTime;
        }
    }

简单的物流项目实战,WPF的MVVM设计模式(四)

    public class RegisteredWindowViewModel : NotificationObject
    {
        

        private string userAccount;

        public string UserAccount
        {
            get
            {
                return userAccount;
            }
            set
            {
                userAccount = value;
                this.RaisePropertyChanged("UserAccount");
            }
        }

        private string password;

        public string Password
        {
            get
            {
                return password;
            }
            set
            {
                password = value;
                this.RaisePropertyChanged("Password");
            }
        }
        
        public DelegateCommand InsertCommand { get; set; }
        public RegisteredWindowViewModel()
        {
            InsertCommand = new DelegateCommand(new Action(InsertUserData));
        }

        private void InsertUserData()
        {
            InsertRegisteredService insertRegisteredService = new InsertRegisteredService();
            User user = new User();
            user.UserAccount = UserAccount;
            user.Password = Password;
            user = insertRegisteredService.InsertUser(UserAccount, Password);
            MessageBox.Show("注册成功!");
        }
    }

简单的物流项目实战,WPF的MVVM设计模式(四)

   public class UserViewModel: NotificationObject
    {
        /// <summary>
        /// 判断登录用户是否存在
        /// </summary>
        private bool exist;

        public bool Exist
        {
            get
            {
                return exist;
            }
            set
            {
                exist = value;
                this.RaisePropertyChanged("Exist");
            }
        }

    }

简单的物流项目实战,WPF的MVVM设计模式(四)

    public class UserWindowViewModel : NotificationObject
    {

        //var logger = NLog.LogManager.GetCurrentClassLogger();
        //logger.Info("Hello World");

        //var a = LogManager.GetCurrentClassLogger();
        private string username;

        public string Username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
                this.RaisePropertyChanged("Username");
            }
        }

        private string userpassword;

        public string Userpassword
        {
            get
            {
                return userpassword;
            }
            set
            {
                userpassword = value;
                this.RaisePropertyChanged("Userpassword");
            }
        }



        public DelegateCommand GetCommand { get; set; }

        public UserWindowViewModel()
        {
            GetCommand = new DelegateCommand(new Action(GetUser));
        }
        private void GetUser()
        {
            GetUserService getUserServicelist = new GetUserService();
            List<User> userslist = getUserServicelist.GetAllUser();

            List<User> usernamecount = userslist.Where(x=>x.UserAccount==Username).ToList();
            List<User> passwordcount = userslist.Where(x=>x.Password==Userpassword).ToList();

            ///方法二
            for (int i = 0; i < usernamecount.Count; i++)
            {
                if (usernamecount[i].UserAccount==Username&&usernamecount[i].Password==Userpassword)
                {
                    MessageBox.Show("登录成功!");
                    ExpressWindow expressWindow = new ExpressWindow();
                    expressWindow.ShowDialog();
                    return;
                }
                else
                {
                    MessageBox.Show("账号不存在或密码错误!");
                    return;
                }
            }

            ///方法一
            //if (usernamecount.Count > 0 && passwordcount.Count > 0)
            //{
            //    MessageBox.Show("登录成功!");
            //    return;
            //}
            //else
            //{
            //    MessageBox.Show("登录失败!");
            //    return;
            //}

        }
    }

以上分别为创建运单,查看运单,以及注册,以及登录的ViewModels,作为Views和Models之间的连接器

简单的物流项目实战,WPF的MVVM设计模式(四)

上一篇:2019NC#8


下一篇:VMware vSphere API开发(一)---vSphere 体系核心概念