Example #1
0
        public QPS.NEW.Model.Room GetModel(int Id)
        {
            QPS.NEW.Model.Room room = null;

            DataTable dt = sqlHelper_.GetDataTable(
                "select * from Room where Id=@id",
                CommandType.Text,
                new System.Data.SqlClient.SqlParameter[]
                {
                    new System.Data.SqlClient.SqlParameter("@id",Id)
                }
                );

            if (dt != null && dt.Rows.Count > 0)
            {
                room = new Model.Room();

                room.Id = Convert.ToInt32(dt.Rows[0]["Id"]);
                room.Name = dt.Rows[0]["Name"].ToString();
                room.RoomType = dt.Rows[0]["RoomType"].ToString();
                room.RoomPrice = Convert.ToDecimal(dt.Rows[0]["RoomPrice"]);
                room.Are = dt.Rows[0]["Are"].ToString();
                room.Address = dt.Rows[0]["Address"].ToString();
                room.ImagePath = dt.Rows[0]["ImagePath"].ToString();
                room.Content = dt.Rows[0]["Content"].ToString();
                room.RoomState = Convert.ToInt32(dt.Rows[0]["RoomState"]);
                room.OwnerID = Convert.ToInt32(dt.Rows[0]["OwnerID"]);
                room.IfRecommend = Convert.ToInt32(dt.Rows[0]["IfRecommend"]);
                room.Examine = Convert.ToInt32(dt.Rows[0]["IfExamine"]);
                room.RecommendTime = dt.Rows[0]["RecommendTime"].ToString();
            }

            return room;
        }
Example #2
0
        public List <Model.Room> LoadRoom()
        {
            List <Model.Room> rooms = new List <Model.Room>();

            try
            {
                String       line;
                StreamReader sr = new StreamReader(FileLocation);

                while ((line = sr.ReadLine()) != null)
                {
                    string[] words = line.Split(',');

                    Model.Room ro = new Model.Room(int.Parse(words[0]), words[1], int.Parse(words[2]),
                                                   double.Parse(words[3]), (Model.RoomType)Enum.Parse(typeof(Model.RoomType), words[4]));

                    rooms.Add(ro);

                    next_roomID = ro.RoomId;
                }
                next_roomID++;

                sr.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception: " + e.Message);
            }
            finally
            {
                Console.WriteLine("Executing finally block.");
            }

            return(rooms);
        }
        public Model.Room Save(Model.Room entity)
        {
            RoomDaoStorage.Rooms.Add(entity);
            RoomDaoStorage.Dictionary.Add(entity.Id, entity);

            return(entity);
        }
 private void ChangeArea()
 {
     Model.Room room = roomController.GetByIdRoom(int.Parse(renovationSeparation.cbRooms.SelectedItem.ToString()));
     room.Area -= double.Parse(tbuArea.Text);
     roomController.UpdateRoom(room.RoomId, room.Description, room.Area, room.RoomType);
     renovationSeparation.LoadArea();
 }
 public void CreateRoom()
 {
     Model.Room room = new Model.Room(int.Parse(lbuID.Content.ToString()), tbuDescription.Text,
                                      int.Parse(lbuFloor.Content.ToString()), double.Parse(lbArea.Content.ToString()),
                                      (Model.RoomType)Enum.Parse(typeof(Model.RoomType), cbRoomType.Text));
     roomController.CreateRoom(room);
 }
Example #6
0
        public RoomResult Find(long id)
        {
            Model.Room entity = Dao.Find(id);
            RoomResult result = ResultConverter.Convert(entity);

            return(result);
        }
