// ServerStopDlg.cpp : implementation file
//

#include "stdafx.h"
#include "aplsockettransport.h"
#include "ServerStopDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CServerStopDlg dialog


CServerStopDlg::CServerStopDlg(CWnd* pParent /*=NULL*/)
	: CaplTranslateDialog(CServerStopDlg::IDD, pParent)
{
	CaplStackLogger stack_logger(__APL_FUNC__,true);

	//{{AFX_DATA_INIT(CServerStopDlg)
	m_Text = _T("");
	//}}AFX_DATA_INIT
}


void CServerStopDlg::DoDataExchange(CDataExchange* pDX)
{
	CaplTranslateDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CServerStopDlg)
	DDX_Text(pDX, IDC_TEXT, m_Text);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CServerStopDlg, CaplTranslateDialog)
	//{{AFX_MSG_MAP(CServerStopDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CServerStopDlg message handlers

void CServerStopDlg::OnOK() 
{
	CaplStackLogger stack_logger(__APL_FUNC__,true);
	// TODO: Add extra validation here
	
	CaplTranslateDialog::OnOK();
}

void CServerStopDlg::SetStoppingTime(DWORD time)
{
	CaplStackLogger stack_logger(__APL_FUNC__,true);

	if(time==0){
		// пора закругляться
		OnOK();
		return;
	}
	UpdateData(TRUE);
	MakeText(time);
	UpdateData(FALSE);
}

void CServerStopDlg::MakeText(DWORD time)
{
	// преобразуем в минуты:секунды
	CString str;
	div_t d=div(time,60);
	if(d.quot==0){
		str.Format( APL_T(" %i сек "),d.rem);
	}else{
		str.Format( APL_T(" %i мин %i сек "),d.quot,d.rem);
	}
	
	m_Text = APL_T("Сервер приложений завершит работу работу менее чем через") + str + 
		 APL_T("Сохраните все несохраненные данные и отсоединитесь от сервера.") +
		 APL_T("\r\n Данное окно не мешает работе с программой, просто отодвиньте его в сторону.");
}

