예제 #1
0
        /// <summary>
        /// Entradas no Banco
        ///
        /// Todas as vezes que alguém passa na porta do maior banco da cidade de Pirenópolis, é gravado em um arquivo de log a data e a hora da abertura da porta.
        ///
        /// Cada registro no arquivo de log possui o seguinte formato:
        /// + [YYYY-mm-dd H:i:s] - Abertura da Porta OK
        ///
        /// O gerente do banco precisa saber quantas pessoas entraram no banco no horário de expediente, para isso ele solicitou que você faça um programa que verifique se o registro de entrada é válido e se a hora se encontra dentro do intervalo de funcionamento do banco, das 10:00:00 até as 16:00:00.
        /// </summary>
        /// <param name="entradasBancoModels"></param>
        public void calcular(EntradasBancoModels entradasBancoModels)
        {
            DateTime dtNow = DateTime.Now;
            int      year  = dtNow.Year;
            int      month = dtNow.Month;
            int      day   = dtNow.Day;

            DateTime dtAbertura   = new DateTime(year, month, day, 10, 0, 0);
            DateTime dtFechamento = new DateTime(year, month, day, 16, 0, 0);

            // compare_open < 0 -> dtAbertura < dtNow (ex: 10:00h < 11:00h) => Open door
            // compare_open = 0 -> dtAbertura = dtNow (ex: 10:00h = 10:00h) => Open door
            // compare_open > 0 -> dtAbertura > dtNow (ex: 10:00h > 09:00h) => Close door
            int compare_open = DateTime.Compare(dtAbertura, dtNow);

            // compare_close < 0 -> dtFechamento < dtNow (ex: 16:00h < 17:00h) => Close door
            // compare_close = 0 -> dtFechamento = dtNow (ex: 16:00h = 16:00h) => Open door
            // compare_close > 0 -> dtFechamento > dtNow (ex: 16:00h > 15:00h) => Open door
            int compare_close = DateTime.Compare(dtFechamento, dtNow);

            bool can_open_door = (compare_open > 0) ? false : true;

            can_open_door = (compare_close < 0) ? false : can_open_door;

            string status = (can_open_door) ? "Abertura da Porta OK" : "Porta Fechada";

            addDadosParaList(dtNow, status);
            createLog(dtNow, status);
        }
예제 #2
0
        /// <summary>
        /// Adicionar dados para list
        /// </summary>
        /// <param name="dtNow">DateTime</param>
        /// <param name="status">string</param>
        private void addDadosParaList(DateTime dtNow, string status)
        {
            EntradasBancoModels entradasBanco = new EntradasBancoModels();

            entradasBanco.entrada = dtNow;
            entradasBanco.status  = status;
            listEntradasBanco.Add(entradasBanco);
        }