Beispiel #1
0
        /// <summary>
        /// Generates device parameters to speed up handling.
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        protected override HandleResults OnHandleMessage(T message)
        {
            try
            {
                if (message.DeviceId == 0)
                {
                    return(HandleResults.BreakSuccess);
                }
            } catch {}

            try
            {
                SessionHelper.CreateSession();
                Dispositivo = DaoFactory.DispositivoDAO.FindById(message.DeviceId);

                if (Dispositivo == null)
                {
                    return(HandleResults.BreakSuccess);
                }

                CalculateDeviceParameters();

                Coche = DaoFactory.CocheDAO.FindMobileByDevice(Dispositivo.Id);

                var result = OnDeviceHandleMessage(message);

                SessionHelper.CloseSession();

                return(result);
            }
            catch
            {
                if (Coche != null)
                {
                    Coche.ClearCache();
                }

                if (Dispositivo != null)
                {
                    Dispositivo.ClearCache();
                }

                throw;
            }
            finally
            {
                Dispositivo = null;
                Coche       = null;
            }
        }