public void TestAddAndDelete()
        {
            DateTime thoiGianDi = DateTime.Now;
            ChuyenDi t1         = new ChuyenDi("BL-BH-003", "BL-BH", thoiGianDi, 240, 40);

            Assert.AreEqual(true, manager.add(t1));
            Assert.AreEqual(false, manager.add(t1));

            Assert.AreEqual(true, manager.delete("BL-BH-003"));
        }
예제 #2
0
        private void LearnMoreButton_Click(object sender, RoutedEventArgs e)
        {
            Button   sd         = sender as Button;
            ChuyenDi cdi        = (ChuyenDi)sd.DataContext;
            string   maChuyenDi = cdi.MaChuyenDi;

            if (LearnMoreHandler != null)
            {
                LearnMoreHandler(Type, maChuyenDi);
            }
        }
예제 #3
0
 public static string toText(this ChuyenDi item)
 {
     if (item == null)
     {
         return("");
     }
     if (item.xevanchuyen != null)
     {
         return(string.Format("{0}({1})", item.Ma, item.xevanchuyen.BienSo));
     }
     return(item.Ma);
 }
        public void TestUpdate()
        {
            DateTime thoiGianDi = DateTime.Now;
            ChuyenDi t1         = new ChuyenDi("BL-BH-003", "BL-BH", thoiGianDi, 240, 40);

            manager.add(t1);

            ChuyenDi t2 = new ChuyenDi("BL-BH-003", "BL-BH", thoiGianDi, 240, 50);

            Assert.AreEqual(true, manager.update(t2));
            Assert.AreEqual(true, manager.update(t1));
            Assert.AreEqual(true, manager.delete("BL-BH-003"));
        }
예제 #5
0
 public static string ChuyenDitoText(this ChuyenDi item, bool IsMa)
 {
     if (item == null)
     {
         return("");
     }
     if (IsMa)
     {
         return(string.Format("{0}({1})", item.Ma, item.NgayDiThuc.ToString("HH:mm")));
     }
     else
     {
         return(item.NgayDiThuc.ToString("HH:mm"));
     }
 }
