var clientUrls = _(clients).filter(function(i){
return i.full_name.indexOf('Петров')>=0;
})
.map(function(i){
return i.url;
}).value();
var myTickets = _.filter(tickets, function(t){
return _.some(clientUrls, function(i){return i===t.client_url;});
});
<!DOCTYPE html>
<html>
<head>
<title>
</title>
<meta charset="utf-8">
<script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/2.4.0/annyang.min.js"></script>
</head>
<body>
<div id='main'></div>
<script>
if (annyang) {
var cont = document.getElementById('main');
function addText(text){
var el = document.createElement('h2');
el.innerHTML = text;
cont.appendChild(el);
}
annyang.setLanguage('ru');
var commands = {
'привет': function() {
addText('добрый день')
},
'до свидания':function(){
addText('всего доброго');
}
};
annyang.addCommands(commands);
annyang.start();
}
</script>
</body>
</html>
function run($rootScope, auth) {
// ...
var noAuth = ['page.login','page.404'];
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
var isAuth = auth.isAuth();
if (toState.name === 'page.login' && isAuth) {
event.preventDefault();
$rootScope.$state.go('app.home');
}
else if (!(toState.name in noAuth) && !isAuth) {
event.preventDefault();
$rootScope.$state.go('page.login');
}
});
};
function sessionservice($localStorage) {
var service = {
setAccessToken: setAccessToken,
clearAccessToken: clearAccessToken,
getAccessToken: getAccessToken,
getTokenInfo: getAccessTokenOpenInfo
};
return service;
function setAccessToken(tokenData) {
$localStorage.auth = tokenData;
if ($localStorage.auth.expires_in)
$localStorage.auth.expires_in = $localStorage.auth.expires_in * 10e3 + Date.now();
}
function clearAccessToken() {
delete $localStorage.auth;
}
function getAccessToken() {
if (!$localStorage.auth || !$localStorage.auth.expires_in || $localStorage.auth.expires_in < Date.now()) {
clearAccessToken();
return undefined;
}
else
return $localStorage.auth.access_token;
}
function getAccessTokenOpenInfo() {
var token = getAccessToken();
return !token ? undefined : JSON.parse(atob(token.split('.')[1]));
}
}
function authinterceptor($q, $rootScope, session) {
var request = function (config) {
config.headers = config.headers || {};
var token = session.getAccessToken();
if (token) {
config.headers.Authorization = 'Bearer ' + token;
}
return config || $q.when(config);
};
var responseError = function (rejection) {
if (rejection.status === 401) {
session.clearAccessToken();
$rootScope.$state.go('page.login');
}
return $q.reject(rejection);
};
return {
request: request,
responseError: responseError
};
}
public class JobHost : IRegisteredObject
{
private readonly object _lock = new object();
private bool _shuttingDown;
public JobHost()
{
HostingEnvironment.RegisterObject(this);
}
public void Stop(bool immediate)
{
lock (_lock)
{
_shuttingDown = true;
}
HostingEnvironment.UnregisterObject(this);
}
public void DoWork(Action work)
{
lock (_lock)
{
if (_shuttingDown)
{
return;
}
work();
}
}
}
public static class MyHelper
{
private static readonly Timer _timer = new Timer(OnTimerElapsed);
private static readonly JobHost _jobHost = new JobHost();
public static void Start()
{
_timer.Change(TimeSpan.Zero, TimeSpan.FromHours(1));
}
public static void OnTimerElapsed(object sender)
{
_jobHost.DoWork(() =>
{
// action ...
});
}
}
public class Application : HttpApplication
{
protected void Application_Start()
{
// ....
MyHelper.Start();
}
}
Log_app.Info("Checking database...");
using (var ctx = new ApplicationDbCtx())
{
if (!ctx.Database.Exists() || !ctx.Database.CompatibleWithModel(false))
{
try
{
Log_app.Info("updating Database ...");
Database.SetInitializer<ApplicationDbCtx>(new MigrateDatabaseToLatestVersion<ApplicationDbCtx, MyApplication.Migrations.Configuration>());
ctx.Database.Initialize(true);
}
catch (Exception ex)
{
Log_app.Error(ex);
}
}
}
Log_app.Info("checking Database completed!");
// на событие change у inputa, через который загружается файл вешаем метод that.upload
var that = this;
that.attachments = [];
that.upload = function (data, ev) {
var file = ev.target.files[0];
if (file) that.attachments.push(attachment);
};
// на сервер по мере надобности отправлять примерно так (тут переменная file это элемент массива that.attachments):
var fd = new FormData();
fd.append('file', file);
$.ajax({
url: 'api/upload',
type: 'post',
data: fd
});