Example #7
0
        public void CreateRoom(Model.Room newRoom)
        {
            List <Model.Room> rooms = GetAllRooms();

            rooms.Add(newRoom);
            roomRepository.SaveRoom(rooms);
        }
 public void OnNavigatedTo(NavigationContext navigationContext)
 {
     if (navigationContext.Parameters["room"] is Model.Room room)
     {
         Room = room;
     }
 }
        public Model.Room Update(Model.Room entity)
        {
            Delete(entity.Id);
            Save(entity);

            return(entity);
        }
        private void dgvRoom_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView dgv = sender as DataGridView;

            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                room.floorNum      = dgv.Rows[e.RowIndex].Cells[0].Value.ToString();
                room.roomID        = dgv.Rows[e.RowIndex].Cells[1].Value.ToString();
                room.liveState     = dgv.Rows[e.RowIndex].Cells[2].Value.ToString() == "已住" ? 1 : 0;
                room.cleanState    = dgv.Rows[e.RowIndex].Cells[3].Value.ToString() == "已打扫" ? 1 : 0;
                room.damageState   = dgv.Rows[e.RowIndex].Cells[4].Value.ToString() == "未损坏" ? 1 : 0;
                room.roomTypeID    = dgv.Rows[e.RowIndex].Cells[5].Value.ToString();
                room.roomAbandoned = dgv.Rows[e.RowIndex].Cells[6].Value.ToString() == "未禁用" ? 1 : 0;
            }
            else
            {
                room = new Model.Room();
                if (sortOrder == 0)
                {
                    dgv.Sort(dgv.Columns[e.ColumnIndex], ListSortDirection.Descending);
                    sortOrder++;
                }
                else
                {
                    dgv.Sort(dgv.Columns[e.ColumnIndex], ListSortDirection.Ascending);
                    sortOrder--;
                }
            }
        }
Example #11
0
        public QPS.NEW.Model.Room GetModel(int Id)
        {
            QPS.NEW.Model.Room room = null;

            DataTable dt = sqlHelper_.GetDataTable(
                "select * from Room where Id=@id",
                CommandType.Text,
                new System.Data.SqlClient.SqlParameter[]
            {
                new System.Data.SqlClient.SqlParameter("@id", Id)
            }
                );

            if (dt != null && dt.Rows.Count > 0)
            {
                room = new Model.Room();

                room.Id            = Convert.ToInt32(dt.Rows[0]["Id"]);
                room.Name          = dt.Rows[0]["Name"].ToString();
                room.RoomType      = dt.Rows[0]["RoomType"].ToString();
                room.RoomPrice     = Convert.ToDecimal(dt.Rows[0]["RoomPrice"]);
                room.Are           = dt.Rows[0]["Are"].ToString();
                room.Address       = dt.Rows[0]["Address"].ToString();
                room.ImagePath     = dt.Rows[0]["ImagePath"].ToString();
                room.Content       = dt.Rows[0]["Content"].ToString();
                room.RoomState     = Convert.ToInt32(dt.Rows[0]["RoomState"]);
                room.OwnerID       = Convert.ToInt32(dt.Rows[0]["OwnerID"]);
                room.IfRecommend   = Convert.ToInt32(dt.Rows[0]["IfRecommend"]);
                room.Examine       = Convert.ToInt32(dt.Rows[0]["IfExamine"]);
                room.RecommendTime = dt.Rows[0]["RecommendTime"].ToString();
            }

            return(room);
        }
Example #12
0
        //public RoomProcessor(IRoomDao dao, IRoomParamConverter paramConverter,
        //    IRoomResultConverter resultConverter)
        //{
        //    this.Dao = dao;
        //    this.ParamConverter = paramConverter;
        //    this.ResultConverter = resultConverter;
        //}

        public RoomResult Create(RoomParam param)
        {
            Model.Room entity = ParamConverter.Convert(param, null);

            entity = Dao.Save(entity);

            return(ResultConverter.Convert(entity));
        }
 private void deleteAllRooms()
 {
     for (int i = 0; i < lvDataBindingRooms.Items.Count; i++)
     {
         Model.Room room = (Model.Room)lvDataBindingRooms.Items[i];
         LoadEquipmentFromRoom(room.RoomId);
         roomController.DeleteRoom(room.RoomId);
     }
 }
 private void btMerge_Click(object sender, RoutedEventArgs e)
 {
     Model.Room room = roomController.GetByIdRoom(int.Parse(cbRooms.SelectedItem.ToString()));
     if (checkFloor(room.Floor))
     {
         lvDataBindingRooms.Items.Add(room);
         LoadArea();
         LoadFloor();
     }
 }
        private void LoadArea()
        {
            double area = 0;

            for (int i = 0; i < lvDataBindingRooms.Items.Count; i++)
            {
                Model.Room room = (Model.Room)lvDataBindingRooms.Items[i];
                area += room.Area;
            }
            lbArea.Content = area;
        }
