public frmAllotmentRoomTypeEditor(Models.Hotel h) { InitializeComponent(); rtbo = new BO.AllotmentRoomTypeBO(); _rt = new Models.AllotmentRoomType(); _rt.HotelId = h.HotelId; }
// bool remove2020Only; public FrmHotelCloseDateViewer(Models.Hotel h) { InitializeComponent(); _hotel = h; dgRecords.CellClick += DgRecords_CellClick; dgRecords.AutoGenerateColumns = false; }
public FrmAllotmentRoomTypes(Models.Hotel h) { InitializeComponent(); _h = h; dgAllotmentRoomTypes.CellClick += DgAllotmentRoomTypes_CellClick; dgAllotmentRoomTypes.AutoGenerateColumns = false; }
public frmContractRoomEditor(Models.Hotel h) { MyInitialize(); _hotel = h; _room = new Models.ContractRoom { HotelId = h.HotelId }; }
public frmHotelEditor(int hotelId) { ctbo = new BO.CityBO(); InitializeComponent(); hbo = new BO.HotelBO(); _hotel = hbo.GetHotel(hotelId); InitializeDataView(); }
public frmHotelEditor() { InitializeComponent(); hbo = new BO.HotelBO(); _hotel = new Models.Hotel(); InitializeDataView(); ctbo = new BO.CityBO(); }
private void frmAllotmentRoomTypeEditor_Load(object sender, EventArgs e) { if (_rt.RecordId != 0) { txtDefaultAllotment.Text = _rt.DefaultAllotment.ToString(); txtRoomName.Text = _rt.RoomName; cxIgnoreThis.Checked = _rt.IgnoreThisRoomType; btnAction.Text = "Update"; } else { btnAction.Text = "Add"; btnDelete.Enabled = false; txtDefaultAllotment.Text = "1"; } var hbo = new BO.HotelBO(); _hotel = hbo.GetHotel(_rt.HotelId); lblHotelName.Text = _hotel.HotelName; }
private void btnImport_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); dlg.ShowDialog(); var path = dlg.FileName; if (string.IsNullOrEmpty(path)) { return; } var dicColumns = new Dictionary <string, int>(); var csv = new CsvReader(File.OpenText(path)); csv.Read(); csv.ReadHeader(); var headerRow = csv.Context.HeaderRecord; for (var i = 0; i < headerRow.Count(); i++) { var name = headerRow[i]; dicColumns.Add(name, i); } var records = csv.GetRecords <CsvRow>(); foreach (var record in records) { var hbo = new BO.HotelBO(); var hotel = hbo.GetHotel(record.HotelName); if (hotel == null) { hotel = hbo.GetQueryable(null).SingleOrDefault(h => h.HMSID == record.Id); } if (hotel == null) { hotel = new Models.Hotel(); hotel.CheckAllotment = true; } hotel.HotelName = record.HotelName; hotel.HMSID = record.Id; hotel.StarRating = decimal.Parse(record.StarRating); if (hotel.CityId == 43 || hotel.CityId == 0)//43 is unknown { var cbo = new BO.CityBO(); var c = cbo.GetQueryable().FirstOrDefault(f => f.CityCode == record.CityCode); if (c == null) { c = new Models.City(); c.CityCode = record.CityCode; c.CityName = record.CityCode; c.HasAirport = false; cbo.Add(c); } hotel.CityId = c.CityId; } if (hotel.HotelId == 0) { hbo.Add(hotel); } else { hbo.Save(); } } MessageBox.Show("Done"); }
public frmContractRoomEditor(Models.ContractRoom r) { MyInitialize(); _room = crbo.GetRoom(r.RoomId); _hotel = _room.Hotel; }
void CrawlSingleHotel(Models.Hotel h) { _wk.ReportProgress(0, "Crawl hotel " + h.HotelName); objBrowse._inputDatas["HMSID"] = h.HMSID; objBrowse.ExecuteAction(false); objGetWebRoomTypes.ExecuteAction(false); //Find out what room types are available var crTypes = h.ContractRooms.ToList(); var opthtml = objGetWebRoomTypes._ReturnDataCollection["cmbRoomTypeInnerHtml"] as string; var rtdoc = new HtmlAgilityPack.HtmlDocument(); rtdoc.LoadHtml(opthtml); var opts = rtdoc.DocumentNode.SelectNodes("//option"); var rts = opts.Select(o => o.InnerText).ToList(); foreach (var cr in crTypes) { if (!opts.Any(x => x.InnerText == cr.RoomName)) { var editor = new frmRoomTypeReMatch(cr, rts); if (editor.ShowDialog() == DialogResult.Cancel) { return; } } } var validDate = h.ContractValidTo; if (validDate < DateTime.Now.Date) { return; } //here is the limit of HMS if (validDate > DateTime.Today.AddDays(365)) { validDate = DateTime.Today.AddDays(365); } var fromDate = h.ContractValidFrom; var minDt = DateTime.UtcNow.Date.AddDays(h.MinCutOffDates); if (fromDate < minDt) { fromDate = minDt; } //reload room types to update var crbo = new BO.ContractRoomBO(); crTypes = crbo.GetQueryable(h.HotelId).ToList(); objEnterData._inputDatas["ToDate"] = validDate.ToString("MM/dd/yyyy"); objEnterData._inputDatas["FromDate"] = fromDate.ToString("MM/dd/yyyy"); objEnterData.ExecuteAction(false); foreach (var cr in crTypes) { objClickCmbRoomTypes.ExecuteAction(false); /* We don't want to get text into XPath because it can causes err*/ var cmbXPath = objGetWebRoomTypes._ActionData.ElementLabels.FirstOrDefault().XPath; cmbXPath += "/option"; var elmOption = Modules.BrowserSupport.FindElementInCollection(cmbXPath, cr.RoomName); elmOption.Click(); objClick.ExecuteAction(false); objGetHtml.ExecuteAction(false); var html = objGetHtml._ReturnDataCollection["PageHtml"] as string; var analyzer = new Modules.AllotmentAnalyzer(true); var records = analyzer.AnalyzeData(html); foreach (var record in records) { var rbo = new BO.AllotmentRoomTypeBO(); var rtype = rbo.GetRecord(h.HotelId, record.RoomName); if (rtype == null) { rtype = new Models.AllotmentRoomType(); rtype.RoomName = record.RoomName; rtype.HotelId = h.HotelId; rtype.DefaultAllotment = 1; rbo.Add(rtype); } if (record.Allotment >= rtype.DefaultAllotment) { continue; } var arbo = new BO.AllotmentRecordBO(); //while record date is 12:00:00AM, saving in db will change it to 00:00:00 //so we never get the record. need to reset all to zero here var dt = record.Date; dt = new DateTime(dt.Year, dt.Month, dt.Day); if (record.Allotment < rtype.DefaultAllotment) { var r = arbo.GetRecord(dt, rtype.RecordId); if (r == null) { r = new Models.AllotmentRecord(); r.CurrentAllotment = record.Allotment; r.AllotmentDate = dt; r.Acknowledged = false; r.AllotmentRoomTypeId = rtype.RecordId; arbo.Add(r); } else { //REcord existed, may be acknowledged may be not. Just leave it there if (record.Allotment < r.CurrentAllotment) { //Need to notify us again r.Acknowledged = false; arbo.Save(); } } } } } // var path = @"C:\Users\Thuy Tran\Documents\AllDocs\Disposable\Test\allotment" + h.HotelId + "-" + DateTime.Now.ToString("mm-dd-yyyy-hh-mm-ss") + ".txt"; //System.IO.File.WriteAllText(path, html); }