public int GetTimeSum(WebTimeGetBinding binding)
 {
     using (var db = GetSqlConnection())
     {
         var parameters = new
         {
             DeviceValueId = binding.DeviceId,
             DomainValueId = binding.DomainId,
             WebValueId    = binding.WebId,
             IsSecured     = binding.IsSecured,
             From          = binding.From,
             To            = binding.To,
             UserId        = UserId
         };
         return(db.ExecuteScalar <int>(SqlLoader.Load(SqlScripts.GetWebTimeTotal), parameters));
     }
 }
        public IEnumerable <TimeByDay> GetTimeTotalByDay(WebTimeGetBinding binding)
        {
            using (var db = GetSqlConnection())
            {
                var parameters = new
                {
                    DeviceValueId = binding.DeviceId,
                    DomainValueId = binding.DomainId,
                    WebValueId    = binding.WebId,
                    IsSecured     = binding.IsSecured,
                    From          = binding.From,
                    To            = binding.To,
                    UserId        = UserId
                };

                var command = new CommandDefinition(SqlLoader.Load(SqlScripts.GetWebTimeTotalByDay), parameters);

                return(db.Query <TimeByDay>(command));
            }
        }
        public IEnumerable <GroupedByMonth <int> > GetTimeTotalByMonth(WebTimeGetBinding binding)
        {
            using (var db = GetSqlConnection())
            {
                var parameters = new
                {
                    DeviceValueId = binding.DeviceId,
                    DomainValueId = binding.DomainId,
                    WebValueId    = binding.WebId,
                    IsSecured     = binding.IsSecured,
                    From          = binding.From,
                    To            = binding.To,
                    UserId        = UserId
                };

                var command = new CommandDefinition(SqlLoader.Load(SqlScripts.GetWebTimeTotalByMonth), parameters);

                return(db.Query <GetWebTimeTotalByMonth>(command)
                       .Select(x => new GroupedByMonth <int>(x.Seconds, x.Year, x.Month)));
            }
        }
        public IEnumerable <KeyValuePair <int, int> > GetTimeTotalByYear(WebTimeGetBinding binding)
        {
            using (var db = GetSqlConnection())
            {
                var parameters = new
                {
                    DeviceValueId = binding.DeviceId,
                    DomainValueId = binding.DomainId,
                    WebValueId    = binding.WebId,
                    IsSecured     = binding.IsSecured,
                    From          = binding.From,
                    To            = binding.To,
                    UserId        = UserId
                };

                var command = new CommandDefinition(SqlLoader.Load(SqlScripts.GetWebTimeTotalByYear), parameters);

                return(db.Query <GetWebTimeTotalByYear>(command)
                       .OrderByDescending(x => x.Year)
                       .Select(x => new KeyValuePair <int, int>(x.Year, x.Seconds)));
            }
        }