Example #16
0
        //Get Hotel list
        public List <Model.Hotel> GetAllHotel()
        {
            var entities            = _dbContext.Hotels.ToList();
            List <Model.Hotel> list = new List <Model.Hotel>();

            if (entities != null)
            {
                foreach (var item in entities)
                {
                    Model.Hotel hotel = new Model.Hotel();

                    hotel.Id            = item.Id;
                    hotel.Name          = item.Name;
                    hotel.Address       = item.Address;
                    hotel.City          = item.City;
                    hotel.Pincode       = item.Pincode;
                    hotel.ContactNumber = item.ContactNumber;
                    hotel.ContactPerson = item.ContactPerson;
                    hotel.IsActive      = item.IsActive;
                    hotel.CreatedDate   = item.CreatedDate;
                    hotel.CreatedBy     = item.CreatedBy;

                    hotel.Rooms = new List <Model.Room>();
                    foreach (var room in item.Rooms)
                    {
                        Model.Room hotelroom = new Model.Room();
                        hotelroom.Id          = room.Id;
                        hotelroom.HotelId     = room.HotelId;
                        hotelroom.Name        = room.Name;
                        hotelroom.Price       = room.Price;
                        hotelroom.IsActive    = room.IsActive;
                        hotelroom.CreatedBy   = room.CreatedBy;
                        hotelroom.CreatedDate = room.CreatedDate;
                        hotelroom.CategoryId  = room.CategoryId;
                        hotelroom.Bookings    = new List <Model.Booking>();
                        foreach (var booking in room.Bookings)
                        {
                            Model.Booking hotelroombooking = new Model.Booking();
                            hotelroombooking.Id              = booking.Id;
                            hotelroombooking.RoomId          = booking.RoomId;
                            hotelroombooking.Id              = booking.Id;
                            hotelroombooking.BookingDate     = booking.BookingDate;
                            hotelroombooking.BookingStatusId = booking.BookingStatusId;
                            hotelroom.Bookings.Add(hotelroombooking);
                        }
                        hotel.Rooms.Add(hotelroom);
                    }
                    list.Add(hotel);
                }
            }
            List <Model.Hotel> SortedList = list.OrderBy(o => o.Name).ToList();

            return(SortedList);
        }
Example #17
0
        public void Update(List <RoomParam> param)
        {
            //List<UniversityDemo.Room> entities = new List<UniversityDemo.Room>();

            foreach (var item in param)
            {
                Model.Room oldEntity = Dao.Find(item.Id);
                Model.Room newEntity = ParamConverter.Convert(item, null);

                Dao.Update(newEntity);
            }
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            A6.InnerText = ">>";
            A7.InnerText = "编辑员工";
            if (e.CommandName == "editt")
            {
                int xy = Convert.ToInt32(e.CommandArgument);
                Div1.Visible      = true;
                Button9.Text      = "确定";
                GridView1.Visible = false;
                if (GridView1.Visible == true)
                {
                    Button2.Visible  = true;
                    Button4.Visible  = true;
                    Button3.Visible  = true;
                    ListBox9.Visible = true;
                    TextBox6.Visible = true;
                }
                else if (GridView1.Visible == false)
                {
                    Button2.Visible  = false;
                    Button4.Visible  = false;
                    Button3.Visible  = false;
                    ListBox9.Visible = false;
                    TextBox6.Visible = false;
                }
                TextBox1.Text = GridView1.Rows[xy].Cells[1].Text;
                Model.staff pos = new DAL.StaffDAO().getStaffByNum(GridView1.Rows[xy].Cells[1].Text);
                TextBox2.Text = pos.StaffName;
                TextBox3.Text = pos.DepartId;


                ListBox7.Text = pos.Gender;
                TextBox7.Text = pos.IdCard;
                TextBox8.Text = pos.PhoneNumber;
            }
            if (e.CommandName == "deletee")
            {
                Model.Room delete = new Model.Room();
                int        x      = Convert.ToInt32(e.CommandArgument);
                delete.RoomNum = GridView1.Rows[x].Cells[1].Text;
                bool yy = new DAL.RoomDAO().deleteRoomByNum(delete.RoomNum);
                if (yy)
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "alert('删除成功!');", true);
                    rg.Refresh("select * from Room", "roomNum", GridView1);
                }
                else
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "alert('删除失败!');", true);
                }
            }
        }
Example #19
0
 private void Update_room(object sender, RoutedEventArgs e)
 {
     ur = new UpdateRoom(this);
     ur.Show();
     Model.Room selected = (Model.Room)lvDataBinding.SelectedItems[0];
     ur.lbuID.Content       = selected.RoomId.ToString();
     ur.lbuFloor.Content    = selected.Floor.ToString();
     ur.tbuArea.Text        = selected.Area.ToString();
     ur.tbuDescription.Text = selected.Description;
     ur.cbRoomType.Text     = selected.RoomType.ToString();
     this.Close();
 }