예제 #6
0
        private DatVe _DatCho(ChuyenDi chuyendi, int SoDoGheId, string SessionId)
        {
            //trang thai khong hop le
            if (chuyendi.trangthai == ENTrangThaiXeXuatBen.KET_THUC || chuyendi.trangthai == ENTrangThaiXeXuatBen.HUY)
            {
                return(null);
            }
            //kiem tra xem co ai dat chua
            var checkdatve = chuyendi.DatVes.Where(c => c.SoDoGheId == SoDoGheId && c.TrangThaiId != (int)ENTrangThaiDatVe.HUY).FirstOrDefault();

            if (checkdatve != null)
            {
                //neu co roi thi kiem tra thoi gian dat trc do neu chua qua 2 phut thi out
                if (checkdatve.NgayTao.AddSeconds(_settings.THOI_GIAN_GHE_DAT_CHO) > DateTime.Now)
                {
                    //trong truong hop dat ve, nhung paste thong tin thi bo qua cho dat nay, neu da dat roi
                    return(null);
                }
                else
                {
                    //kiem tra trang thai ghe
                    if (checkdatve.trangthai == ENTrangThaiDatVe.MOI)
                    {
                        //huy ghe nay di
                        _limousinebanveService.DeleteDatVe(checkdatve);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            //tao thong tin dat ve
            var datve = new DatVe();

            datve.NhaXeId     = chuyendi.NhaXeId;
            datve.ChuyenDiId  = chuyendi.Id;
            datve.SoDoGheId   = SoDoGheId;
            datve.NguoiTaoId  = _settings.NhanVienId;
            datve.NgayDi      = chuyendi.NgayDi;
            datve.LichTrinhId = chuyendi.LichTrinhId;
            datve.HanhTrinhId = chuyendi.HanhTrinhId;
            datve.trangthai   = ENTrangThaiDatVe.MOI;
            datve.SessionID   = SessionId;
            _limousinebanveService.InsertDatVe(datve);
            return(_limousinebanveService.GetDatVeById(datve.Id));
        }
예제 #7
0
        private void loadUI()
        {
            String db            = "QLChuyenDi";
            String con           = $"Server=localhost; Database= master; Trusted_Connection=True;";
            bool   isHasDatabase = DatabaseHelper.isDatabaseExists(con, db);

            if (!isHasDatabase)
            {
                return;
            }

            ChuyenDiDAOImpl chuyenDiDAOImpl = new ChuyenDiDAOImpl();

            if (chuyenDiDAOImpl.GetAllChuyenDi().Count() > 0)
            {
                Random random = new Random();
                int    index  = random.Next(chuyenDiDAOImpl.GetAllChuyenDi().Count());

                ChuyenDi trip = chuyenDiDAOImpl.GetAllChuyenDi()[index];
                txtTripTittle.Text      = trip.TenChuyenDi;
                txtTripDescription.Text = trip.MoTa;

                HinhAnhChuyenDiDAOlmpl hinhAnhChuyenDiDAOlmpl = new HinhAnhChuyenDiDAOlmpl();
                HinhAnhChuyenDi        tripImage = hinhAnhChuyenDiDAOlmpl.getTripImageByTripCode(trip.MaChuyenDi);

                if (tripImage == null || tripImage.HinhAnh == null || tripImage.HinhAnh == "")
                {
                    Uri uri = new Uri("../Assets/Images/default_trip_image.jpg", UriKind.RelativeOrAbsolute);
                    imgTrip.Source = new BitmapImage(uri);
                }
                else
                {
                    Uri uri = new Uri(tripImage.HinhAnh, UriKind.RelativeOrAbsolute);
                    try
                    {
                        imgTrip.Source = new BitmapImage(uri);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            else
            {
                //do nothing. use default screen in xml
            }
        }
예제 #8
0
        string isAuthentication(int NhaXeId, int CustomerId, string apiToken, int XeXuatBenId)
        {
            string _isauthen = isAuthentication(NhaXeId, CustomerId, apiToken);

            if (!String.IsNullOrEmpty(_isauthen))
            {
                return(_isauthen);
            }
            xexuatben = _limousinebanveService.GetChuyenDiById(XeXuatBenId);
            if (xexuatben == null)
            {
                return("Không tồn tại thông tin xe xuất bến");
            }
            if (xexuatben.NhaXeId != NhaXeId)
            {
                return("Xe xuất bến không thuộc nhà xe");
            }
            return(String.Empty);
        }
예제 #9
0
        private void filterByTrip()
        {
            cdList.Clear();
            foreach (var trip in cdDao.GetAllChuyenDi())
            {
                cdList.Add(trip);
            }
            String filterQuery = keywordTextBox.Text;

            if (!filterQuery.Equals(""))
            {
                String unSignLowerTripName = ConvertToUnSign(filterQuery.ToLower());
                for (int i = 0; i < cdList.Count(); i++)
                {
                    ChuyenDi trip = cdList[i];
                    if (!ConvertToUnSign(trip.TenChuyenDi.ToLower()).Contains(unSignLowerTripName))
                    {
                        i--;
                        tripVM.TripList.Remove(trip);
                    }
                }
            }
        }
예제 #10
0
        public static ChuyenDiModel toModel(this ChuyenDi e, ILocalizationService localizationService)
        {
            var m = new ChuyenDiModel();

            m.Id             = e.Id;
            m.Ma             = e.Ma;
            m.LaiXeId        = e.LaiXeId;
            m.TenLaiXeRutGon = "";
            if (e.laixe != null)
            {
                m.TenLaiXe       = e.laixe.ThongTin();
                m.TenLaiXeRutGon = e.laixe.HoVaTen;
            }
            else
            {
                m.TenLaiXe = "";
            }
            //chi lay ten
            if (!string.IsNullOrEmpty(m.TenLaiXeRutGon))
            {
                string[] arrten = m.TenLaiXeRutGon.Split(' ');
                m.TenLaiXeRutGon = arrten[arrten.Length - 1].Trim();
            }
            else
            {
                m.TenLaiXeRutGon = "---";
            }
            m.NgayDi     = e.NgayDi;
            m.NgayDiThuc = e.NgayDiThuc;

            m.LichTrinhId  = e.LichTrinhId;
            m.TenLichTrinh = e.lichtrinh.toText(false);
            m.HanhTrinhId  = e.HanhTrinhId;
            m.TenHanhTrinh = e.hanhtrinh.MaHanhTrinh;
            if (e.DatVeHopLes() != null)
            {
                m.TienChuaThanhToan = e.DatVeHopLes().Where(c => !c.isThanhToan).Sum(c => c.GiaTien);
            }

            m.XeVanChuyenId = e.XeVanChuyenId;
            if (e.xevanchuyen != null)
            {
                m.BienSoXe = e.xevanchuyen.BienSo;
            }
            else
            {
                m.BienSoXe = "---------";
            }
            if (m.BienSoXe.Length >= 4)
            {
                m.BienSoXe3So = m.BienSoXe.Substring(m.BienSoXe.Length - 4);
            }
            else
            {
                m.BienSoXe3So = m.BienSoXe;
            }
            m.NgayTao       = e.NgayTao;
            m.NguoiTaoId    = e.NguoiTaoId;
            m.TenNguoiTao   = e.nguoitao.HoVaTen;
            m.trangthai     = e.trangthai;
            m.TrangThaiText = e.trangthai.ToCVEnumText(localizationService);
            m.GhiChu        = e.GhiChu;
            m.SoKhach       = e.DatVeHopLes().Count();
            m.SoGhe         = e.lichtrinh.loaixe.sodoghe.SoLuongGhe;
            m.TenLoaiXe     = e.lichtrinh.loaixe.TenLoaiXe;
            m.GiaVe         = e.lichtrinh.GiaVeToanTuyen;
            m.isEdit        = true;
            if (e.trangthai == ENTrangThaiXeXuatBen.KET_THUC)
            {
                m.isEdit = false;
            }

            return(m);
        }
예제 #11
0
        public JsonResult Search(ChuyenDi chuyenDi)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Model binding failed");
                return(new JsonResult(new object()));
            }
            string diemDungA = null;
            bool   isToDN    = false;

            if (chuyenDi.DiemDen.Contains("Đà Nẵng"))
            {
                isToDN    = true;
                diemDungA = chuyenDi.DiemDi;
            }
            else if (chuyenDi.DiemDi.Contains("Đà Nẵng"))
            {
                diemDungA = chuyenDi.DiemDen;
            }
            else
            {
                return(new JsonResult(new { }));
            }
            //dsDiemDungA
            var dsDiemDungA = from stop in context.DiemDung where stop.TenTinhTp == diemDungA select stop;
            //dsXeKhachA
            var dsXK_DDA = from xk_dd in context.XeKhach_DiemDung
                           from dd in dsDiemDungA
                           where xk_dd.MaDiemDung == dd.MaDiemDung
                           select xk_dd;
            //filter
            List <ChuyenDiViewModel> res = new List <ChuyenDiViewModel>();

            foreach (XeKhach_DiemDung xkdd in dsXK_DDA)
            {
                xkdd.XeKhach       = context.XeKhach.Find(xkdd.MaXeKhach);
                xkdd.XeKhach.NhaXe = context.NhaXe.Find(xkdd.XeKhach.MaNhaXe);
                xkdd.XeKhach.TaiXe = context.TaiXe.Find(xkdd.XeKhach.MaTaiXe);
                xkdd.DiemDung      = context.DiemDung.Find(xkdd.MaDiemDung);
                if (xkdd.XeKhach.NhaXe.GiaoDichCuoi.AddDays(180) < DateTime.Today)
                {
                    continue;
                }
                if (chuyenDi.TenNhaXe != null && chuyenDi.TenNhaXe != xkdd.XeKhach.NhaXe.TenNhaXe)
                {
                    continue;
                }
                if (chuyenDi.SoGhe != null && chuyenDi.SoGhe != xkdd.XeKhach.SoGhe)
                {
                    continue;
                }
                if (chuyenDi.ThoiGianDiChuyenMax != null)
                {
                    if (isToDN && chuyenDi.ThoiGianDiChuyenMax < xkdd.TGDCtoiDN)
                    {
                        continue;
                    }
                    else if (!isToDN && chuyenDi.ThoiGianDiChuyenMax < xkdd.TGDCkhoiDN)
                    {
                        continue;
                    }
                }
                if (chuyenDi.GiaVeMax != null && chuyenDi.GiaVeMax < xkdd.XeKhach.GiaVe)
                {
                    continue;
                }
                string   noiXuatPhat = null, noiDen = null;
                TimeSpan tg;
                DateTime khoiHanh;
                //giả sử đi từ A -> đà nẵng
                if (isToDN)
                {
                    noiDen      = chuyenDi.DiemDen;
                    noiXuatPhat = xkdd.DiemDung.ToString();
                    tg          = xkdd.TGDCtoiDN;
                }
                else
                {
                    noiDen      = xkdd.DiemDung.ToString();
                    noiXuatPhat = chuyenDi.DiemDi;
                    tg          = xkdd.TGDCkhoiDN;
                }
                khoiHanh = chuyenDi.NgayKhoiHanh.Add(tg);
                res.Add(new ChuyenDiViewModel(xkdd.XeKhach, noiXuatPhat, noiDen, khoiHanh, tg));
            }

            //return
            return(new JsonResult(res.ToArray()));
        }
예제 #12
0
        public ActionResult ChotKhach(int NhaXeId, int XeXuatBenId, string Email, string Password, int slpm, int sltt, string Latitude, string Longitude, string VitriChot, string apiToken)
        {
            var loginresult = _customerRegistrationService.ValidateCustomer(Email, Password);

            if (loginresult != CustomerLoginResults.Successful)
            {
                return(ErrorOccured("Tài khoản hoặc mật khẩu không đúng !"));
            }
            var tkchot = _customerService.GetCustomerByEmail(Email);

            //luu nhat ky
            _customerActivityService.InsertActivity("PublicStore.Login", "Tài khoản nhà xe đăng nhập để chốt khách", tkchot);
            //lay thong tin van phong
            var nhanvienchot = _nhanvienService.GetByCustomerId(tkchot.Id);

            if (nhanvienchot == null)
            {
                return(ErrorOccured("Thông tin người chốt không hợp lệ"));
            }
            if (!nhanvienchot.DiemDonId.HasValue)
            {
                return(ErrorOccured("Thông tin người chốt không hợp lệ"));
            }
            xexuatben = _limousinebanveService.GetChuyenDiById(XeXuatBenId);
            if (xexuatben == null)
            {
                return(ErrorOccured("Không tồn tại thông tin xe xuất bến"));
            }
            if (xexuatben.NhaXeId != NhaXeId)
            {
                return(ErrorOccured("Xe xuất bến không thuộc nhà xe"));
            }
            //thuc hien thong tin chot khach
            //kiem tra co thong tin chot trc chua
            var lschotkhach = _nhaxeService.GetChotKhachs(NhaXeId, HistoryXeXuatBenId: XeXuatBenId);
            var itemck      = new ChotKhach();

            if (lschotkhach.Count > 0)
            {
                itemck = lschotkhach.FirstOrDefault();
            }
            itemck.SoLuongThucTe      = sltt;
            itemck.SoLuongPhanMem     = slpm;
            itemck.NguoiChotId        = nhanvienchot.Id;
            itemck.DiemDonId          = nhanvienchot.DiemDonId.Value;
            itemck.NgayChot           = DateTime.Now;
            itemck.NhaXeId            = NhaXeId;
            itemck.HistoryXeXuatBenId = xexuatben.Id;
            itemck.Latitude           = Convert.ToDecimal(Latitude) / 1000000000m;
            itemck.Longitude          = Convert.ToDecimal(Longitude) / 1000000000m;
            itemck.ViTriChot          = VitriChot;
            if (itemck.Id > 0)
            {
                _nhaxeService.UpdateChotKhach(itemck);
            }
            else
            {
                _nhaxeService.InsertChotKhach(itemck);
            }
            itemck = _nhaxeService.GetChotKhachById(itemck.Id);

            string ghichu     = string.Format("Chốt khách tại {0} : SL khách thực tế/phần mềm: {1}/{2}; người chốt: {3}", itemck.diemchot.TenDiemDon, sltt, slpm, nhanvienchot.HoVaTen);
            var    item       = CreateHistoryXeXuatBenLog(xexuatben.trangthai, ghichu, XeXuatBenId, nhanvienchot.Id);
            var    nhatkyinfo = new
            {
                Id      = item.Id,
                NgayTao = item.NgayTao.toStringDateTime(),
                GhiChu  = item.GhiChu
            };

            return(Successful(nhatkyinfo));
        }
예제 #13
0
        public JsonResult XeKhach(ChuyenDi chuyenDi)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Model binding failed");
                return(new JsonResult(new { }));
            }
            var  xeKhachList = context.XeKhach.AsEnumerable <XeKhach>();
            bool val         = false;
            var  res         = xeKhachList.Where(xk => {
                //required
                foreach (var rec in xk.DiemDungList)
                {
                    if (chuyenDi.MaDiemDung.Contains(rec.MaDiemDung))
                    {
                        val |= true;
                        break;
                    }
                    val |= false;
                }
                //required
                val |= xk.GioKhoiHanh == chuyenDi.GioKhoiHanh;
                //nullable
                if (chuyenDi.TenNhaXe != null)
                {
                    val |= xk.NhaXe.TenNhaXe == chuyenDi.TenNhaXe;
                }
                if (chuyenDi.LoaiXe != null)
                {
                    val |= xk.LoaiXe == chuyenDi.LoaiXe;
                }
                if (chuyenDi.ThoiGianDiChuyenMin != null &&
                    chuyenDi.ThoiGianDiChuyenMax != null)
                {
                    if (xk.ThoiGianDiChuyen >= chuyenDi.ThoiGianDiChuyenMin &&
                        xk.ThoiGianDiChuyen <= chuyenDi.ThoiGianDiChuyenMax)
                    {
                        val |= true;
                    }
                    else
                    {
                        val |= false;
                    }
                }
                if (chuyenDi.GiaVeMin != null &&
                    chuyenDi.GiaVeMax != null)
                {
                    if (xk.GiaVe >= chuyenDi.GiaVeMin &&
                        xk.GiaVe <= chuyenDi.GiaVeMax)
                    {
                        val |= true;
                    }
                    else
                    {
                        val |= false;
                    }
                }
                //returning
                return(val);
            });
            //convert to view model
            List <ChuyenDiViewModel> models = new List <ChuyenDiViewModel>();

            foreach (XeKhach xk in res)
            {
                var diemDungList = context.DiemDung.AsEnumerable <DiemDung>();
                var fullDiemDung = from ctDiemDung in diemDungList
                                   from diemDung in xk.DiemDungList
                                   where diemDung.MaDiemDung == ctDiemDung.MaDiemDung
                                   select ctDiemDung;
                List <string> tenDiemDungList = new List <string>();
                foreach (DiemDung diemDung in fullDiemDung)
                {
                    tenDiemDungList.Add(diemDung.ToString());
                }
                models.Add(new ChuyenDiViewModel(xk, tenDiemDungList.ToArray(), chuyenDi.NgayKhoiHanh));
            }
            //return
            return(new JsonResult(models.ToArray()));
        }
예제 #14
0
        private void OnSubmit(object sender, RoutedEventArgs e)
        {
            String tripName       = txtTripName.Text;
            String curStateString = cbTrangThai.Text;
            String location       = txtLocation.Text;
            String description    = txtDescription.Text;

            if (tripName == "")
            {
                MessageBox.Show("Bạn chưa nhập tên chuyến đi");
            }
            else if (location == "")
            {
                MessageBox.Show("Bạn chưa nhập địa điểm chuyến đi");
            }

            int curState = 1;

            if (curStateString.Equals("Đang đi"))
            {
                curState = 0;
            }

            ChuyenDi newTrip = new ChuyenDi(maChuyenDi, tripName, curState, location, description, anhbiaChuyenDi);

            chuyenDiDAOImpl.addChuyenDi(newTrip);

            if (extraExpense.Count() > 0)
            {
                foreach (MucChi mucChi in extraExpense)
                {
                    mucChiDAOlmpl.addMucChi(mucChi);
                }
            }

            if (milestones.Count() > 0)
            {
                foreach (CacMocLoTrinh milistone in milestones)
                {
                    cacMocLoTrinhDAOlmpl.addCacMocLoTrinh(milistone);
                }
            }

            if (members.Count() > 0)
            {
                foreach (ThanhVien member in members)
                {
                    thanhVienDAOlmpl.addThanhVien(member);
                }

                foreach (CHUYENDI_THANHVIEN trip_member in trip_memberList)
                {
                    chuyenDiThanhVienDAOImpl.addChuyenDiThanhVien(trip_member);
                }
            }



            if (fileList.Count() > 0)
            {
                //foreach(HinhAnhChuyenDi image in images)
                //{
                //    hinhAnhChuyenDiDAOlmpl.addHinhAnhChuyenDi(image);
                //}

                var currentFolder = AppDomain.CurrentDomain.BaseDirectory;

                foreach (string file in fileList)
                {
                    var info    = new FileInfo(file);
                    var newName = $"{Guid.NewGuid()}{info.Extension}";
                    File.Copy(file, $"{currentFolder}Assets\\Images\\{newName}");
                    HinhAnhChuyenDi newImage = new HinhAnhChuyenDi()
                    {
                        HinhAnh = newName, MaChuyenDi = this.maChuyenDi
                    };
                    hinhAnhChuyenDiDAOlmpl.addHinhAnhChuyenDi(newImage);
                }
            }
            //ChuyenDi newTrip = new ChuyenDi(maChuyenDi, tripName, curState, location, description, anhbia);
            //chuyenDiDAOImpl.addChuyenDi(newTrip);
            if (anhbiaChuyenDi != "")
            {
                var    currentFolder = AppDomain.CurrentDomain.BaseDirectory;
                string file          = AvatarName;
                File.Copy(file, $"{currentFolder}Assets\\Images\\{newNameAvt}");
            }
            MessageBox.Show("Đã hoàn thành");
        }
예제 #15
0
        private void filterByMember()
        {
            cdList.Clear();
            foreach (var trip in cdDao.GetAllChuyenDi())
            {
                cdList.Add(trip);
            }
            String filterQuery = keywordTextBox.Text;

            if (!filterQuery.Equals(""))
            {
                String unSignLowerMemberName            = ConvertToUnSign(filterQuery.ToLower());
                ChuyenDiThanhVienDAOImpl  tripMemberDAO = new ChuyenDiThanhVienDAOImpl();
                List <CHUYENDI_THANHVIEN> trip_members  = tripMemberDAO.GetCHUYENDI_THANHVIENList();

                ThanhVienDAOlmpl memberDAO = new ThanhVienDAOlmpl();
                List <ThanhVien> members   = memberDAO.GetAllThanhVien();

                for (int i = 0; i < members.Count(); i++)
                {
                    ThanhVien member = members[i];
                    String    unSignLowerMemberNameItem = ConvertToUnSign(member.TenThanhVien.ToLower());
                    if (!unSignLowerMemberNameItem.Contains(unSignLowerMemberName))
                    {
                        members.Remove(member);
                        i--;
                    }
                }

                for (int i = 0; i < trip_members.Count(); i++)
                {
                    CHUYENDI_THANHVIEN trip_member = trip_members[i];
                    for (int j = 0; j < members.Count(); j++)
                    {
                        if (trip_member.MaThanhVien.Equals(members[j].MaThanhVien))
                        {
                            break;
                        }

                        if (j == members.Count() - 1)
                        {
                            trip_members.Remove(trip_member);
                            i--;
                        }
                    }
                }

                for (int i = 0; i < cdList.Count(); i++)
                {
                    ChuyenDi trip = cdList[i];
                    for (int j = 0; j < trip_members.Count(); j++)
                    {
                        if (trip.MaChuyenDi.Equals(trip_members[j].MaChuyenDi))
                        {
                            break;
                        }

                        if (j == trip_members.Count() - 1)
                        {
                            i--;
                            tripVM.TripList.Remove(trip);
                        }
                    }
                }
            }
        }