Updates to UI, Update NLog to 4.4.12

This commit is contained in:
Qstick 2017-10-01 23:05:28 -04:00
parent 31db4e2026
commit c8ed46850a
88 changed files with 9550 additions and 269 deletions

View File

@ -240,7 +240,6 @@
one-var-declaration-per-line: ["error", "always"], one-var-declaration-per-line: ["error", "always"],
operator-assignment: ["off", "never"], operator-assignment: ["off", "never"],
operator-linebreak: ["error", "after"], operator-linebreak: ["error", "after"],
padded-blocks: ["error", "never"],
quote-props: ["error", "as-needed"], quote-props: ["error", "as-needed"],
quotes: ["error", "single"], quotes: ["error", "single"],
require-jsdoc: "off", require-jsdoc: "off",
@ -283,6 +282,6 @@
"react/react-in-jsx-scope": 2, "react/react-in-jsx-scope": 2,
"react/self-closing-comp": 2, "react/self-closing-comp": 2,
"react/sort-comp": 2, "react/sort-comp": 2,
"react/wrap-multilines": 2 "react/jsx-wrap-multilines": 2
} }
} }

View File

@ -1,14 +1,9 @@
const _ = require('lodash');
const gulp = require('gulp'); const gulp = require('gulp');
const simpleVars = require('postcss-simple-vars');
const nested = require('postcss-nested');
const autoprefixer = require('autoprefixer');
const webpackStream = require('webpack-stream'); const webpackStream = require('webpack-stream');
const livereload = require('gulp-livereload'); const livereload = require('gulp-livereload');
const path = require('path'); const path = require('path');
const webpack = require('webpack'); const webpack = require('webpack');
const errorHandler = require('./helpers/errorHandler'); const errorHandler = require('./helpers/errorHandler');
const reload = require('require-nocache')(module);
const ExtractTextPlugin = require('extract-text-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin');
const uiFolder = 'UI'; const uiFolder = 'UI';
@ -18,13 +13,20 @@ const isProduction = process.argv.indexOf('--production') > -1;
console.log('ROOT:', root); console.log('ROOT:', root);
console.log('isProduction:', isProduction); console.log('isProduction:', isProduction);
const cssVariables = [ const cssVarsFiles = [
'../src/Styles/Variables/colors', '../src/Styles/Variables/colors',
'../src/Styles/Variables/dimensions', '../src/Styles/Variables/dimensions',
'../src/Styles/Variables/fonts', '../src/Styles/Variables/fonts',
'../src/Styles/Variables/animations' '../src/Styles/Variables/animations'
].map(require.resolve); ].map(require.resolve);
const extractCSSPlugin = new ExtractTextPlugin({
filename: path.join('_output', uiFolder, 'Content', 'styles.css'),
allChunks: true,
disable: false,
ignoreOrder: true
});
const config = { const config = {
devtool: '#source-map', devtool: '#source-map',
stats: { stats: {
@ -39,9 +41,10 @@ const config = {
index: 'index.js' index: 'index.js'
}, },
resolve: { resolve: {
root: [ modules: [
root, root,
path.join(root, 'Shims') path.join(root, 'Shims'),
'node_modules'
], ],
alias: { alias: {
jquery: 'jquery/src/jquery' jquery: 'jquery/src/jquery'
@ -52,10 +55,11 @@ const config = {
sourceMapFilename: '[file].map' sourceMapFilename: '[file].map'
}, },
plugins: [ plugins: [
new ExtractTextPlugin(path.join('_output', uiFolder, 'Content', 'styles.css'), { allChunks: true }), extractCSSPlugin,
new webpack.optimize.CommonsChunkPlugin({ new webpack.optimize.CommonsChunkPlugin({
name: 'vendor' name: 'vendor'
}), }),
new webpack.DefinePlugin({ new webpack.DefinePlugin({
__DEV__: !isProduction, __DEV__: !isProduction,
'process.env': { 'process.env': {
@ -64,22 +68,23 @@ const config = {
}) })
], ],
resolveLoader: { resolveLoader: {
modulesDirectories: [ modules: [
'node_modules', 'node_modules',
'gulp/webpack/' 'frontend/gulp/webpack/'
] ]
}, },
eslint: { // TODO: Do we need this loader?
formatter: function(results) { // eslint: {
return JSON.stringify(results); // formatter: function(results) {
} // return JSON.stringify(results);
}, // }
// },
module: { module: {
loaders: [ rules: [
{ {
test: /\.js?$/, test: /\.js?$/,
exclude: /(node_modules|JsLibraries)/, exclude: /(node_modules|JsLibraries)/,
loader: 'babel', loader: 'babel-loader',
query: { query: {
plugins: ['transform-class-properties'], plugins: ['transform-class-properties'],
presets: ['es2015', 'decorators-legacy', 'react', 'stage-2'], presets: ['es2015', 'decorators-legacy', 'react', 'stage-2'],
@ -95,51 +100,80 @@ const config = {
{ {
test: /\.css$/, test: /\.css$/,
exclude: /(node_modules|globals.css)/, exclude: /(node_modules|globals.css)/,
loader: ExtractTextPlugin.extract('style', 'css-loader?modules&importLoaders=1&sourceMap&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader') use: extractCSSPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-variables-loader',
options: {
cssVarsFiles
}
},
{
loader: 'css-loader',
options: {
modules: true,
importLoaders: 1,
localIdentName: '[name]-[local]-[hash:base64:5]',
sourceMap: true
}
},
{
loader: 'postcss-loader',
options: {
config: {
ctx: {
cssVarsFiles
},
path: 'frontend/postcss.config.js'
}
}
}
]
})
}, },
// Global styles // Global styles
{ {
test: /\.css$/, test: /\.css$/,
include: /(node_modules|globals.css)/, include: /(node_modules|globals.css)/,
loader: 'style!css-loader' use: [
'style-loader',
{
loader: 'css-loader'
}
]
}, },
// Fonts // Fonts
{ {
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'url?limit=10240&mimetype=application/font-woff&emitFile=false&name=Content/Fonts/[name].[ext]' use: [
{
loader: 'url-loader',
options: {
limit: 10240,
mimetype: 'application/font-woff',
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
}, },
{ {
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'file-loader?emitFile=false&name=Content/Fonts/[name].[ext]' use: [
{
loader: 'file-loader',
options: {
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
} }
] ]
},
postcss: function(wpack) {
cssVariables.forEach(wpack.addDependency);
return [
simpleVars({
variables: function() {
return cssVariables.reduce(function(obj, vars) {
return _.extend(obj, reload(vars));
}, {});
}
}),
nested(),
autoprefixer({
browsers: [
'Chrome >= 30',
'Firefox >= 30',
'Safari >= 6',
'Edge >= 12',
'Explorer >= 10',
'iOS >= 7',
'Android >= 4.4'
]
})
];
} }
}; };

View File

@ -0,0 +1,11 @@
const loaderUtils = require('loader-utils');
module.exports = function cssVariablesLoader(source) {
const options = loaderUtils.getOptions(this);
options.cssVarsFiles.forEach((cssVarsFile) => {
this.addDependency(cssVarsFile);
});
return source;
};

View File

@ -0,0 +1,33 @@
const reload = require('require-nocache')(module);
module.exports = (ctx, configPath, options) => {
const config = {
plugins: {
'postcss-simple-vars': {
variables: () =>
ctx.options.cssVarsFiles.reduce((acc, vars) => {
return Object.assign(acc, reload(vars));
}, {})
},
'postcss-nested': {},
'postcss-mixins': {
mixinsDir: [
'frontend/src/Styles/Mixins'
]
},
autoprefixer: {
browsers: [
'Chrome >= 30',
'Firefox >= 30',
'Safari >= 6',
'Edge >= 12',
'Explorer >= 11',
'iOS >= 7',
'Android >= 4.4'
]
}
}
};
return config;
};

View File

@ -3,16 +3,19 @@ import React, { Component } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions'; import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions';
import createArtistSelector from 'Store/Selectors/createArtistSelector';
import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector'; import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import HistoryRow from './HistoryRow'; import HistoryRow from './HistoryRow';
function createMapStateToProps() { function createMapStateToProps() {
return createSelector( return createSelector(
createArtistSelector(),
createEpisodeSelector(), createEpisodeSelector(),
createUISettingsSelector(), createUISettingsSelector(),
(episode, uiSettings) => { (artist, episode, uiSettings) => {
return { return {
artist,
episode, episode,
shortDateFormat: uiSettings.shortDateFormat, shortDateFormat: uiSettings.shortDateFormat,
timeFormat: uiSettings.timeFormat timeFormat: uiSettings.timeFormat
@ -28,6 +31,9 @@ const mapDispatchToProps = {
class HistoryRowConnector extends Component { class HistoryRowConnector extends Component {
//
// Lifecycle
componentDidUpdate(prevProps) { componentDidUpdate(prevProps) {
if ( if (
prevProps.isMarkingAsFailed && prevProps.isMarkingAsFailed &&

View File

@ -52,8 +52,8 @@
} }
.addButton { .addButton {
@add-mixin truncate;
composes: button from 'Components/Link/SpinnerButton.css'; composes: button from 'Components/Link/SpinnerButton.css';
composes: truncate from 'Styles/mixins/truncate.css';
} }
.hideLanguageProfile { .hideLanguageProfile {

View File

@ -42,7 +42,7 @@ $hoverScale: 1.05;
} }
.title { .title {
composes: truncate from 'Styles/mixins/truncate.css'; @add-mixin truncate;
background-color: $defaultColor; background-color: $defaultColor;
color: $white; color: $white;

View File

@ -41,7 +41,7 @@ $hoverScale: 1.05;
} }
.title { .title {
composes: truncate from 'Styles/mixins/truncate.css'; @add-mixin truncate;
background-color: $defaultColor; background-color: $defaultColor;
color: $white; color: $white;

View File

@ -28,7 +28,7 @@
.artistName, .artistName,
.albumTitle { .albumTitle {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
flex: 0 1 300px; flex: 0 1 300px;
margin-right: 10px; margin-right: 10px;

View File

@ -14,7 +14,7 @@
.artistName, .artistName,
.albumTitle { .albumTitle {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
flex: 1 0 1px; flex: 1 0 1px;
margin-right: 10px; margin-right: 10px;

View File

@ -8,7 +8,7 @@
@media (min-width: 768px) { @media (min-width: 768px) {
.title { .title {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
float: left; float: left;
clear: left; clear: left;

View File

@ -24,9 +24,9 @@
} }
.pathContainer { .pathContainer {
composes: scrollbar from 'Styles/Mixins/scroller.css'; @add-mixin scrollbar;
composes: scrollbarTrack from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarTrack;
composes: scrollbarThumb from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarThumb;
} }
.pathInputContainerOpen { .pathInputContainerOpen {

View File

@ -8,13 +8,13 @@
} }
.path { .path {
composes: truncate from 'Styles/mixins/truncate.css'; @add-mixin truncate;
flex: 1 0 0; flex: 1 0 0;
} }
.freeSpace { .freeSpace {
composes: truncate from 'Styles/mixins/truncate.css'; @add-mixin truncate;
flex: 1 0 0; flex: 1 0 0;
margin-left: 15px; margin-left: 15px;

View File

@ -14,7 +14,7 @@ function Icon(props) {
} = props; } = props;
return ( return (
<icon <i
className={classNames( className={classNames(
name, name,
className, className,
@ -25,7 +25,7 @@ function Icon(props) {
fontSize: `${size}px` fontSize: `${size}px`
}} }}
> >
</icon> </i>
); );
} }

View File

@ -1,5 +1,5 @@
.menuItem { .menuItem {
composes: truncate from 'Styles/mixins/truncate.css'; @add-mixin truncate;
display: block; display: block;
flex-shrink: 0; flex-shrink: 0;

View File

@ -1,5 +1,5 @@
.modalHeader { .modalHeader {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
flex-shrink: 0; flex-shrink: 0;
padding: 15px 50px 15px 30px; padding: 15px 50px 15px 30px;

View File

@ -37,9 +37,9 @@
} }
.seriesContainer { .seriesContainer {
composes: scrollbar from 'Styles/Mixins/scroller.css'; @add-mixin scrollbar;
composes: scrollbarTrack from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarTrack;
composes: scrollbarThumb from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarThumb;
} }
.containerOpen { .containerOpen {

View File

@ -29,6 +29,6 @@
.titles, .titles,
.title, .title,
.alternateTitle { .alternateTitle {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
} }
} }

View File

@ -330,9 +330,9 @@ class PageSidebar extends Component {
return; return;
} }
if (isSidebarVisible && (touchStartX > 210 || touchStartX < 50)) { if (isSidebarVisible && (touchStartX > 210 || touchStartX < 180)) {
return; return;
} else if (!isSidebarVisible && touchStartX > 50) { } else if (!isSidebarVisible && touchStartX > 30) {
return; return;
} }
@ -373,6 +373,15 @@ class PageSidebar extends Component {
} }
if (Math.abs(this._touchStartY - currentTouchY) > 20) { if (Math.abs(this._touchStartY - currentTouchY) > 20) {
this.setState({
transition: 'none',
transform: 0
});
return;
}
if (Math.abs(this._touchStartX - currentTouchX) < 20) {
return; return;
} }

View File

@ -63,7 +63,7 @@ class PageSidebarItem extends Component {
</span> </span>
} }
<span className={isChildItem && styles.noIcon}> <span className={isChildItem ? styles.noIcon : null}>
{title} {title}
</span> </span>

View File

@ -1,7 +1,7 @@
.scroller { .scroller {
composes: scrollbar from 'Styles/Mixins/scroller.css'; @add-mixin scrollbar;
composes: scrollbarTrack from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarTrack;
composes: scrollbarThumb from 'Styles/Mixins/scroller.css'; @add-mixin scrollbarThumb;
} }
.none { .none {

View File

@ -306,15 +306,17 @@ class SignalRConnector extends Component {
} }
onDisconnected = () => { onDisconnected = () => {
if (this.props.isReconnecting) { if (window.Sonarr.unloading) {
this.props.setAppValue({ return;
isConnected: false,
isReconnecting: true,
isDisconnected: true
});
this.retryConnection();
} }
this.props.setAppValue({
isConnected: false,
isReconnecting: true,
isDisconnected: true
});
this.retryConnection();
} }
// //

View File

@ -1,6 +1,6 @@
.cell { .cell {
@add-mixin truncate;
composes: cell from 'Components/Table/Cells/TableRowCell.css'; composes: cell from 'Components/Table/Cells/TableRowCell.css';
composes: truncate from 'Styles/Mixins/truncate.css';
flex-grow: 0; flex-grow: 0;
flex-shrink: 1; flex-shrink: 1;

View File

@ -25,7 +25,7 @@
} }
.path { .path {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
flex: 1 0 1px; flex: 1 0 1px;
} }

View File

@ -7,11 +7,11 @@
} }
.underlay { .underlay {
composes: cover from 'Styles/Mixins/cover.css'; @add-mixin cover;
} }
.overlay { .overlay {
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css'; @add-mixin linkOverlay;
padding: 10px; padding: 10px;
} }

View File

@ -5,7 +5,7 @@
} }
.name { .name {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
margin-bottom: 20px; margin-bottom: 20px;
font-weight: 300; font-weight: 300;

View File

@ -7,11 +7,11 @@
} }
.underlay { .underlay {
composes: cover from 'Styles/Mixins/cover.css'; @add-mixin cover;
} }
.overlay { .overlay {
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css'; @add-mixin linkOverlay;
padding: 10px; padding: 10px;
} }

View File

@ -5,7 +5,7 @@
} }
.name { .name {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
margin-bottom: 20px; margin-bottom: 20px;
font-weight: 300; font-weight: 300;

View File

@ -7,11 +7,11 @@
} }
.underlay { .underlay {
composes: cover from 'Styles/Mixins/cover.css'; @add-mixin cover;
} }
.overlay { .overlay {
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css'; @add-mixin linkOverlay;
padding: 10px; padding: 10px;
} }

View File

@ -5,7 +5,7 @@
} }
.name { .name {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
margin-bottom: 20px; margin-bottom: 20px;
font-weight: 300; font-weight: 300;

View File

@ -5,7 +5,7 @@
} }
.name { .name {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
margin-bottom: 20px; margin-bottom: 20px;
font-weight: 300; font-weight: 300;

View File

@ -5,7 +5,7 @@
} }
.name { .name {
composes: truncate from 'Styles/Mixins/truncate.css'; @add-mixin truncate;
margin-bottom: 20px; margin-bottom: 20px;
font-weight: 300; font-weight: 300;

View File

@ -25,25 +25,23 @@
} }
.bar { .bar {
top: 6px; top: 9px;
margin: 0 5px; margin: 0 5px;
height: 10px; height: 3px;
border: 1px solid $sliderAccentColor;
border-radius: 4px;
background-color: $sliderAccentColor; background-color: $sliderAccentColor;
box-shadow: 0 0 0 #000; box-shadow: 0 0 0 #000;
&:nth-child(odd) { &:nth-child(odd) {
background-color: $white; background-color: #ddd;
} }
} }
.handle { .handle {
top: 1px; top: 1px;
z-index: 0 !important; z-index: 0 !important;
width: 20px; width: 18px;
height: 20px; height: 18px;
border: 1px solid $sliderAccentColor; border: 3px solid $sliderAccentColor;
border-radius: 50%; border-radius: 50%;
background-color: $white; background-color: $white;
text-align: center; text-align: center;

View File

@ -1,4 +1,4 @@
.cover { @define-mixin cover {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;

View File

@ -1,5 +1,5 @@
.linkOverlay { @define-mixin linkOverlay {
composes: cover from 'Styles/Mixins/cover.css'; @add-mixin cover;
pointer-events: none; pointer-events: none;
user-select: none; user-select: none;

View File

@ -1,17 +1,17 @@
.scrollbar { @define-mixin scrollbar {
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 6px; width: 6px;
height: 6px; height: 6px;
} }
} }
.scrollbarTrack { @define-mixin scrollbarTrack {
&&::-webkit-scrollbar-track { &&::-webkit-scrollbar-track {
background-color: transparent; background-color: transparent;
} }
} }
.scrollbarThumb { @define-mixin scrollbarThumb {
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
min-height: 50px; min-height: 50px;
border: 1px solid transparent; border: 1px solid transparent;

View File

@ -10,7 +10,7 @@
* occur. * occur.
*/ */
.truncate { @define-mixin truncate {
overflow: hidden !important; overflow: hidden !important;
max-width: 100%; /* 1 */ max-width: 100%; /* 1 */
text-overflow: ellipsis !important; text-overflow: ellipsis !important;

View File

@ -20,7 +20,7 @@ import FilterMenu from 'Components/Menu/FilterMenu';
import MenuContent from 'Components/Menu/MenuContent'; import MenuContent from 'Components/Menu/MenuContent';
import FilterMenuItem from 'Components/Menu/FilterMenuItem'; import FilterMenuItem from 'Components/Menu/FilterMenuItem';
import ConfirmModal from 'Components/Modal/ConfirmModal'; import ConfirmModal from 'Components/Modal/ConfirmModal';
import CutoffUnmetRow from './CutoffUnmetRow'; import CutoffUnmetRowConnector from './CutoffUnmetRowConnector';
class CutoffUnmet extends Component { class CutoffUnmet extends Component {
@ -219,7 +219,7 @@ class CutoffUnmet extends Component {
{ {
items.map((item) => { items.map((item) => {
return ( return (
<CutoffUnmetRow <CutoffUnmetRowConnector
key={item.id} key={item.id}
isSelected={selectedState[item.id]} isSelected={selectedState[item.id]}
columns={columns} columns={columns}

View File

@ -0,0 +1,17 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createArtistSelector from 'Store/Selectors/createArtistSelector';
import CutoffUnmetRow from './CutoffUnmetRow';
function createMapStateToProps() {
return createSelector(
createArtistSelector(),
(artist) => {
return {
artist
};
}
);
}
export default connect(createMapStateToProps)(CutoffUnmetRow);

View File

@ -21,7 +21,7 @@ import MenuContent from 'Components/Menu/MenuContent';
import FilterMenuItem from 'Components/Menu/FilterMenuItem'; import FilterMenuItem from 'Components/Menu/FilterMenuItem';
import ConfirmModal from 'Components/Modal/ConfirmModal'; import ConfirmModal from 'Components/Modal/ConfirmModal';
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal'; import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
import MissingRow from './MissingRow'; import MissingRowConnector from './MissingRowConnector';
class Missing extends Component { class Missing extends Component {
@ -236,7 +236,7 @@ class Missing extends Component {
{ {
items.map((item) => { items.map((item) => {
return ( return (
<MissingRow <MissingRowConnector
key={item.id} key={item.id}
isSelected={selectedState[item.id]} isSelected={selectedState[item.id]}
columns={columns} columns={columns}

View File

@ -0,0 +1,17 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createArtistSelector from 'Store/Selectors/createArtistSelector';
import MissingRow from './MissingRow';
function createMapStateToProps() {
return createSelector(
createArtistSelector(),
(artist) => {
return {
artist
};
}
);
}
export default connect(createMapStateToProps)(MissingRow);

View File

@ -48,8 +48,8 @@
</head> </head>
<body> <body>
<div id="root" class="root"> <div id="modal-root"></div>
</div> <div id="root" class="root"></div>
</body> </body>
<script type="text/javascript"> <script type="text/javascript">

View File

@ -13,94 +13,97 @@
"author": "Team Lidarr", "author": "Team Lidarr",
"license": "GPL-3.0", "license": "GPL-3.0",
"readmeFilename": "readme.md", "readmeFilename": "readme.md",
"dependencies": { "dependencies": {
"autoprefixer": "6.3.6", "autoprefixer": "7.1.4",
"babel-core": "6.9.0", "babel-core": "6.26.0",
"babel-eslint": "7.1.0", "babel-eslint": "8.0.1",
"babel-loader": "6.2.4", "babel-loader": "7.1.2",
"babel-plugin-transform-class-properties": "6.16.0", "babel-plugin-transform-class-properties": "6.24.1",
"babel-preset-decorators-legacy": "1.0.0", "babel-preset-decorators-legacy": "1.0.0",
"babel-preset-es2015": "6.9.0", "babel-preset-es2015": "6.24.1",
"babel-preset-react": "6.22.0", "babel-preset-react": "6.24.1",
"babel-preset-stage-2": "6.5.0", "babel-preset-stage-2": "6.24.1",
"classnames": "2.2.5", "classnames": "2.2.5",
"clipboard": "1.7.1", "clipboard": "1.7.1",
"css-loader": "0.23.1", "create-react-class": "^15.6.2",
"del": "2.2.0", "css-loader": "0.28.7",
"del": "3.0.0",
"element-class": "0.2.2", "element-class": "0.2.2",
"esformatter": "0.9.3", "esformatter": "0.10.0",
"eslint": "2.10.2", "eslint": "4.7.2",
"eslint-loader": "1.3.0", "eslint-loader": "1.9.0",
"eslint-plugin-filenames": "1.0.0", "eslint-plugin-filenames": "1.2.0",
"eslint-plugin-react": "5.2.2", "eslint-plugin-react": "7.4.0",
"extract-text-webpack-plugin": "1.0.1", "extract-text-webpack-plugin": "3.0.0",
"file-loader": "0.9.0", "file-loader": "0.11.2",
"filesize": "3.5.4", "filesize": "3.5.10",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-cached": "1.1.0", "gulp-cached": "1.1.1",
"gulp-clean-css": "3.3.1", "gulp-clean-css": "3.9.0",
"gulp-concat": "2.6.0", "gulp-concat": "2.6.1",
"gulp-declare": "0.3.0", "gulp-declare": "0.3.0",
"gulp-livereload": "3.8.1", "gulp-livereload": "3.8.1",
"gulp-postcss": "6.1.1", "gulp-postcss": "7.0.0",
"gulp-print": "2.0.1", "gulp-print": "2.0.1",
"gulp-sourcemaps": "1.6.0", "gulp-sourcemaps": "2.6.1",
"gulp-stripbom": "1.0.4", "gulp-stripbom": "1.0.4",
"gulp-util": "3.0.7", "gulp-util": "3.0.8",
"gulp-watch": "4.3.5", "gulp-watch": "4.3.11",
"gulp-wrap": "0.13.0", "gulp-wrap": "0.13.0",
"history": "4.6.3", "history": "4.7.2",
"jdu": "1.0.0", "jdu": "1.0.0",
"jquery": "2.2.4", "jquery": "2.2.4",
"loader-utils": "^1.1.0",
"lodash": "4.17.4", "lodash": "4.17.4",
"mobile-detect": "1.3.6", "mobile-detect": "1.3.7",
"moment": "2.17.1", "moment": "2.18.1",
"mousetrap": "1.6.0", "mousetrap": "1.6.1",
"normalize.css": "5.0.0", "normalize.css": "7.0.0",
"postcss-loader": "0.9.1", "postcss-loader": "2.0.6",
"postcss-nested": "1.0.0", "postcss-mixins": "6.1.1",
"postcss-simple-vars": "3.0.0", "postcss-nested": "2.1.2",
"prop-types": "15.5.10", "postcss-simple-vars": "4.1.0",
"query-string": "https://registry.npmjs.org/query-string/-/query-string-4.2.2.tgz", "prop-types": "15.6.0",
"raven-js": "3.17.0", "query-string": "5.0.0",
"raven-for-redux": "1.0.0", "react": "15.6.0",
"react": "15.6.1", "react-addons-shallow-compare": "15.6.2",
"react-addons-shallow-compare": "15.6.0",
"react-async-script": "0.9.1", "react-async-script": "0.9.1",
"react-autosuggest": "9.3.0", "react-autosuggest": "9.3.2",
"react-custom-scrollbars": "4.1.2", "react-custom-scrollbars": "4.1.2",
"react-dnd": "2.4.0", "react-dnd": "2.5.3",
"react-dnd-html5-backend": "2.4.1", "react-dnd-html5-backend": "2.5.3",
"react-document-title": "2.0.3", "react-document-title": "2.0.3",
"react-dom": "15.6.1", "react-dom": "15.6.0",
"react-google-recaptcha": "0.9.6", "react-google-recaptcha": "0.9.7",
"react-lazyload": "2.2.7", "react-lazyload": "2.2.7",
"react-measure": "1.4.7", "react-measure": "1.4.7",
"react-portal": "3.1.0", "react-portal": "3.1.0",
"react-redux": "5.0.5", "react-redux": "5.0.6",
"react-router-dom": "4.1.1", "react-router-dom": "4.2.2",
"react-router-redux": "5.0.0-alpha.6", "react-router-redux": "5.0.0-alpha.6",
"react-slider": "0.8.0", "react-slider": "0.9.0",
"react-tabs": "1.1.0", "react-tabs": "1.1.0",
"react-tag-autocomplete": "5.4.0", "react-tag-autocomplete": "5.4.1",
"react-tether": "0.5.7", "react-tether": "0.5.7",
"react-virtualized": "9.8.0", "react-virtualized": "9.10.1",
"redux": "3.7.0", "redux": "3.7.2",
"redux-actions": "2.0.3", "redux-actions": "2.2.1",
"redux-batched-actions": "0.2.0", "redux-batched-actions": "0.2.0",
"redux-localstorage": "0.4.1", "redux-localstorage": "0.4.1",
"redux-raven-middleware": "1.2.0",
"redux-thunk": "2.2.0", "redux-thunk": "2.2.0",
"require-nocache": "1.0.0", "require-nocache": "1.0.0",
"reselect": "3.0.1", "reselect": "3.0.1",
"run-sequence": "1.2.0", "run-sequence": "2.2.0",
"signalr": "2.2.2", "signalr": "2.2.2",
"streamqueue": "1.1.1", "streamqueue": "1.1.1",
"style-loader": "0.13.1", "style-loader": "^0.18.2",
"stylelint": "7.3.1", "stylelint": "8.1.1",
"stylelint-order": "0.6.0", "stylelint-order": "0.7.0",
"tar.gz": "1.0.3", "tar.gz": "1.0.5",
"url-loader": "0.5.7", "url-loader": "0.5.9",
"webpack": "1.13.1", "webpack": "3.6.0",
"webpack-stream": "2.1.1" "webpack-stream": "^4.0.0"
} },
} "main": "index.js"
}

View File

@ -30,13 +30,23 @@ namespace Lidarr.Api.V3.History
Post["/failed"] = x => MarkAsFailed(); Post["/failed"] = x => MarkAsFailed();
} }
protected HistoryResource MapToResource(NzbDrone.Core.History.History model) protected HistoryResource MapToResource(NzbDrone.Core.History.History model, bool includeArtist, bool includeAlbum, bool includeTrack)
{ {
var resource = model.ToResource(); var resource = model.ToResource();
resource.Artist = model.Artist.ToResource(); if (includeArtist)
resource.Album = model.Album.ToResource(); {
resource.Track = model.Track.ToResource(); resource.Artist = model.Artist.ToResource();
}
if (includeAlbum)
{
resource.Album = model.Album.ToResource();
}
if (includeTrack)
{
resource.Track = model.Track.ToResource();
}
if (model.Artist != null) if (model.Artist != null)
{ {
@ -52,6 +62,9 @@ namespace Lidarr.Api.V3.History
private PagingResource<HistoryResource> GetHistory(PagingResource<HistoryResource> pagingResource) private PagingResource<HistoryResource> GetHistory(PagingResource<HistoryResource> pagingResource)
{ {
var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, NzbDrone.Core.History.History>("date", SortDirection.Descending); var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, NzbDrone.Core.History.History>("date", SortDirection.Descending);
var includeArtist = Request.GetBooleanQueryParameter("includeArtist");
var includeAlbum = Request.GetBooleanQueryParameter("includeAlbum");
var includeTrack = Request.GetBooleanQueryParameter("includeTrack");
if (pagingResource.FilterKey == "eventType") if (pagingResource.FilterKey == "eventType")
{ {
@ -65,7 +78,7 @@ namespace Lidarr.Api.V3.History
pagingSpec.FilterExpression = h => h.AlbumId == albumId; pagingSpec.FilterExpression = h => h.AlbumId == albumId;
} }
return ApplyToPage(_historyService.Paged, pagingSpec, MapToResource); return ApplyToPage(_historyService.Paged, pagingSpec, h => MapToResource(h, includeArtist, includeAlbum, includeTrack));
} }
private Response MarkAsFailed() private Response MarkAsFailed()

View File

@ -71,7 +71,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="NodaTime, Version=1.3.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL"> <Reference Include="NodaTime, Version=1.3.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL">
<HintPath>..\packages\Ical.Net.2.2.32\lib\net40\NodaTime.dll</HintPath> <HintPath>..\packages\Ical.Net.2.2.32\lib\net40\NodaTime.dll</HintPath>

View File

@ -30,7 +30,7 @@ namespace Lidarr.Api.V3.Queue
{ {
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>("timeleft", SortDirection.Ascending); var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>("timeleft", SortDirection.Ascending);
var includeSeries = Request.GetBooleanQueryParameter("includeSeries"); var includeSeries = Request.GetBooleanQueryParameter("includeSeries");
var includeEpisode = Request.GetBooleanQueryParameter("includeEpisode", true); var includeEpisode = Request.GetBooleanQueryParameter("includeEpisode");
return ApplyToPage(GetQueue, pagingSpec, (q) => MapToResource(q, includeSeries, includeEpisode)); return ApplyToPage(GetQueue, pagingSpec, (q) => MapToResource(q, includeSeries, includeEpisode));
} }

View File

@ -6,6 +6,7 @@ using NzbDrone.Core.ArtistStats;
using NzbDrone.SignalR; using NzbDrone.SignalR;
using Lidarr.Api.V3.Albums; using Lidarr.Api.V3.Albums;
using Lidarr.Http; using Lidarr.Http;
using Lidarr.Http.Extensions;
namespace Lidarr.Api.V3.Wanted namespace Lidarr.Api.V3.Wanted
{ {
@ -35,6 +36,9 @@ namespace Lidarr.Api.V3.Wanted
SortDirection = pagingResource.SortDirection SortDirection = pagingResource.SortDirection
}; };
var includeArtist = Request.GetBooleanQueryParameter("includeArtist");
var includeTrackFile = Request.GetBooleanQueryParameter("includeTrackFile");
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false") if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
{ {
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false; pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
@ -44,7 +48,7 @@ namespace Lidarr.Api.V3.Wanted
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true; pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
} }
//var resource = ApplyToPage(_episodeCutoffService.EpisodesWhereCutoffUnmet, pagingSpec, v => MapToResource(v, true)); //var resource = ApplyToPage(_episodeCutoffService.EpisodesWhereCutoffUnmet, pagingSpec, v => MapToResource(v, includeSeries, includeEpisodeFile));
return null; return null;
//return resource; //return resource;
} }

View File

@ -5,6 +5,7 @@ using NzbDrone.Core.ArtistStats;
using NzbDrone.SignalR; using NzbDrone.SignalR;
using Lidarr.Api.V3.Albums; using Lidarr.Api.V3.Albums;
using Lidarr.Http; using Lidarr.Http;
using Lidarr.Http.Extensions;
namespace Lidarr.Api.V3.Wanted namespace Lidarr.Api.V3.Wanted
{ {
@ -30,6 +31,8 @@ namespace Lidarr.Api.V3.Wanted
SortDirection = pagingResource.SortDirection SortDirection = pagingResource.SortDirection
}; };
var includeArtist = Request.GetBooleanQueryParameter("includeSeries");
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false") if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
{ {
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false; pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
@ -39,7 +42,7 @@ namespace Lidarr.Api.V3.Wanted
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true; pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
} }
var resource = ApplyToPage(_albumService.AlbumsWithoutFiles, pagingSpec, v => MapToResource(v, true)); var resource = ApplyToPage(_albumService.AlbumsWithoutFiles, pagingSpec, v => MapToResource(v, includeArtist));
return resource; return resource;
} }

View File

@ -6,5 +6,5 @@
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
</packages> </packages>

View File

@ -54,7 +54,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -5,5 +5,5 @@
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
</packages> </packages>

View File

@ -52,7 +52,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net40\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NLog" version="4.4.3" targetFramework="net40" /> <package id="NLog" version="4.4.12" targetFramework="net40" />
</packages> </packages>

View File

@ -53,7 +53,7 @@
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath> <HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -3,6 +3,6 @@
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" /> <package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
<package id="Moq" version="4.0.10827" targetFramework="net461" /> <package id="Moq" version="4.0.10827" targetFramework="net461" />
<package id="NBuilder" version="4.0.0" targetFramework="net461" /> <package id="NBuilder" version="4.0.0" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
</packages> </packages>

View File

@ -48,7 +48,7 @@
<HintPath>..\packages\FluentAssertions.4.19.0\lib\net45\FluentAssertions.Core.dll</HintPath> <HintPath>..\packages\FluentAssertions.4.19.0\lib\net45\FluentAssertions.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" /> <package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
<package id="Selenium.Support" version="3.2.0" targetFramework="net461" /> <package id="Selenium.Support" version="3.2.0" targetFramework="net461" />
<package id="Selenium.WebDriver" version="3.2.0" targetFramework="net461" /> <package id="Selenium.WebDriver" version="3.2.0" targetFramework="net461" />

View File

@ -50,7 +50,7 @@
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath> <HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -2,6 +2,6 @@
<packages> <packages>
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" /> <package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
<package id="Moq" version="4.0.10827" targetFramework="net461" /> <package id="Moq" version="4.0.10827" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
</packages> </packages>

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Security.AccessControl; using System.Security.AccessControl;
using System.Security.Principal; using System.Security.Principal;
using NLog; using NLog;
@ -18,7 +18,10 @@ namespace NzbDrone.Common.EnvironmentInfo
private readonly IDiskProvider _diskProvider; private readonly IDiskProvider _diskProvider;
private readonly Logger _logger; private readonly Logger _logger;
public AppFolderFactory(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider) public AppFolderFactory(IAppFolderInfo appFolderInfo,
IStartupContext startupContext,
IDiskProvider diskProvider,
IDiskTransferService diskTransferService)
{ {
_appFolderInfo = appFolderInfo; _appFolderInfo = appFolderInfo;
_diskProvider = diskProvider; _diskProvider = diskProvider;

View File

@ -48,7 +48,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="Org.Mentalis, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Org.Mentalis, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DotNet4.SocksProxy.1.3.4.0\lib\net40\Org.Mentalis.dll</HintPath> <HintPath>..\packages\DotNet4.SocksProxy.1.3.4.0\lib\net40\Org.Mentalis.dll</HintPath>

View File

@ -3,6 +3,6 @@
<package id="DotNet4.SocksProxy" version="1.3.4.0" targetFramework="net461" /> <package id="DotNet4.SocksProxy" version="1.3.4.0" targetFramework="net461" />
<package id="ICSharpCode.SharpZipLib.Patched" version="0.86.5" targetFramework="net461" /> <package id="ICSharpCode.SharpZipLib.Patched" version="0.86.5" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="SharpRaven" version="2.2.0" targetFramework="net461" /> <package id="SharpRaven" version="2.2.0" targetFramework="net461" />
</packages> </packages>

View File

@ -78,7 +78,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL"> <Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath> <HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>

View File

@ -3,6 +3,6 @@
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" /> <package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" /> <package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="Owin" version="1.0" targetFramework="net461" /> <package id="Owin" version="1.0" targetFramework="net461" />
</packages> </packages>

View File

@ -1,4 +1,4 @@
using System; using System;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Core.HealthCheck.Checks; using NzbDrone.Core.HealthCheck.Checks;
@ -18,11 +18,13 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
.Returns(new Version(version)); .Returns(new Version(version));
} }
[TestCase("3.10")]
[TestCase("4.0.0.0")]
[TestCase("4.2")]
[TestCase("4.6")] [TestCase("4.6")]
[TestCase("4.4.2")] [TestCase("4.4.2")]
[TestCase("4.6")]
[TestCase("4.8")]
[TestCase("5.0")]
[TestCase("5.2")]
[TestCase("5.4")]
public void should_return_ok(string version) public void should_return_ok(string version)
{ {
GivenOutput(version); GivenOutput(version);
@ -38,6 +40,9 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
[TestCase("3.2.7")] [TestCase("3.2.7")]
[TestCase("3.6.1")] [TestCase("3.6.1")]
[TestCase("3.8")] [TestCase("3.8")]
[TestCase("3.10")]
[TestCase("4.0.0.0")]
[TestCase("4.2")]
public void should_return_warning(string version) public void should_return_warning(string version)
{ {
GivenOutput(version); GivenOutput(version);

View File

@ -79,7 +79,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -10,7 +10,7 @@
<package id="Moq" version="4.0.10827" targetFramework="net461" /> <package id="Moq" version="4.0.10827" targetFramework="net461" />
<package id="NBuilder" version="4.0.0" targetFramework="net461" /> <package id="NBuilder" version="4.0.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
<package id="NUnit3TestAdapter" version="3.7.0" targetFramework="net461" /> <package id="NUnit3TestAdapter" version="3.7.0" targetFramework="net461" />
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" /> <package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using NLog; using NLog;
@ -26,21 +26,15 @@ namespace NzbDrone.Core.HealthCheck.Checks
var monoVersion = _platformInfo.Version; var monoVersion = _platformInfo.Version;
if (monoVersion == new Version("3.4.0") && HasMonoBug18599())
{
_logger.Debug("Mono version 3.4.0, checking for Mono bug #18599 returned positive.");
return new HealthCheck(GetType(), HealthCheckResult.Error, "You are running an old and unsupported version of Mono with a known bug. You should upgrade to a higher version");
}
if (monoVersion == new Version("4.4.0") || monoVersion == new Version("4.4.1")) if (monoVersion == new Version("4.4.0") || monoVersion == new Version("4.4.1"))
{ {
_logger.Debug("Mono version {0}", monoVersion); _logger.Debug("Mono version {0}", monoVersion);
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Your Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version"); return new HealthCheck(GetType(), HealthCheckResult.Error, $"Your Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version");
} }
if (monoVersion >= new Version("3.10")) if (monoVersion >= new Version("4.4"))
{ {
_logger.Debug("Mono version is 3.10 or better: {0}", monoVersion); _logger.Debug("Mono version is 4.6 or better: {0}", monoVersion);
return new HealthCheck(GetType()); return new HealthCheck(GetType());
} }
@ -51,33 +45,5 @@ namespace NzbDrone.Core.HealthCheck.Checks
public override bool CheckOnSchedule => false; public override bool CheckOnSchedule => false;
private bool HasMonoBug18599()
{
_logger.Debug("mono version 3.4.0, checking for mono bug #18599.");
var numberFormatterType = Type.GetType("System.NumberFormatter");
if (numberFormatterType == null)
{
_logger.Debug("Couldn't find System.NumberFormatter. Aborting test.");
return false;
}
var fieldInfo = numberFormatterType.GetField("userFormatProvider",
BindingFlags.Static | BindingFlags.NonPublic);
if (fieldInfo == null)
{
_logger.Debug("userFormatProvider field not found, version likely preceeds the official v3.4.0.");
return false;
}
if (fieldInfo.GetCustomAttributes(false).Any(v => v is ThreadStaticAttribute))
{
_logger.Debug("userFormatProvider field doesn't contain the ThreadStatic Attribute, version is affected by the critical bug #18599.");
return true;
}
return false;
}
} }
} }

View File

@ -81,7 +81,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="OAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=75b3c62967edc2a2, processorArchitecture=MSIL"> <Reference Include="OAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=75b3c62967edc2a2, processorArchitecture=MSIL">
<HintPath>..\packages\OAuth.1.0.3\lib\net40\OAuth.dll</HintPath> <HintPath>..\packages\OAuth.1.0.3\lib\net40\OAuth.dll</HintPath>

View File

@ -167,7 +167,7 @@ namespace NzbDrone.Core.Update
throw new UpdateFailedException("Update Script: '{0}' does not exist", scriptPath); throw new UpdateFailedException("Update Script: '{0}' does not exist", scriptPath);
} }
_logger.Info("Removing NzbDrone.Update"); _logger.Info("Removing Lidarr.Update");
_diskProvider.DeleteFolder(_appFolderInfo.GetUpdateClientFolder(), true); _diskProvider.DeleteFolder(_appFolderInfo.GetUpdateClientFolder(), true);
_logger.ProgressInfo("Starting update script: {0}", _configFileProvider.UpdateScriptPath); _logger.ProgressInfo("Starting update script: {0}", _configFileProvider.UpdateScriptPath);

View File

@ -5,7 +5,7 @@
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" /> <package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
<package id="ImageResizer" version="3.4.3" targetFramework="net461" /> <package id="ImageResizer" version="3.4.3" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="OAuth" version="1.0.3" targetFramework="net461" /> <package id="OAuth" version="1.0.3" targetFramework="net461" />
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" /> <package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />
<package id="RestSharp" version="105.2.3" targetFramework="net461" /> <package id="RestSharp" version="105.2.3" targetFramework="net461" />

View File

@ -93,7 +93,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL"> <Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath> <HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>

View File

@ -13,6 +13,6 @@
<package id="Nancy" version="1.4.4" targetFramework="net461" /> <package id="Nancy" version="1.4.4" targetFramework="net461" />
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="Owin" version="1.0" targetFramework="net461" /> <package id="Owin" version="1.0" targetFramework="net461" />
</packages> </packages>

View File

@ -75,7 +75,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -10,7 +10,7 @@
<package id="Nancy" version="1.4.4" targetFramework="net461" /> <package id="Nancy" version="1.4.4" targetFramework="net461" />
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" /> <package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
<package id="Owin" version="1.0" targetFramework="net461" /> <package id="Owin" version="1.0" targetFramework="net461" />
<package id="RestSharp" version="105.2.3" targetFramework="net461" /> <package id="RestSharp" version="105.2.3" targetFramework="net461" />

View File

@ -56,7 +56,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
</packages> </packages>

View File

@ -65,7 +65,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -5,7 +5,7 @@
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" /> <package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
<package id="Moq" version="4.0.10827" targetFramework="net461" /> <package id="Moq" version="4.0.10827" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
<package id="RestSharp" version="105.2.3" targetFramework="net461" /> <package id="RestSharp" version="105.2.3" targetFramework="net461" />
<package id="Unity" version="2.1.505.2" targetFramework="net461" /> <package id="Unity" version="2.1.505.2" targetFramework="net461" />

View File

@ -52,7 +52,7 @@
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath> <HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>

View File

@ -3,6 +3,6 @@
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" /> <package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
<package id="Moq" version="4.0.10827" targetFramework="net461" /> <package id="Moq" version="4.0.10827" targetFramework="net461" />
<package id="NBuilder" version="4.0.0" targetFramework="net461" /> <package id="NBuilder" version="4.0.0" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NUnit" version="3.6.0" targetFramework="net461" /> <package id="NUnit" version="3.6.0" targetFramework="net461" />
</packages> </packages>

View File

@ -46,7 +46,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
</packages> </packages>

View File

@ -57,7 +57,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
</packages> </packages>

View File

@ -78,7 +78,7 @@
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference> </Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL"> <Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath> <HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>

View File

@ -3,6 +3,6 @@
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" /> <package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" /> <package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NLog" version="4.4.3" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="Owin" version="1.0" targetFramework="net461" /> <package id="Owin" version="1.0" targetFramework="net461" />
</packages> </packages>

9158
yarn.lock Normal file

File diff suppressed because it is too large Load Diff