Example #20
0
        public void Update(long id, RoomParam param)
        {
            Model.Room oldEntity = Dao.Find(id);

            if (oldEntity != null)
            {
                Dao.Delete(oldEntity);
                Dao.Update(ParamConverter.Convert(param, null));
            }
            else
            {
                Console.WriteLine($"No entity with Id = {id}  was found");
            }
        }
Example #21
0
        private void Book_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Button button = (Button)sender;
                string number = (string)button.Tag;

                Random     rand     = new Random();
                int        discount = GetDiscount();
                Model.Pay  pay      = new Model.Pay();
                Model.Room room     = new Model.Room();

                room         = Manipulation.db.Rooms.Find(number);
                room.Booking = "Да";

                Model.Booking booking = new Model.Booking
                {
                    Booking_number = Randomizer(rand, 1000, 100000),
                    Client_code    = client1.Client_code,
                    Client         = client1,
                    Arrivall       = DateTime.Parse(arrival.Text),
                    DateOfBooking  = DateTime.Today,
                    Departuree     = DateTime.Parse(departure.Text),
                    TypeOfFood     = (string)TypeOfFood.SelectedItem,
                    TypeOfFood1    = Manipulation.db.TypeOfFoods.Find((string)TypeOfFood.SelectedItem),
                    Payment_number = Randomizer(rand, 1000, 100000),
                    Room           = room,
                    Room_code      = room.Room_code
                };
                booking.Pay = new Model.Pay()
                {
                    Payment_number = booking.Payment_number,
                    DateOfPay      = DateTime.Today,
                    Client         = client1,
                    Payer          = client1.Client_code,
                    Card_number    = Randomizer(rand, 10000, 100000).ToString(),
                    Summ           = booking.TypeOfFood1.Summa + room.CategoryOfRoom.Cost * Nights - discount * 10 / 100
                };

                Manipulation.db.Bookings.Add(booking);

                MessageBox.Show(String.Concat("Вы зарегестрировали бронь!\n", "Ваша скидка - ", discount, " %"), "Поздравляем!");
                Manipulation.db.SaveChanges();
                ClearItems();
            }
            catch (NullReferenceException ex) { MessageBox.Show("Заполните все данные!"); }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex) { MessageBox.Show("Заполните все данные!"); }
            catch (Exception exp) { MessageBox.Show(exp.Message, "Упс.."); }
        }
