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;
 }
Exemple #3
0
 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
     };
 }
Exemple #5
0
 public frmHotelEditor(int hotelId)
 {
     ctbo = new BO.CityBO();
     InitializeComponent();
     hbo    = new BO.HotelBO();
     _hotel = hbo.GetHotel(hotelId);
     InitializeDataView();
 }
Exemple #6
0
 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;
        }
Exemple #8
0
        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;
 }
Exemple #10
0
        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);
        }