public NoticeViewPage(int noticeId, RespShowNotice notice) { InitializeComponent(); m_noticeId = noticeId; m_viewModel = new ViewModel(notice); BindingContext = m_viewModel; }
public RespShowNotice ShowNotice(int noticeid) { RespShowNotice result = null; DoRequest<ReqShowNotice, RespShowNotice>( (send) => { send.SetParameter(new ReqShowNotice { noticeID = noticeid }); }, (recv) => { result = recv.param; }); return result; }
public RespShowNotice SendShowNotice(int noticeid) { RespShowNotice result = null; m_notiPP.DoRequest <ReqShowNotice, RespShowNotice>("ReqShowNotice", (send) => { send.SetParameter(new ReqShowNotice { noticeID = noticeid }); }, (recv) => { result = recv.param; }); return(result); }
private async void Handle_ItemTapped(object sender, ItemTappedEventArgs e) { if (e.Item != null) { var data = postList.SelectedItem as ViewModel.Item; RespShowNotice posting = null; postList.SelectedItem = null; await App.RunLongTask(() => { posting = App.instance.core.notice.ShowNotice(data.noticeId); }); if (posting == null) { await DisplayAlert("오류", "포스팅을 읽어올 수 없습니다.", "확인"); } else { await Navigation.PushAsync(new NoticeViewPage(data.noticeId, posting)); } } }
public ViewModel(RespShowNotice notice) { title = notice.title; desc = notice.desc; }
protected override void Initialize() { // 공지 올리기 procedurePool.AddProcedure <ReqPostNotice, EmptyParam>("ReqPostNotice", "RespPostNotice", UserType.Administrator, (recv, send) => { sqlHelper.RunSqlSessionWithTransaction((sql) => { var cmd = sql.CreateCommand(); cmd.CommandText = @"insert into notice(title, description) values(@title, @desc)"; cmd.Parameters.AddWithValue("@title", recv.param.title); cmd.Parameters.AddWithValue("@desc", recv.param.desc); cmd.ExecuteNonQuery(); // 응답 send.header.code = BakjeProtocol.Packet.Header.Code.OK; return(true); }); }); // 공지 삭제 procedurePool.AddProcedure <ReqDeleteNotice, EmptyParam>("ReqDeleteNotice", "RespDeleteNotice", UserType.Administrator, (recv, send) => { sqlHelper.RunSqlSessionWithTransaction((sql) => { var cmd = sql.CreateCommand(); cmd.CommandText = @"delete from notice where idnotice = @id"; cmd.Parameters.AddWithValue("@id", recv.param.noticeID); cmd.ExecuteNonQuery(); // 응답 send.header.code = BakjeProtocol.Packet.Header.Code.OK; return(true); }); }); // 공지 목록 procedurePool.AddProcedure <ReqLookupNotice, RespLookupNotice>("ReqLookupNotice", "RespLookupNotice", UserType.Registered, (recv, send) => { sqlHelper.RunSqlSession((sql) => { var result = new RespLookupNotice(); var rowperpage = recv.param.rowperpage; var rowstart = recv.param.page * rowperpage; var cmd = sql.CreateCommand(); cmd.CommandText = @"select SQL_CALC_FOUND_ROWS idnotice, title, datetime from notice order by idnotice desc limit " + string.Format("{0}, {1}", rowstart, rowperpage); using (var reader = cmd.ExecuteReader()) { var entries = new List <RespLookupNotice.Entry>(); while (reader.Read()) { entries.Add(new RespLookupNotice.Entry { noticeID = reader.GetInt32("idnotice"), title = reader.GetString("title"), datetime = reader.GetDateTime("datetime"), }); } reader.Close(); result.entries = entries.ToArray(); } // 전체 공지 갯수 var countcmd = sql.CreateCommand(); countcmd.CommandText = "select FOUND_ROWS()"; var totalCount = (int)(long)countcmd.ExecuteScalar(); // 페이지 갯수 등 기록 result.currentPage = recv.param.page; result.totalPage = totalCount / rowperpage + (totalCount % rowperpage == 0 ? 0 : 1); // 응답 send.SetParameter(result); send.header.code = BakjeProtocol.Packet.Header.Code.OK; }); }); // 공지 열기 procedurePool.AddProcedure <ReqShowNotice, RespShowNotice>("ReqShowNotice", "RespShowNotice", UserType.Registered, (recv, send) => { sqlHelper.RunSqlSession((sql) => { var result = new RespShowNotice(); var cmd = sql.CreateCommand(); cmd.CommandText = @"select title, description, datetime from notice where idnotice = @id"; cmd.Parameters.AddWithValue("@id", recv.param.noticeID); using (var reader = cmd.ExecuteReader()) { reader.Read(); result.title = reader.GetString("title"); result.desc = reader.GetString("description"); result.datetime = reader.GetDateTime("datetime"); reader.Close(); } // 응답 send.SetParameter(result); send.header.code = BakjeProtocol.Packet.Header.Code.OK; }); }); }