Example #22
0
        public void UpdateRoom(Model.Room room)
        {
            using (var db = new LiteDatabase(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyData.db")))
            {
                var col  = db.GetCollection <Model.Room>("Room");
                var data = col.FindById(room.Id);

                if (data == null)
                {
                    return;
                }

                col.Upsert(room);
            }
        }
Example #23
0
        public RoomResult Convert(Model.Room param)
        {
            RoomResult result = new RoomResult()
            {
                Id          = param.Id,
                Code        = param.Code,
                Name        = param.Name,
                Description = param.Description,

                StatusId   = param.Status.Id,
                StatusName = param.Status.Name
            };

            return(result);
        }
 private bool checkFloor(int Floor)
 {
     if (lvDataBindingRooms.Items.IsEmpty)
     {
         return(true);
     }
     else
     {
         Model.Room FirstRoom = (Model.Room)lvDataBindingRooms.Items[0];
         if (Floor != FirstRoom.Floor)
         {
             MessageBox.Show("Mogu se spajati samo sobe koje su na istom spratu");
             return(false);
         }
     }
     return(true);
 }
        public void LoadData_RoomInfo()
        {
            room       = new Model.Room();
            dsRoomInfo = new BLL.Room().GetListRoomInfo("");

            dgvRoom.DataSource = dsRoomInfo.Tables["ds"];
            int columnNumber = dgvRoom.ColumnCount;

            foreach (DataGridViewColumn col in dgvRoom.Columns)
            {
                col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                col.SortMode   = DataGridViewColumnSortMode.NotSortable;
                col.FillWeight = 100 / columnNumber;
            }
            dgvRoom.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvRoom.AllowUserToAddRows = false;
            dgvRoom.RowHeadersVisible  = false;
            dgvRoom.ReadOnly           = true;
        }
        private void RoomAbandonedRefesh(string floorNum, string roomNum)
        {
            room = new Model.Room();
            DataSet ds = new BLL.Room().GetListRoomInfo(String.Format(" floorNum = '{0}' and roomID = '{1}' ", floorNum, roomNum));

            dgvRoom.DataSource = ds.Tables["ds"];
            int columnNumber = dgvRoom.ColumnCount;

            foreach (DataGridViewColumn col in dgvRoom.Columns)
            {
                col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                col.SortMode   = DataGridViewColumnSortMode.NotSortable;
                col.FillWeight = 100 / columnNumber;
            }
            dgvRoom.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvRoom.AllowUserToAddRows = false;
            dgvRoom.RowHeadersVisible  = false;
            dgvRoom.ReadOnly           = true;
        }
        private void CreateRoom()
        {
            Model.Room room = new Model.Room(int.Parse(lbuID.Content.ToString()), tbuDescription.Text, int.Parse(lbuFloor.Content.ToString()),
                                             double.Parse(tbuArea.Text), (Model.RoomType)Enum.Parse(typeof(Model.RoomType), cbRoomType.Text));
            if (room.Area > double.Parse(renovationSeparation.lbArea.Content.ToString()))
            {
                MessageBox.Show("Površina ne može biti veća od " + renovationSeparation.lbArea.Content.ToString());
            }
            else
            {
                roomController.CreateRoom(room);
                renovationSeparation.lvDataBindingRooms.Items.Add(room);
                ChangeArea();
                moveStaticEquipment();
                addRenovation();
                renovationSeparation.Show();

                this.Close();
            }
        }
Example #28
0
        public Model.Room RecordRoom(String id)
        {
            try
            {
                DataTable dt;
                dt = new DataTable();
                dt = this.db.execQuery("Sp_RoomSelById", new object[] { id });
                Model.Room rm = new Model.Room();
                if (dt.Rows.Count > 0)
                {
                    rm.room_id = dt.Rows[0]["room_id"].ToString();
                    rm.room_name = dt.Rows[0]["room_name"].ToString();
                }

                return rm;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #29
0
 private void Button_Click_Ok(object sender, RoutedEventArgs e)
 {
     if (tbDescription.Text == "" || tbDescription.Text == null || tbArea.Text == "" || tbArea.Text == null ||
         tbFloor.Text == "" || tbFloor.Text == null || cbRoomType.Text == "")
     {
         MessageBox.Show("Niste popunili sva polja!", "Upozorenje!", MessageBoxButton.OK, MessageBoxImage.Warning);
     }
     else
     {
         var        room_list = new RoomList();
         Model.Room room      = new Model.Room(roomList.control.roomService.roomRepository.next_roomID, tbDescription.Text,
                                               int.Parse(tbFloor.Text), double.Parse(tbArea.Text),
                                               (Model.RoomType)Enum.Parse(typeof(Model.RoomType), cbRoomType.Text));
         roomList.control.roomService.roomRepository.next_roomID++;
         roomList.control.CreateRoom(room);
         roomList.Load();
         room_list.Show();
         this.Close();
         MessageBox.Show("Uspešno ste kreirali salu!", "Uspešno!", MessageBoxButton.OK, MessageBoxImage.Information);
     }
 }
Example #30
0
        /// <summary>
        /// Creates a new instance of a room view model
        /// </summary>
        public RoomVM(string RoomName, int RoomNumber)
        {
            InitializeCommands();
            StripViewModel = new StripVM()
            {
                RoomNumber = RoomNumber
            };
            PanelViewModel = new PanelVM()
            {
                RoomNumber = RoomNumber
            };
            // Subscribe room to view model's properties
            StripViewModel.PropertyChanged     += Shelving_PropertyChanged;
            PanelViewModel.PropertyChanged     += Shelving_PropertyChanged;
            ShelfViewModel.PropertyChanged     += Shelving_PropertyChanged;
            AccessoryViewModel.PropertyChanged += Shelving_PropertyChanged;


            DataSet dataset = new DataSet();

            dataset.ReadXml("StripColorData.xml");
            StripColorData = dataset.Tables[0];

            dataset = new DataSet();
            dataset.ReadXml("ShelvingDepthData.xml");
            ShelvingDepthData = dataset.Tables[0];

            dataset = new DataSet();
            dataset.ReadXml("WoodData.xml");
            WoodData = dataset.Tables[0];


            Room = new Model.Room(RoomName, RoomNumber)
            {
                WoodColorValues     = new ObservableCollection <string>(GetWoodColorVales()),
                StripColorValues    = new ObservableCollection <string>(GetStripColorValues()),
                ShelvingDepthValues = new ObservableCollection <string>(GetShelvingDepthValues())
            };
            Room.PropertyChanged += Room_PropertyChanged;
        }
Example #31
0
        static RoomDaoStorage()
        {
            Model.Room room1 = new Model.Room()
            {
            };

            Model.Room room2 = new Model.Room()
            {
            };

            Model.Room room3 = new Model.Room()
            {
            };

            Rooms.Add(room1);
            Rooms.Add(room2);
            Rooms.Add(room3);

            Dictionary.Add(room1.Id, room1);
            Dictionary.Add(room2.Id, room2);
            Dictionary.Add(room3.Id, room3);
        }
        public Model.Room Convert(RoomParam param, Model.Room oldEntity)
        {
            Model.Room entity = null;

            if (oldEntity != null)
            {
                entity = oldEntity;
            }
            else
            {
                entity = new Model.Room
                {
                    Code        = param.Code,
                    Id          = param.Id,
                    Description = param.Description,
                    Name        = param.Name
                };
            }

            entity.Status = StatusDao.Find(param.StatusId);

            return(entity);
        }
Example #33
0
        /// <summary>
        /// 部屋情報を取得します。
        /// </summary>
        /// <param name="url">配信Url</param>
        /// <returns></returns>
        /// <exception cref="CaveTube.CaveTalk.Lib.CommentException" />
        public Room GetRoom(String url)
        {
            var room = this.GetRoomInfo(url);

            var summary = room.Summary;
            // DBの部屋情報を更新します。
            var dbRoom = new Model.Room {
                RoomId = summary.RoomId,
                Title = summary.Title,
                Description = summary.Description,
                Tags = String.Join(" ", summary.Tags),
                IdVisible = summary.IdVidible,
                AnonymousOnly = summary.AnonymousOnly,
                Author = summary.Author,
                StartTime = summary.StartTime,
            };
            Model.Room.UpdateRoom(dbRoom);

            // コメントをDBに保存します。
            this.NewMessage(room.Summary, room.Messages);

            return room;
        }
Example #34
0
		/// <summary>
		/// 部屋情報を取得します。
		/// </summary>
		/// <param name="url">配信Url</param>
		/// <returns></returns>
		/// <exception cref="CaveTube.CaveTalk.Lib.CommentException" />
		public async Task<Room> GetRoomAsync(String url) {
			var room = await this.GetRoomInfoAsync(url);
			if (room.Summary == null) {
				return null;
			}

			var summary = room.Summary;

			// DBの部屋情報を更新します。
			var dbRoom = new Model.Room {
				RoomId = summary.RoomId,
				Title = summary.Title,
				Description = summary.Description,
				Tags = String.Join(" ", summary.Tags),
				IdVisible = summary.IdVidible,
				AnonymousOnly = summary.AnonymousOnly,
				Author = summary.Author,
				StartTime = summary.StartTime,
			};
			Model.Room.UpdateRoom(dbRoom);

			this.NewMessage(room.Summary, room.Messages);

			return room;
		}
 private void SaveRooms(List<Contract.Room> allRooms)
 {
     lock (fileLock)
     {
         using (var context = DatabaseContext.Instance.MakeChat())
         {
             try
             {
                 foreach (var room in allRooms)
                 {
                     var dbRoom = context.Room.FirstOrDefault(r => r.Name == room.Name);
                     if (dbRoom == null) // новая комната - вставляем в БД
                     {
                         var newRoom = new Model.Room
                             {
                                 Name = room.Name,
                                 Owner = room.Owner,
                                 Description = room.Description,
                                 Greeting = room.Greeting,
                                 Password = room.Password,
                                 ExpireTimeStamp = room.ExpireTime,
                                 IsBound = room.IsBound
                             };
                         context.Room.Add(newRoom);
                     }
                     else // существующая комната - обновляем БД // TODO: проверить необходимость обновления
                     {
                         dbRoom.Owner = room.Owner;
                         dbRoom.Description = room.Description;
                         dbRoom.Greeting = room.Greeting;
                         dbRoom.Password = room.Password;
                         dbRoom.ExpireTimeStamp = room.ExpireTime;
                         dbRoom.IsBound = room.IsBound;
                     }
                 }
                 // удаленные комнаты удаляем из БД
                 foreach (var dbRoom in context.Room)
                 {
                     var room = allRooms.FirstOrDefault(r => r.Name == dbRoom.Name);
                     if (room == null)
                         context.Room.Remove(dbRoom);
                 }
                 context.SaveChanges();
             }
             catch (Exception ex)
             {
                 Logger.Error("SaveRooms()", ex);
             }
         }
     }
 }