Initial deployment
This commit is contained in:
@@ -81,9 +81,9 @@
|
|||||||
<Content Include="Utilities\Documents\InventoryData-BadDate.xlsx">
|
<Content Include="Utilities\Documents\InventoryData-BadDate.xlsx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<None Include="Utilities\Documents\InventoryData-NoExtension">
|
<Content Include="Utilities\Documents\InventoryTraker_ImportTemplate.xlsx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -20,6 +20,8 @@ namespace InventoryTraker.Web.Tests.Utilities
|
|||||||
|
|
||||||
var forms = parser.Parse();
|
var forms = parser.Parse();
|
||||||
|
|
||||||
|
Assert.That(forms.Count, Is.GreaterThan(0));
|
||||||
|
|
||||||
foreach (var form in forms)
|
foreach (var form in forms)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"{form.Id} {form.ProgramName} {form.ShredReadyDate}");
|
Console.WriteLine($"{form.Id} {form.ProgramName} {form.ShredReadyDate}");
|
||||||
@@ -27,18 +29,27 @@ namespace InventoryTraker.Web.Tests.Utilities
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Parse_NoExtension()
|
public void Parse_NullableValues()
|
||||||
{
|
{
|
||||||
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryData-NoExtension"));
|
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryData.xlsx"));
|
||||||
|
|
||||||
var parser = new InventoryParser(fileInfo);
|
var parser = new InventoryParser(fileInfo);
|
||||||
|
|
||||||
var forms = parser.Parse();
|
var forms = parser.Parse();
|
||||||
|
|
||||||
foreach (var form in forms)
|
Assert.That(forms[0].ProgramSubtype, Is.Null);
|
||||||
{
|
|
||||||
Console.WriteLine($"{form.Id} {form.ProgramName} {form.ShredReadyDate}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Parse_ImportTemplate()
|
||||||
|
{
|
||||||
|
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryTraker_ImportTemplate.xlsx"));
|
||||||
|
|
||||||
|
var parser = new InventoryParser(fileInfo);
|
||||||
|
|
||||||
|
var forms = parser.Parse();
|
||||||
|
|
||||||
|
Assert.That(forms.Count, Is.EqualTo(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace InventoryTraker.Web.Tests.Utilities
|
|||||||
Id = "34634584",
|
Id = "34634584",
|
||||||
AddedDate = new DateTime(2015,3,1),
|
AddedDate = new DateTime(2015,3,1),
|
||||||
ShredReadyDate = new DateTime(2017,4,1),
|
ShredReadyDate = new DateTime(2017,4,1),
|
||||||
Quantity = 0,
|
Quantity = 1,
|
||||||
Memo = "my memo",
|
Memo = "my memo",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* ui-grid - v3.1.1 - 2016-02-09
|
* ui-grid - v3.2.9 - 2016-09-21
|
||||||
* Copyright (c) 2016 ; License: MIT
|
* Copyright (c) 2016 ; License: MIT
|
||||||
*/
|
*/
|
||||||
#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before,
|
#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before,
|
||||||
@@ -614,7 +614,6 @@ input[type="text"].ui-grid-filter-input:hover {
|
|||||||
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,
|
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,
|
||||||
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,
|
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,
|
||||||
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus {
|
.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus {
|
||||||
outline: thin dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
@@ -1303,7 +1302,6 @@ div.ui-grid-cell input.ng-valid {
|
|||||||
.ui-grid-pager-control button.focus,
|
.ui-grid-pager-control button.focus,
|
||||||
.ui-grid-pager-control button:active.focus,
|
.ui-grid-pager-control button:active.focus,
|
||||||
.ui-grid-pager-control button.active.focus {
|
.ui-grid-pager-control button.active.focus {
|
||||||
outline: thin dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+2
-2
File diff suppressed because one or more lines are too long
@@ -6,29 +6,51 @@
|
|||||||
<font id="ui-grid" horiz-adv-x="1000" >
|
<font id="ui-grid" horiz-adv-x="1000" >
|
||||||
<font-face font-family="ui-grid" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
<font-face font-family="ui-grid" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||||
<missing-glyph horiz-adv-x="1000" />
|
<missing-glyph horiz-adv-x="1000" />
|
||||||
<glyph glyph-name="plus-squared" unicode="썐" d="m714 314v72q0 14-10 25t-25 10h-179v179q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-179h-178q-15 0-26-10t-10-25v-72q0-14 10-25t26-10h178v-179q0-14 11-25t25-11h71q15 0 25 11t11 25v179h179q14 0 25 10t10 25z m143 304v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
<glyph glyph-name="plus-squared" unicode="썐" d="M714 314v72q0 14-10 25t-25 10h-179v179q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-179h-178q-15 0-25-10t-11-25v-72q0-14 11-25t25-10h178v-179q0-14 11-25t25-11h71q15 0 25 11t11 25v179h179q14 0 25 10t10 25z m143 304v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||||
<glyph glyph-name="minus-squared" unicode="썑" d="m714 314v72q0 14-10 25t-25 10h-500q-15 0-26-10t-10-25v-72q0-14 10-25t26-10h500q14 0 25 10t10 25z m143 304v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
|
||||||
<glyph glyph-name="search" unicode="썒" d="m643 386q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
<glyph glyph-name="minus-squared" unicode="썑" d="M714 314v72q0 14-10 25t-25 10h-500q-15 0-25-10t-11-25v-72q0-14 11-25t25-10h500q14 0 25 10t10 25z m143 304v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
|
||||||
<glyph glyph-name="cancel" unicode="썓" d="m724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
|
||||||
<glyph glyph-name="info-circled" unicode="썔" d="m571 82v89q0 8-5 13t-12 5h-54v286q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h53v-179h-53q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h250q7 0 12 5t5 13z m-71 500v89q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h107q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
<glyph glyph-name="search" unicode="썒" d="M643 386q0 103-73 176t-177 74-177-74-73-176 73-177 177-73 177 73 73 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 153-31 125-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||||
<glyph glyph-name="lock" unicode="썕" d="m179 421h285v108q0 59-42 101t-101 41-101-41-41-101v-108z m464-53v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38z" horiz-adv-x="642.9" />
|
|
||||||
<glyph glyph-name="lock-open" unicode="썖" d="m929 529v-143q0-15-11-25t-25-11h-36q-14 0-25 11t-11 25v143q0 59-41 101t-101 41-101-41-42-101v-108h53q23 0 38-15t16-38v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h375v108q0 103 73 176t177 74 176-74 74-176z" horiz-adv-x="928.6" />
|
<glyph glyph-name="cancel" unicode="썓" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
||||||
<glyph glyph-name="pencil" unicode="썗" d="m203-7l50 51-131 131-51-51v-60h72v-71h60z m291 518q0 12-12 12-5 0-9-4l-303-302q-4-4-4-10 0-12 13-12 5 0 9 4l303 302q3 4 3 10z m-30 107l232-232-464-465h-232v233z m381-54q0-29-20-50l-93-93-232 233 93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51z" horiz-adv-x="857.1" />
|
|
||||||
<glyph glyph-name="down-dir" unicode="썘" d="m571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
|
<glyph glyph-name="info-circled" unicode="썔" d="M571 82v89q0 8-5 13t-12 5h-54v286q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h53v-179h-53q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h250q7 0 12 5t5 13z m-71 500v89q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h107q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||||
<glyph glyph-name="up-dir" unicode="썙" d="m571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
|
|
||||||
<glyph glyph-name="left-dir" unicode="썚" d="m357 600v-500q0-14-10-25t-26-11-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11 10-25z" horiz-adv-x="357.1" />
|
<glyph glyph-name="lock" unicode="썕" d="M179 421h285v108q0 59-42 101t-101 41-101-41-41-101v-108z m464-53v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h17v108q0 102 74 176t176 74 177-74 73-176v-108h18q23 0 38-15t16-38z" horiz-adv-x="642.9" />
|
||||||
<glyph glyph-name="right-dir" unicode="썛" d="m321 350q0-14-10-25l-250-250q-11-11-25-11t-25 11-11 25v500q0 15 11 25t25 11 25-11l250-250q10-10 10-25z" horiz-adv-x="357.1" />
|
|
||||||
<glyph glyph-name="left-open" unicode="썜" d="m653 682l-296-296 296-297q11-10 11-25t-11-25l-92-93q-11-10-25-10t-25 10l-414 415q-11 10-11 25t11 25l414 414q10 10 25 10t25-10l92-93q11-10 11-25t-11-25z" horiz-adv-x="714.3" />
|
<glyph glyph-name="lock-open" unicode="썖" d="M929 529v-143q0-15-11-25t-25-11h-36q-14 0-25 11t-11 25v143q0 59-41 101t-101 41-101-41-42-101v-108h53q23 0 38-15t16-38v-322q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v322q0 22 16 38t38 15h375v108q0 103 73 176t177 74 176-74 74-176z" horiz-adv-x="928.6" />
|
||||||
<glyph glyph-name="right-open" unicode="썝" d="m618 361l-414-415q-11-10-25-10t-26 10l-92 93q-11 11-11 25t11 25l296 297-296 296q-11 11-11 25t11 25l92 93q11 10 26 10t25-10l414-414q10-11 10-25t-10-25z" horiz-adv-x="714.3" />
|
|
||||||
<glyph glyph-name="angle-down" unicode="썞" d="m600 439q0-7-6-13l-260-260q-5-5-13-5t-12 5l-260 260q-6 6-6 13t6 13l27 28q6 6 13 6t13-6l219-219 220 219q5 6 13 6t12-6l28-28q6-5 6-13z" horiz-adv-x="642.9" />
|
<glyph glyph-name="pencil" unicode="썗" d="M203-7l50 51-131 131-51-51v-60h72v-71h60z m291 518q0 12-12 12-5 0-9-4l-303-302q-4-4-4-10 0-12 13-12 5 0 9 4l303 302q3 4 3 10z m-30 107l232-232-464-465h-232v233z m381-54q0-29-20-50l-93-93-232 233 93 92q20 21 50 21 29 0 51-21l131-131q20-22 20-51z" horiz-adv-x="857.1" />
|
||||||
<glyph glyph-name="filter" unicode="썟" d="m783 685q9-23-8-39l-275-275v-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-10 10-10 25v271l-275 275q-18 16-8 39 9 22 33 22h714q23 0 33-22z" horiz-adv-x="785.7" />
|
|
||||||
<glyph glyph-name="sort-alt-up" unicode="썠" d="m411 46q0-6-6-13l-178-178q-5-5-13-5-6 0-13 5l-178 179q-8 9-4 19 4 11 17 11h107v768q0 8 5 13t13 5h107q8 0 13-5t5-13v-768h107q8 0 13-5t5-13z m589-71v-107q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v107q0 8 5 13t13 5h464q8 0 13-5t5-13z m-107 286v-107q0-8-5-13t-13-5h-357q-8 0-13 5t-5 13v107q0 8 5 13t13 5h357q8 0 13-5t5-13z m-107 285v-107q0-8-5-13t-13-5h-250q-8 0-13 5t-5 13v107q0 8 5 13t13 5h250q8 0 13-5t5-13z m-107 286v-107q0-8-5-13t-13-5h-143q-8 0-13 5t-5 13v107q0 8 5 13t13 5h143q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
<glyph glyph-name="down-dir" unicode="썘" d="M571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
|
||||||
<glyph glyph-name="sort-alt-down" unicode="썡" d="m679-25v-107q0-8-5-13t-13-5h-143q-8 0-13 5t-5 13v107q0 8 5 13t13 5h143q8 0 13-5t5-13z m-268 71q0-6-6-13l-178-178q-5-5-13-5-6 0-13 5l-178 179q-8 9-4 19 4 11 17 11h107v768q0 8 5 13t13 5h107q8 0 13-5t5-13v-768h107q8 0 13-5t5-13z m375 215v-107q0-8-5-13t-13-5h-250q-8 0-13 5t-5 13v107q0 8 5 13t13 5h250q8 0 13-5t5-13z m107 285v-107q0-8-5-13t-13-5h-357q-8 0-13 5t-5 13v107q0 8 5 13t13 5h357q8 0 13-5t5-13z m107 286v-107q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v107q0 8 5 13t13 5h464q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
|
||||||
<glyph glyph-name="ok" unicode="썢" d="m932 534q0-22-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38z" horiz-adv-x="1000" />
|
<glyph glyph-name="up-dir" unicode="썙" d="M571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
|
||||||
<glyph glyph-name="menu" unicode="썣" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
|
|
||||||
<glyph glyph-name="indent-left" unicode="" d="m214 546v-321q0-7-5-13t-13-5q-7 0-12 5l-161 161q-5 5-5 13t5 13l161 160q5 5 12 5 8 0 13-5t5-13z m786-428v-107q0-7-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z m0 214v-107q0-7-5-13t-13-5h-607q-7 0-13 5t-5 13v107q0 7 5 13t13 5h607q7 0 13-5t5-13z m0 214v-107q0-7-5-12t-13-6h-607q-7 0-13 6t-5 12v107q0 8 5 13t13 5h607q7 0 13-5t5-13z m0 215v-107q0-8-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z" horiz-adv-x="1000" />
|
<glyph glyph-name="left-dir" unicode="썚" d="M357 600v-500q0-14-10-25t-26-11-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11 10-25z" horiz-adv-x="357.1" />
|
||||||
<glyph glyph-name="indent-right" unicode="" d="m196 386q0-8-5-13l-160-161q-5-5-13-5-7 0-13 5t-5 13v321q0 8 5 13t13 5q8 0 13-5l160-160q5-5 5-13z m804-268v-107q0-7-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z m0 214v-107q0-7-5-13t-13-5h-607q-7 0-13 5t-5 13v107q0 7 5 13t13 5h607q7 0 13-5t5-13z m0 214v-107q0-7-5-12t-13-6h-607q-7 0-13 6t-5 12v107q0 8 5 13t13 5h607q7 0 13-5t5-13z m0 215v-107q0-8-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z" horiz-adv-x="1000" />
|
|
||||||
<glyph glyph-name="spin5" unicode="" d="m462 850c-6 0-11-5-11-11l0-183 0 0c0-6 5-11 11-11l69 0c1 0 1 0 1 0 7 0 12 5 12 11l0 183 0 0c0 6-5 11-12 11l-69 0c0 0 0 0-1 0z m250-47c-4 1-8-2-10-5l-91-158 0 0c-4-6-2-13 4-16l60-35c0 0 0 0 0 0 6-3 13-1 16 4l91 158c3 6 2 13-4 16l-61 35c-1 1-3 1-5 1z m-428-2c-2 0-4-1-6-2l-61-35c-5-3-7-10-4-16l91-157c0 0 0 0 0 0 3-6 10-8 16-5l61 35c5 4 7 11 4 16l-91 157c0 1 0 1 0 1-2 4-6 6-10 6z m620-163c-2 0-4 0-6-1l-157-91c0 0 0 0 0 0-6-3-8-10-5-16l35-61c4-5 11-7 16-4l157 91c1 0 1 0 1 0 6 3 7 10 4 16l-35 61c-2 3-6 5-10 5z m-810-4c-5 0-9-2-11-6l-35-61c-3-5-1-12 4-15l158-92 0 0c6-3 13-1 16 5l35 60c0 0 0 0 0 0 3 6 1 13-4 16l-158 91c-2 1-4 2-5 2z m712-235l0 0c-6 0-11-5-11-11l0-69c0-1 0-1 0-1 0-7 5-12 11-12l183 0 0 0c6 0 11 5 11 12l0 69c0 0 0 0 0 1 0 6-5 11-11 11l-183 0z m-794-5l0 0c-7 0-12-5-12-12l0-69c0 0 0 0 0-1 0-6 5-11 12-11l182 0 0 0c6 0 11 5 11 11l0 69c0 1 0 1 0 1 0 7-5 12-11 12l-182 0z m772-153c-4 0-8-2-10-6l-34-60c-1 0-1 0-1 0-3-6-1-13 4-16l158-91c6-3 13-2 16 4l35 61c3 5 1 12-4 15l-158 91 0 0c-2 1-4 2-6 2z m-566-5c-1 0-3 0-5-1l-157-91c0 0-1 0-1 0-5-3-7-11-4-16l35-61c3-5 10-7 16-4l157 91c0 0 0 0 0 0 6 3 8 10 5 16l-35 61c-3 3-7 5-11 5z m468-121c-2 0-4 0-6-1l-61-35c-5-4-7-11-4-16l91-157c0-1 0-1 0-1 3-6 11-7 16-4l61 35c5 3 7 10 4 16l-91 157c0 0 0 0 0 0-2 4-6 6-10 6z m-367-3c-4 1-8-2-10-5l-91-158c-3-6-1-13 4-16l61-35c5-3 12-1 15 4l92 158 0 0c3 6 1 13-5 16l-60 34c0 1 0 1 0 1-2 1-4 1-6 1z m149-57c-7 0-12-5-12-11l0-183 0 0c0-6 5-11 12-11l69 0c0 0 0 0 1 0 6 0 11 5 11 11l0 183 0 0c0 6-5 11-11 11l-69 0c-1 0-1 0-1 0z" horiz-adv-x="1000" />
|
<glyph glyph-name="right-dir" unicode="썛" d="M321 350q0-14-10-25l-250-250q-11-11-25-11t-25 11-11 25v500q0 15 11 25t25 11 25-11l250-250q10-10 10-25z" horiz-adv-x="357.1" />
|
||||||
|
|
||||||
|
<glyph glyph-name="left-open" unicode="썜" d="M654 682l-297-296 297-297q10-10 10-25t-10-25l-93-93q-11-10-25-10t-25 10l-414 415q-11 10-11 25t11 25l414 414q10 11 25 11t25-11l93-93q10-10 10-25t-10-25z" horiz-adv-x="714.3" />
|
||||||
|
|
||||||
|
<glyph glyph-name="right-open" unicode="썝" d="M618 361l-414-415q-11-10-25-10t-25 10l-93 93q-11 11-11 25t11 25l296 297-296 296q-11 11-11 25t11 25l93 93q10 11 25 11t25-11l414-414q10-11 10-25t-10-25z" horiz-adv-x="714.3" />
|
||||||
|
|
||||||
|
<glyph glyph-name="angle-down" unicode="썞" d="M600 439q0-7-6-12l-260-261q-5-5-13-5t-12 5l-260 261q-6 5-6 12t6 13l28 28q5 6 12 6t13-6l219-219 220 219q5 6 13 6t12-6l28-28q6-5 6-13z" horiz-adv-x="642.9" />
|
||||||
|
|
||||||
|
<glyph glyph-name="filter" unicode="썟" d="M783 685q9-22-8-39l-275-275v-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-10 11-10 25v271l-275 275q-18 17-8 39 9 22 33 22h714q23 0 33-22z" horiz-adv-x="785.7" />
|
||||||
|
|
||||||
|
<glyph glyph-name="sort-alt-up" unicode="썠" d="M411 46q0-6-6-13l-178-178q-5-5-13-5-6 0-12 5l-179 179q-8 9-4 19 4 11 17 11h107v768q0 8 5 13t13 5h107q8 0 13-5t5-13v-768h107q8 0 13-5t5-13z m589-71v-107q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v107q0 8 5 13t13 5h464q8 0 13-5t5-13z m-107 286v-107q0-8-5-13t-13-5h-357q-8 0-13 5t-5 13v107q0 8 5 13t13 5h357q8 0 13-5t5-13z m-107 285v-107q0-7-5-12t-13-6h-250q-8 0-13 6t-5 12v107q0 8 5 13t13 5h250q8 0 13-5t5-13z m-107 286v-107q0-8-5-13t-13-5h-143q-8 0-13 5t-5 13v107q0 8 5 13t13 5h143q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="sort-alt-down" unicode="썡" d="M679-25v-107q0-8-5-13t-13-5h-143q-8 0-13 5t-5 13v107q0 8 5 13t13 5h143q8 0 13-5t5-13z m-268 71q0-6-6-13l-178-178q-5-5-13-5-6 0-12 5l-179 179q-8 9-4 19 4 11 17 11h107v768q0 8 5 13t13 5h107q8 0 13-5t5-13v-768h107q8 0 13-5t5-13z m375 215v-107q0-8-5-13t-13-5h-250q-8 0-13 5t-5 13v107q0 8 5 13t13 5h250q8 0 13-5t5-13z m107 285v-107q0-7-5-12t-13-6h-357q-8 0-13 6t-5 12v107q0 8 5 13t13 5h357q8 0 13-5t5-13z m107 286v-107q0-8-5-13t-13-5h-464q-8 0-13 5t-5 13v107q0 8 5 13t13 5h464q8 0 13-5t5-13z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="ok" unicode="썢" d="M933 534q0-22-16-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-15 16-38z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="menu" unicode="썣" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
|
||||||
|
|
||||||
|
<glyph glyph-name="indent-left" unicode="" d="M214 546v-321q0-7-5-13t-13-5q-7 0-12 5l-161 161q-5 5-5 13t5 13l161 160q5 5 12 5 8 0 13-5t5-13z m786-428v-107q0-7-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z m0 214v-107q0-7-5-13t-13-5h-607q-7 0-13 5t-5 13v107q0 7 5 13t13 5h607q7 0 13-5t5-13z m0 214v-107q0-7-5-12t-13-6h-607q-7 0-13 6t-5 12v107q0 8 5 13t13 5h607q7 0 13-5t5-13z m0 215v-107q0-8-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="indent-right" unicode="" d="M196 386q0-8-5-13l-160-161q-5-5-13-5-7 0-13 5t-5 13v321q0 8 5 13t13 5q8 0 13-5l160-160q5-5 5-13z m804-268v-107q0-7-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z m0 214v-107q0-7-5-13t-13-5h-607q-7 0-13 5t-5 13v107q0 7 5 13t13 5h607q7 0 13-5t5-13z m0 214v-107q0-7-5-12t-13-6h-607q-7 0-13 6t-5 12v107q0 8 5 13t13 5h607q7 0 13-5t5-13z m0 215v-107q0-8-5-13t-13-5h-964q-7 0-13 5t-5 13v107q0 7 5 12t13 6h964q7 0 13-6t5-12z" horiz-adv-x="1000" />
|
||||||
|
|
||||||
|
<glyph glyph-name="spin5" unicode="" d="M462 850c-6 0-11-5-11-11l0-183 0 0c0-6 5-11 11-11l69 0c1 0 1 0 1 0 7 0 12 5 12 11l0 183 0 0c0 6-5 11-12 11l-69 0c0 0 0 0-1 0z m250-47c-4 1-8-2-10-5l-91-158 0 0c-4-6-2-13 4-16l60-34c0-1 0-1 0-1 6-3 13-1 16 4l91 158c3 6 2 13-4 16l-61 35c-1 1-3 1-5 1z m-428-2c-2 0-4-1-6-2l-61-35c-5-3-7-10-4-16l91-157c0 0 0 0 0 0 3-6 10-8 16-5l61 35c5 4 7 11 4 16l-91 157c0 1 0 1 0 1-2 4-6 6-10 6z m620-163c-2 0-4 0-6-1l-157-91c0 0 0 0 0 0-6-3-8-10-5-16l35-61c4-5 11-7 16-4l157 91c1 0 1 0 1 0 6 3 7 11 4 16l-35 61c-2 4-6 6-10 5z m-810-4c-5 0-9-2-11-6l-35-61c-3-5-1-12 4-15l158-91 0 0c6-4 13-2 16 4l35 60c0 0 0 0 0 0 3 6 1 13-4 16l-158 91c-2 1-4 2-5 2z m712-235l0 0c-6 0-11-5-11-11l0-69c0-1 0-1 0-1 0-7 5-12 11-12l183 0 0 0c6 0 11 5 11 12l0 69c0 0 0 0 0 1 0 6-5 11-11 11l-183 0z m-794-5l0 0c-7 0-12-5-12-12l0-69c0 0 0 0 0-1 0-6 5-11 12-11l182 0 0 0c6 0 11 5 11 11l0 69c0 1 0 1 0 1 0 7-5 12-11 12l-182 0z m772-153c-4 0-8-2-10-6l-34-60c-1 0-1 0-1 0-3-6-1-13 4-16l158-91c6-3 13-1 16 4l35 61c3 5 1 12-4 15l-158 92 0 0c-2 1-4 1-6 1z m-566-5c-1 0-3 0-5-1l-157-91c0 0-1 0-1 0-5-3-7-10-4-16l35-61c3-5 10-7 16-4l157 91c0 0 0 0 0 0 6 3 8 10 5 16l-35 61c-3 3-7 6-11 5z m468-121c-2 0-4 0-6-1l-61-35c-5-4-7-11-4-16l91-157c0-1 0-1 0-1 3-6 11-7 16-4l61 35c5 3 7 10 4 16l-91 157c0 0 0 0 0 0-2 4-6 6-10 6z m-367-2c-4 0-8-2-10-6l-91-158c-3-6-1-13 4-16l61-35c5-3 12-1 15 4l92 158 0 0c3 6 1 13-5 16l-60 35c0 0 0 0 0 0-2 1-4 1-6 2z m149-58c-7 0-12-5-12-11l0-183 0 0c0-6 5-11 12-11l69 0c0 0 0 0 1 0 6 0 11 5 11 11l0 183 0 0c0 6-5 11-11 11l-69 0c-1 0-1 0-1 0z" horiz-adv-x="1000" />
|
||||||
</font>
|
</font>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Binary file not shown.
Binary file not shown.
@@ -1,8 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web;
|
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using AutoMapper.QueryableExtensions;
|
using AutoMapper.QueryableExtensions;
|
||||||
@@ -19,13 +17,11 @@ namespace InventoryTraker.Web.Controllers
|
|||||||
{
|
{
|
||||||
private readonly AppDbContext _context;
|
private readonly AppDbContext _context;
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
private readonly InventoryImporter _inventoryImporter;
|
|
||||||
|
|
||||||
public InventoryController(AppDbContext context, IMapper mapper, InventoryImporter inventoryImporter)
|
public InventoryController(AppDbContext context, IMapper mapper)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
_inventoryImporter = inventoryImporter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Index()
|
public ActionResult Index()
|
||||||
@@ -158,6 +154,5 @@ namespace InventoryTraker.Web.Controllers
|
|||||||
|
|
||||||
return BetterJson(_mapper.Map<InventoryViewModel>(inventory));
|
return BetterJson(_mapper.Map<InventoryViewModel>(inventory));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,7 +129,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.3.8\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.3.10\lib\net45\NLog.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog.Web, Version=0.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
@@ -140,8 +140,8 @@
|
|||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="StructureMap, Version=4.3.0.449, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="StructureMap, Version=4.4.1.451, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\StructureMap.4.4.0\lib\net45\StructureMap.dll</HintPath>
|
<HintPath>..\packages\StructureMap.4.4.1\lib\net45\StructureMap.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
<Reference Include="System.Web.Services" />
|
<Reference Include="System.Web.Services" />
|
||||||
<Reference Include="System.EnterpriseServices" />
|
<Reference Include="System.EnterpriseServices" />
|
||||||
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
|
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\WebActivatorEx.2.1.0\lib\net40\WebActivatorEx.dll</HintPath>
|
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
@@ -211,6 +211,9 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="App_Data\placeholder.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="Content\bootstrap-theme.css" />
|
<Content Include="Content\bootstrap-theme.css" />
|
||||||
<Content Include="Content\bootstrap-theme.min.css" />
|
<Content Include="Content\bootstrap-theme.min.css" />
|
||||||
<Content Include="Content\bootstrap.css" />
|
<Content Include="Content\bootstrap.css" />
|
||||||
@@ -260,6 +263,8 @@
|
|||||||
<Content Include="Scripts\angular-animate.js" />
|
<Content Include="Scripts\angular-animate.js" />
|
||||||
<Content Include="Scripts\angular-animate.min.js" />
|
<Content Include="Scripts\angular-animate.min.js" />
|
||||||
<Content Include="Scripts\angular-mocks.js" />
|
<Content Include="Scripts\angular-mocks.js" />
|
||||||
|
<Content Include="Scripts\angular-strap.compat.js" />
|
||||||
|
<Content Include="Scripts\angular-strap.compat.min.js" />
|
||||||
<Content Include="Scripts\angular-strap.js" />
|
<Content Include="Scripts\angular-strap.js" />
|
||||||
<Content Include="Scripts\angular-strap.min.js" />
|
<Content Include="Scripts\angular-strap.min.js" />
|
||||||
<Content Include="Scripts\angular-strap.tpl.js" />
|
<Content Include="Scripts\angular-strap.tpl.js" />
|
||||||
@@ -274,15 +279,11 @@
|
|||||||
<Content Include="Content\bootstrap.css.map" />
|
<Content Include="Content\bootstrap.css.map" />
|
||||||
<Content Include="Content\bootstrap-theme.min.css.map" />
|
<Content Include="Content\bootstrap-theme.min.css.map" />
|
||||||
<Content Include="Content\bootstrap-theme.css.map" />
|
<Content Include="Content\bootstrap-theme.css.map" />
|
||||||
<Content Include="Content\ui-grid.woff" />
|
|
||||||
<Content Include="Content\ui-grid.ttf" />
|
|
||||||
<Content Include="Content\ui-grid.eot" />
|
|
||||||
<Content Include="fonts\FontAwesome.otf" />
|
<Content Include="fonts\FontAwesome.otf" />
|
||||||
<Content Include="fonts\fontawesome-webfont.woff2" />
|
<Content Include="fonts\fontawesome-webfont.woff2" />
|
||||||
<Content Include="fonts\fontawesome-webfont.woff" />
|
<Content Include="fonts\fontawesome-webfont.woff" />
|
||||||
<Content Include="fonts\fontawesome-webfont.ttf" />
|
<Content Include="fonts\fontawesome-webfont.ttf" />
|
||||||
<Content Include="fonts\fontawesome-webfont.eot" />
|
<Content Include="fonts\fontawesome-webfont.eot" />
|
||||||
<Content Include="Scripts\angular-strap.min.js.map" />
|
|
||||||
<Content Include="fonts\glyphicons-halflings-regular.woff2" />
|
<Content Include="fonts\glyphicons-halflings-regular.woff2" />
|
||||||
<Content Include="js\inventory\templates\inventoryInfo.tmpl.cshtml" />
|
<Content Include="js\inventory\templates\inventoryInfo.tmpl.cshtml" />
|
||||||
<Content Include="js\inventory\templates\inventoryRemove.tmpl.cshtml" />
|
<Content Include="js\inventory\templates\inventoryRemove.tmpl.cshtml" />
|
||||||
@@ -298,10 +299,17 @@
|
|||||||
<Content Include="js\user\templates\userList.tmpl.cshtml" />
|
<Content Include="js\user\templates\userList.tmpl.cshtml" />
|
||||||
<Content Include="js\profile\templates\profileEdit.tmpl.cshtml" />
|
<Content Include="js\profile\templates\profileEdit.tmpl.cshtml" />
|
||||||
<Content Include="js\inventory\templates\inventoryImport.tmpl.cshtml" />
|
<Content Include="js\inventory\templates\inventoryImport.tmpl.cshtml" />
|
||||||
|
<Content Include="Content\InventoryTraker_ImportTemplate.xlsx">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\ui-grid.woff" />
|
||||||
|
<Content Include="Content\ui-grid.ttf" />
|
||||||
|
<Content Include="Content\ui-grid.eot" />
|
||||||
<None Include="NLog.xsd">
|
<None Include="NLog.xsd">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Properties\PublishProfiles\ETHRA.pubxml" />
|
<None Include="Properties\PublishProfiles\ETHRA.pubxml" />
|
||||||
|
<Content Include="Scripts\angular-strap.min.js.map" />
|
||||||
<None Include="Scripts\jquery-1.9.1.intellisense.js" />
|
<None Include="Scripts\jquery-1.9.1.intellisense.js" />
|
||||||
<Content Include="Scripts\bootstrap.js" />
|
<Content Include="Scripts\bootstrap.js" />
|
||||||
<Content Include="Scripts\bootstrap.min.js" />
|
<Content Include="Scripts\bootstrap.min.js" />
|
||||||
@@ -414,9 +422,7 @@
|
|||||||
<DependentUpon>Web.config</DependentUpon>
|
<DependentUpon>Web.config</DependentUpon>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup />
|
||||||
<Folder Include="App_Data\" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ namespace InventoryTraker.Web.Migrations
|
|||||||
RemovedQuantity = inventory.Quantity,
|
RemovedQuantity = inventory.Quantity,
|
||||||
CurrentQuantity = 0,
|
CurrentQuantity = 0,
|
||||||
Inventory = inventory,
|
Inventory = inventory,
|
||||||
Memo = $"Expired on {inventory.ShredReadyDate.ToShortDateString()}",
|
Memo = $"Shreded on {inventory.ShredReadyDate.ToShortDateString()}",
|
||||||
TransactionDate = dd,
|
TransactionDate = dd,
|
||||||
Timestamp = dd
|
Timestamp = dd
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
for information on customizing logging rules and outputs.
|
for information on customizing logging rules and outputs.
|
||||||
-->
|
-->
|
||||||
<targets>
|
<targets>
|
||||||
<target name="debugLogger" xsi:type="File" fileName="${basedir}/../logs/Debug.${shortdate}.txt" />
|
<target name="debugLogger" xsi:type="File" fileName="${basedir}/../logs/InventoryTraker-Box/Debug.${shortdate}.txt" />
|
||||||
<target name="exceptionLogger" xsi:type="File" fileName="${basedir}/../logs/Error.${shortdate}.txt" />
|
<target name="exceptionLogger" xsi:type="File" fileName="${basedir}/../logs/InventoryTraker-Box/Error.${shortdate}.txt" />
|
||||||
</targets>
|
</targets>
|
||||||
<rules>
|
<rules>
|
||||||
<logger name="*" minlevel="Debug" writeTo="debugLogger" />
|
<logger name="*" minlevel="Debug" writeTo="debugLogger" />
|
||||||
|
|||||||
@@ -531,6 +531,7 @@
|
|||||||
<xs:element name="useDefaultRowHighlightingRules" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="useDefaultRowHighlightingRules" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="highlight-row" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleRowHighlightingRule" />
|
<xs:element name="highlight-row" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleRowHighlightingRule" />
|
||||||
<xs:element name="highlight-word" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleWordHighlightingRule" />
|
<xs:element name="highlight-word" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.ConsoleWordHighlightingRule" />
|
||||||
|
<xs:element name="detectConsoleAvailable" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
|
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
|
||||||
<xs:element name="errorStream" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="errorStream" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
</xs:choice>
|
</xs:choice>
|
||||||
@@ -559,6 +560,11 @@
|
|||||||
<xs:documentation>Indicates whether to use default row highlighting rules.</xs:documentation>
|
<xs:documentation>Indicates whether to use default row highlighting rules.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
|
<xs:attribute name="detectConsoleAvailable" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
<xs:attribute name="encoding" type="xs:string">
|
<xs:attribute name="encoding" type="xs:string">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>The encoding for writing messages to the .</xs:documentation>
|
<xs:documentation>The encoding for writing messages to the .</xs:documentation>
|
||||||
@@ -670,6 +676,7 @@
|
|||||||
<xs:element name="header" minOccurs="0" maxOccurs="1" type="Layout" />
|
<xs:element name="header" minOccurs="0" maxOccurs="1" type="Layout" />
|
||||||
<xs:element name="footer" minOccurs="0" maxOccurs="1" type="Layout" />
|
<xs:element name="footer" minOccurs="0" maxOccurs="1" type="Layout" />
|
||||||
<xs:element name="error" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="error" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
|
<xs:element name="detectConsoleAvailable" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
|
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
|
||||||
</xs:choice>
|
</xs:choice>
|
||||||
<xs:attribute name="name" type="xs:string">
|
<xs:attribute name="name" type="xs:string">
|
||||||
@@ -697,6 +704,11 @@
|
|||||||
<xs:documentation>Indicates whether to send the log messages to the standard error instead of the standard output.</xs:documentation>
|
<xs:documentation>Indicates whether to send the log messages to the standard error instead of the standard output.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
|
<xs:attribute name="detectConsoleAvailable" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App)</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
<xs:attribute name="encoding" type="xs:string">
|
<xs:attribute name="encoding" type="xs:string">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>The encoding for writing messages to the .</xs:documentation>
|
<xs:documentation>The encoding for writing messages to the .</xs:documentation>
|
||||||
@@ -1031,6 +1043,7 @@
|
|||||||
<xs:element name="archiveFileKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" />
|
<xs:element name="archiveFileKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" />
|
||||||
<xs:element name="cleanupFileName" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="cleanupFileName" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="forceManaged" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="forceManaged" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
|
<xs:element name="writeFooterOnArchivingOnly" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" />
|
<xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" />
|
||||||
<xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
|
<xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
|
||||||
<xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
@@ -1039,7 +1052,7 @@
|
|||||||
<xs:element name="fileAttributes" minOccurs="0" maxOccurs="1" type="NLog.Targets.Win32FileAttributes" />
|
<xs:element name="fileAttributes" minOccurs="0" maxOccurs="1" type="NLog.Targets.Win32FileAttributes" />
|
||||||
<xs:element name="deleteOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="deleteOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="concurrentWriteAttemptDelay" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
<xs:element name="concurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="keepFileOpen" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="keepFileOpen" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
<xs:element name="maxLogFilenames" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
<xs:element name="maxLogFilenames" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
||||||
<xs:element name="networkWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="networkWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
@@ -1047,8 +1060,8 @@
|
|||||||
<xs:element name="openFileCacheTimeout" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
<xs:element name="openFileCacheTimeout" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
||||||
<xs:element name="bufferSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
<xs:element name="bufferSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
||||||
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
||||||
|
<xs:element name="concurrentWriteAttemptDelay" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
||||||
<xs:element name="concurrentWriteAttempts" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
<xs:element name="concurrentWriteAttempts" minOccurs="0" maxOccurs="1" type="xs:integer" />
|
||||||
<xs:element name="concurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
|
|
||||||
</xs:choice>
|
</xs:choice>
|
||||||
<xs:attribute name="name" type="xs:string">
|
<xs:attribute name="name" type="xs:string">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
@@ -1130,6 +1143,11 @@
|
|||||||
<xs:documentation>Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation.</xs:documentation>
|
<xs:documentation>Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
|
<xs:attribute name="writeFooterOnArchivingOnly" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Indicates whether the footer should be written only when the file is archived.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
<xs:attribute name="fileName" type="SimpleLayoutAttribute">
|
<xs:attribute name="fileName" type="SimpleLayoutAttribute">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>Name of the file to write to.</xs:documentation>
|
<xs:documentation>Name of the file to write to.</xs:documentation>
|
||||||
@@ -1170,9 +1188,9 @@
|
|||||||
<xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation>
|
<xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
<xs:attribute name="concurrentWriteAttemptDelay" type="xs:integer">
|
<xs:attribute name="concurrentWrites" type="xs:boolean">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>Delay in milliseconds to wait before attempting to write to the file again.</xs:documentation>
|
<xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on the same host.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
<xs:attribute name="keepFileOpen" type="xs:boolean">
|
<xs:attribute name="keepFileOpen" type="xs:boolean">
|
||||||
@@ -1210,16 +1228,16 @@
|
|||||||
<xs:documentation>Indicates whether to automatically flush the file buffers after each log message.</xs:documentation>
|
<xs:documentation>Indicates whether to automatically flush the file buffers after each log message.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
|
<xs:attribute name="concurrentWriteAttemptDelay" type="xs:integer">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Delay in milliseconds to wait before attempting to write to the file again.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
<xs:attribute name="concurrentWriteAttempts" type="xs:integer">
|
<xs:attribute name="concurrentWriteAttempts" type="xs:integer">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>Number of times the write is appended on the file before NLog discards the log message.</xs:documentation>
|
<xs:documentation>Number of times the write is appended on the file before NLog discards the log message.</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
<xs:attribute name="concurrentWrites" type="xs:boolean">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on the same host.</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
</xs:attribute>
|
|
||||||
</xs:extension>
|
</xs:extension>
|
||||||
</xs:complexContent>
|
</xs:complexContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+3640
-3198
File diff suppressed because it is too large
Load Diff
+4
-5
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* angular-strap
|
* angular-strap
|
||||||
* @version v2.3.1 - 2015-07-19
|
* @version v2.3.9 - 2016-06-10
|
||||||
* @link http://mgcrea.github.io/angular-strap
|
* @link http://mgcrea.github.io/angular-strap
|
||||||
* @author Olivier Louvignes <olivier@mg-crea.com> (https://github.com/mgcrea)
|
* @author Olivier Louvignes <olivier@mg-crea.com> (https://github.com/mgcrea)
|
||||||
* @license MIT License, http://www.opensource.org/licenses/MIT
|
* @license MIT License, http://www.opensource.org/licenses/MIT
|
||||||
@@ -8,36 +8,36 @@
|
|||||||
(function(window, document, undefined) {
|
(function(window, document, undefined) {
|
||||||
'use strict';
|
'use strict';
|
||||||
angular.module('mgcrea.ngStrap.alert').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.alert').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('alert/alert.tpl.html', '<div class="alert" ng-class="[type ? \'alert-\' + type : null]"><button type="button" class="close" ng-if="dismissable" ng-click="$hide()">×</button> <strong ng-bind="title"></strong> <span ng-bind-html="content"></span></div>');
|
$templateCache.put('alert/alert.tpl.html', '<div class="alert" ng-class="[type ? \'alert-\' + type : null]"><button type="button" class="close" ng-if="dismissable" ng-click="$hide()">×</button> <span ng-if="title"><strong ng-bind="title"></strong> <span ng-bind-html="content"></span></span> <span ng-if="!title" ng-bind-html="content"></span></div>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.aside').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.aside').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('aside/aside.tpl.html', '<div class="aside" tabindex="-1" role="dialog"><div class="aside-dialog"><div class="aside-content"><div class="aside-header" ng-show="title"><button type="button" class="close" ng-click="$hide()">×</button><h4 class="aside-title" ng-bind="title"></h4></div><div class="aside-body" ng-bind="content"></div><div class="aside-footer"><button type="button" class="btn btn-default" ng-click="$hide()">Close</button></div></div></div></div>');
|
$templateCache.put('aside/aside.tpl.html', '<div class="aside" tabindex="-1" role="dialog"><div class="aside-dialog"><div class="aside-content"><div class="aside-header" ng-show="title"><button type="button" class="close" ng-click="$hide()">×</button><h4 class="aside-title" ng-bind="title"></h4></div><div class="aside-body" ng-bind="content"></div><div class="aside-footer"><button type="button" class="btn btn-default" ng-click="$hide()">Close</button></div></div></div></div>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.datepicker').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.datepicker').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('datepicker/datepicker.tpl.html', '<div class="dropdown-menu datepicker" ng-class="\'datepicker-mode-\' + $mode" style="max-width: 320px"><table style="table-layout: fixed; height: 100%; width: 100%"><thead><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$selectPane(-1)"><i class="{{$iconLeft}}"></i></button></th><th colspan="{{ rows[0].length - 2 }}"><button tabindex="-1" type="button" class="btn btn-default btn-block text-strong" ng-click="$toggleMode()"><strong style="text-transform: capitalize" ng-bind="title"></strong></button></th><th><button tabindex="-1" type="button" class="btn btn-default pull-right" ng-click="$selectPane(+1)"><i class="{{$iconRight}}"></i></button></th></tr><tr ng-show="showLabels" ng-bind-html="labels"></tr></thead><tbody><tr ng-repeat="(i, row) in rows" height="{{ 100 / rows.length }}%"><td class="text-center" ng-repeat="(j, el) in row"><button tabindex="-1" type="button" class="btn btn-default" style="width: 100%" ng-class="{\'btn-primary\': el.selected, \'btn-info btn-today\': el.isToday && !el.selected}" ng-click="$select(el.date)" ng-disabled="el.disabled"><span ng-class="{\'text-muted\': el.muted}" ng-bind="el.label"></span></button></td></tr></tbody></table></div>');
|
$templateCache.put('datepicker/datepicker.tpl.html', '<div class="dropdown-menu datepicker" ng-class="\'datepicker-mode-\' + $mode" style="max-width: 320px"><table style="table-layout: fixed; height: 100%; width: 100%"><thead><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$selectPane(-1)"><i class="{{$iconLeft}}"></i></button></th><th colspan="{{ rows[0].length - 2 }}"><button tabindex="-1" type="button" class="btn btn-default btn-block text-strong" ng-click="$toggleMode()"><strong style="text-transform: capitalize" ng-bind="title"></strong></button></th><th><button tabindex="-1" type="button" class="btn btn-default pull-right" ng-click="$selectPane(+1)"><i class="{{$iconRight}}"></i></button></th></tr><tr ng-if="showLabels" ng-bind-html="labels"></tr></thead><tbody><tr ng-repeat="(i, row) in rows" height="{{ 100 / rows.length }}%"><td class="text-center" ng-repeat="(j, el) in row"><button tabindex="-1" type="button" class="btn btn-default" style="width: 100%" ng-class="{\'btn-primary\': el.selected, \'btn-info btn-today\': el.isToday && !el.selected}" ng-click="$select(el.date)" ng-disabled="el.disabled"><span ng-class="{\'text-muted\': el.muted}" ng-bind="el.label"></span></button></td></tr></tbody><tfoot><tr><td colspan="{{ rows[0].length }}"><div class="btn-group btn-group-justified" role="group"><div class="btn-group" role="group" ng-if="$hasToday"><button type="button" class="btn btn-default today" ng-click="$setToday()" ng-disabled="isTodayDisabled"><strong style="text-transform: capitalize">Today</strong></button></div><div class="btn-group" role="group" ng-if="$hasClear"><button type="button" class="btn btn-default clear" ng-click="$clear()"><strong style="text-transform: capitalize">Clear</strong></button></div></div></td></tr></tfoot></table></div>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.dropdown').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.dropdown').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('dropdown/dropdown.tpl.html', '<ul tabindex="-1" class="dropdown-menu" role="menu"><li role="presentation" ng-class="{divider: item.divider}" ng-repeat="item in content"><a role="menuitem" tabindex="-1" ng-href="{{item.href}}" ng-if="!item.divider && item.href" target="{{item.target || \'\'}}" ng-bind="item.text"></a> <a role="menuitem" tabindex="-1" href="javascript:void(0)" ng-if="!item.divider && item.click" ng-click="$eval(item.click);$hide()" ng-bind="item.text"></a></li></ul>');
|
$templateCache.put('dropdown/dropdown.tpl.html', '<ul tabindex="-1" class="dropdown-menu" role="menu" ng-show="content && content.length"><li role="presentation" ng-class="{divider: item.divider, active: item.active}" ng-repeat="item in content"><a role="menuitem" tabindex="-1" ng-href="{{item.href}}" ng-if="!item.divider && item.href" target="{{item.target || \'\'}}" ng-bind="item.text"></a> <a role="menuitem" tabindex="-1" href="javascript:void(0)" ng-if="!item.divider && item.click" ng-click="$eval(item.click);$hide()" ng-bind="item.text"></a></li></ul>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.modal').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.modal').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('modal/modal.tpl.html', '<div class="modal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header" ng-show="title"><button type="button" class="close" aria-label="Close" ng-click="$hide()"><span aria-hidden="true">×</span></button><h4 class="modal-title" ng-bind="title"></h4></div><div class="modal-body" ng-bind="content"></div><div class="modal-footer"><button type="button" class="btn btn-default" ng-click="$hide()">Close</button></div></div></div></div>');
|
$templateCache.put('modal/modal.tpl.html', '<div class="modal" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header" ng-show="title"><button type="button" class="close" aria-label="Close" ng-click="$hide()"><span aria-hidden="true">×</span></button><h4 class="modal-title" ng-bind="title"></h4></div><div class="modal-body" ng-bind="content"></div><div class="modal-footer"><button type="button" class="btn btn-default" ng-click="$hide()">Close</button></div></div></div></div>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.popover').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.popover').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('popover/popover.tpl.html', '<div class="popover"><div class="arrow"></div><h3 class="popover-title" ng-bind="title" ng-show="title"></h3><div class="popover-content" ng-bind="content"></div></div>');
|
$templateCache.put('popover/popover.tpl.html', '<div class="popover" tabindex="-1"><div class="arrow"></div><h3 class="popover-title" ng-bind="title" ng-show="title"></h3><div class="popover-content" ng-bind="content"></div></div>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.select').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.select').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('select/select.tpl.html', '<ul tabindex="-1" class="select dropdown-menu" ng-show="$isVisible()" role="select"><li ng-if="$showAllNoneButtons"><div class="btn-group" style="margin-bottom: 5px; margin-left: 5px"><button type="button" class="btn btn-default btn-xs" ng-click="$selectAll()">{{$allText}}</button> <button type="button" class="btn btn-default btn-xs" ng-click="$selectNone()">{{$noneText}}</button></div></li><li role="presentation" ng-repeat="match in $matches" ng-class="{active: $isActive($index)}"><a style="cursor: default" role="menuitem" tabindex="-1" ng-click="$select($index, $event)"><i class="{{$iconCheckmark}} pull-right" ng-if="$isMultiple && $isActive($index)"></i> <span ng-bind="match.label"></span></a></li></ul>');
|
$templateCache.put('select/select.tpl.html', '<ul tabindex="-1" class="select dropdown-menu" ng-show="$isVisible()" role="select"><li ng-if="$showAllNoneButtons"><div class="btn-group" style="margin-bottom: 5px; margin-left: 5px"><button type="button" class="btn btn-default btn-xs" ng-click="$selectAll()">{{$allText}}</button> <button type="button" class="btn btn-default btn-xs" ng-click="$selectNone()">{{$noneText}}</button></div></li><li role="presentation" ng-repeat="match in $matches" ng-class="{active: $isActive($index)}"><a style="cursor: default" role="menuitem" tabindex="-1" ng-click="$select($index, $event)"><i class="{{$iconCheckmark}} pull-right" ng-if="$isMultiple && $isActive($index)"></i> <span ng-bind="match.label"></span></a></li></ul>');
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.timepicker').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.timepicker').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('timepicker/timepicker.tpl.html', '<div class="dropdown-menu timepicker" style="min-width: 0px;width: auto"><table height="100%"><thead><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 0)"><i class="{{ $iconUp }}"></i></button></th><th> </th><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 1)"><i class="{{ $iconUp }}"></i></button></th><th> </th><th><button ng-if="showSeconds" tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 2)"><i class="{{ $iconUp }}"></i></button></th></tr></thead><tbody><tr ng-repeat="(i, row) in rows"><td class="text-center"><button tabindex="-1" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[0].selected}" ng-click="$select(row[0].date, 0)" ng-disabled="row[0].disabled"><span ng-class="{\'text-muted\': row[0].muted}" ng-bind="row[0].label"></span></button></td><td><span ng-bind="i == midIndex ? timeSeparator : \' \'"></span></td><td class="text-center"><button tabindex="-1" ng-if="row[1].date" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[1].selected}" ng-click="$select(row[1].date, 1)" ng-disabled="row[1].disabled"><span ng-class="{\'text-muted\': row[1].muted}" ng-bind="row[1].label"></span></button></td><td><span ng-bind="i == midIndex ? timeSeparator : \' \'"></span></td><td class="text-center"><button tabindex="-1" ng-if="showSeconds && row[2].date" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[2].selected}" ng-click="$select(row[2].date, 2)" ng-disabled="row[2].disabled"><span ng-class="{\'text-muted\': row[2].muted}" ng-bind="row[2].label"></span></button></td><td ng-if="showAM"> </td><td ng-if="showAM"><button tabindex="-1" ng-show="i == midIndex - !isAM * 1" style="width: 100%" type="button" ng-class="{\'btn-primary\': !!isAM}" class="btn btn-default" ng-click="$switchMeridian()" ng-disabled="el.disabled">AM</button> <button tabindex="-1" ng-show="i == midIndex + 1 - !isAM * 1" style="width: 100%" type="button" ng-class="{\'btn-primary\': !isAM}" class="btn btn-default" ng-click="$switchMeridian()" ng-disabled="el.disabled">PM</button></td></tr></tbody><tfoot><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 0)"><i class="{{ $iconDown }}"></i></button></th><th> </th><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 1)"><i class="{{ $iconDown }}"></i></button></th><th> </th><th><button ng-if="showSeconds" tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 2)"><i class="{{ $iconDown }}"></i></button></th></tr></tfoot></table></div>');
|
$templateCache.put('timepicker/timepicker.tpl.html', '<div class="dropdown-menu timepicker" style="min-width: 0px;width: auto"><table height="100%"><thead><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 0)"><i class="{{ $iconUp }}"></i></button></th><th> </th><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 1)"><i class="{{ $iconUp }}"></i></button></th><th ng-if="showSeconds"> </th><th ng-if="showSeconds"><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(-1, 2)"><i class="{{ $iconUp }}"></i></button></th></tr></thead><tbody><tr ng-repeat="(i, row) in rows"><td class="text-center"><button tabindex="-1" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[0].selected}" ng-click="$select(row[0].date, 0)" ng-disabled="row[0].disabled"><span ng-class="{\'text-muted\': row[0].muted}" ng-bind="row[0].label"></span></button></td><td><span ng-bind="i == midIndex ? timeSeparator : \' \'"></span></td><td class="text-center"><button tabindex="-1" ng-if="row[1].date" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[1].selected}" ng-click="$select(row[1].date, 1)" ng-disabled="row[1].disabled"><span ng-class="{\'text-muted\': row[1].muted}" ng-bind="row[1].label"></span></button></td><td ng-if="showSeconds"><span ng-bind="i == midIndex ? timeSeparator : \' \'"></span></td><td ng-if="showSeconds" class="text-center"><button tabindex="-1" ng-if="row[2].date" style="width: 100%" type="button" class="btn btn-default" ng-class="{\'btn-primary\': row[2].selected}" ng-click="$select(row[2].date, 2)" ng-disabled="row[2].disabled"><span ng-class="{\'text-muted\': row[2].muted}" ng-bind="row[2].label"></span></button></td><td ng-if="showAM"> </td><td ng-if="showAM"><button tabindex="-1" ng-show="i == midIndex - !isAM * 1" style="width: 100%" type="button" ng-class="{\'btn-primary\': !!isAM}" class="btn btn-default" ng-click="$switchMeridian()" ng-disabled="el.disabled">AM</button> <button tabindex="-1" ng-show="i == midIndex + 1 - !isAM * 1" style="width: 100%" type="button" ng-class="{\'btn-primary\': !isAM}" class="btn btn-default" ng-click="$switchMeridian()" ng-disabled="el.disabled">PM</button></td></tr></tbody><tfoot><tr class="text-center"><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 0)"><i class="{{ $iconDown }}"></i></button></th><th> </th><th><button tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 1)"><i class="{{ $iconDown }}"></i></button></th><th ng-if="showSeconds"> </th><th ng-if="showSeconds"><button ng-if="showSeconds" tabindex="-1" type="button" class="btn btn-default pull-left" ng-click="$arrowAction(1, 2)"><i class="{{ $iconDown }}"></i></button></th></tr></tfoot></table></div>');
|
||||||
} ]);
|
|
||||||
angular.module('mgcrea.ngStrap.tab').run([ '$templateCache', function($templateCache) {
|
|
||||||
$templateCache.put('tab/tab.tpl.html', '<ul class="nav" ng-class="$navClass" role="tablist"><li role="presentation" ng-repeat="$pane in $panes track by $index" ng-class="[ $isActive($pane, $index) ? $activeClass : \'\', $pane.disabled ? \'disabled\' : \'\' ]"><a role="tab" data-toggle="tab" ng-click="!$pane.disabled && $setActive($pane.name || $index)" data-index="{{ $index }}" ng-bind-html="$pane.title" aria-controls="$pane.title"></a></li></ul><div ng-transclude class="tab-content"></div>');
|
|
||||||
} ]);
|
|
||||||
angular.module('mgcrea.ngStrap.typeahead').run([ '$templateCache', function($templateCache) {
|
|
||||||
$templateCache.put('typeahead/typeahead.tpl.html', '<ul tabindex="-1" class="typeahead dropdown-menu" ng-show="$isVisible()" role="select"><li role="presentation" ng-repeat="match in $matches" ng-class="{active: $index == $activeIndex}"><a role="menuitem" tabindex="-1" ng-click="$select($index, $event)" ng-bind="match.label"></a></li></ul>');
|
|
||||||
} ]);
|
} ]);
|
||||||
angular.module('mgcrea.ngStrap.tooltip').run([ '$templateCache', function($templateCache) {
|
angular.module('mgcrea.ngStrap.tooltip').run([ '$templateCache', function($templateCache) {
|
||||||
$templateCache.put('tooltip/tooltip.tpl.html', '<div class="tooltip in" ng-show="title"><div class="tooltip-arrow"></div><div class="tooltip-inner" ng-bind="title"></div></div>');
|
$templateCache.put('tooltip/tooltip.tpl.html', '<div class="tooltip in" ng-show="title"><div class="tooltip-arrow"></div><div class="tooltip-inner" ng-bind="title"></div></div>');
|
||||||
} ]);
|
} ]);
|
||||||
|
angular.module('mgcrea.ngStrap.tab').run([ '$templateCache', function($templateCache) {
|
||||||
|
$templateCache.put('tab/tab.tpl.html', '<ul class="nav" ng-class="$navClass" role="tablist"><li role="presentation" ng-repeat="$pane in $panes track by $index" ng-class="[ $isActive($pane, $index) ? $activeClass : \'\', $pane.disabled ? \'disabled\' : \'\' ]"><a role="tab" data-toggle="tab" ng-click="!$pane.disabled && $setActive($pane.name || $index)" data-index="{{ $index }}" ng-bind-html="$pane.title" aria-controls="$pane.title" href=""></a></li></ul><div ng-transclude class="tab-content"></div>');
|
||||||
|
} ]);
|
||||||
|
angular.module('mgcrea.ngStrap.typeahead').run([ '$templateCache', function($templateCache) {
|
||||||
|
$templateCache.put('typeahead/typeahead.tpl.html', '<ul tabindex="-1" class="typeahead dropdown-menu" ng-show="$isVisible()" role="select"><li role="presentation" ng-repeat="match in $matches" ng-class="{active: $index == $activeIndex}"><a role="menuitem" tabindex="-1" ng-click="$select($index, $event)" ng-bind="match.label"></a></li></ul>');
|
||||||
|
} ]);
|
||||||
})(window, document);
|
})(window, document);
|
||||||
+2
-2
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
+11
-11
File diff suppressed because one or more lines are too long
@@ -1,7 +1,9 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using CsvHelper.Configuration;
|
using CsvHelper.Configuration;
|
||||||
|
using CsvHelper.TypeConversion;
|
||||||
using InventoryTraker.Web.Models;
|
using InventoryTraker.Web.Models;
|
||||||
|
|
||||||
namespace InventoryTraker.Web.Utilities
|
namespace InventoryTraker.Web.Utilities
|
||||||
@@ -15,16 +17,28 @@ namespace InventoryTraker.Web.Utilities
|
|||||||
{
|
{
|
||||||
public InventoryAddFormMap()
|
public InventoryAddFormMap()
|
||||||
{
|
{
|
||||||
Map(m => m.Id).Name("Box ID");
|
Map(m => m.Id).Name("Box ID").TypeConverter<StringNullConverter>();
|
||||||
Map(m => m.ProgramName).Name("Program Name");
|
Map(m => m.ProgramName).Name("Program Name").TypeConverter<StringNullConverter>();
|
||||||
Map(m => m.ProgramSubtype).Name("Program Subtype");
|
Map(m => m.ProgramSubtype).Name("Program Subtype").TypeConverter<StringNullConverter>();
|
||||||
Map(m => m.Description);
|
Map(m => m.Description).TypeConverter<StringNullConverter>();
|
||||||
Map(m => m.ShredReadyDate).Name("Shread Ready Date");
|
Map(m => m.ShredReadyDate).Name("Shread Ready Date");
|
||||||
Map(m => m.AddedDate).Name("Added Date");
|
Map(m => m.AddedDate).Name("Added Date");
|
||||||
Map(m => m.Memo);
|
Map(m => m.Memo).TypeConverter<StringNullConverter>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class StringNullConverter : StringConverter
|
||||||
|
{
|
||||||
|
public override object ConvertFromString(TypeConverterOptions options, string text)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(text)) return null;
|
||||||
|
if (text.StartsWith("\"") && text.EndsWith("\""))
|
||||||
|
return base.ConvertFromString(options, Regex.Replace(text, @"^\""(.*)\""$", "$1"));
|
||||||
|
return base.ConvertFromString(options, text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public InventoryParser(FileSystemInfo excelFile)
|
public InventoryParser(FileSystemInfo excelFile)
|
||||||
{
|
{
|
||||||
_excelFile = excelFile;
|
_excelFile = excelFile;
|
||||||
@@ -33,7 +47,14 @@ namespace InventoryTraker.Web.Utilities
|
|||||||
public IList<InventoryAddForm> Parse()
|
public IList<InventoryAddForm> Parse()
|
||||||
{
|
{
|
||||||
var csvConfiguration =
|
var csvConfiguration =
|
||||||
new CsvConfiguration { IsHeaderCaseSensitive = false, IgnoreReadingExceptions = false};
|
new CsvConfiguration
|
||||||
|
{
|
||||||
|
IsHeaderCaseSensitive = false,
|
||||||
|
IgnoreReadingExceptions = false,
|
||||||
|
TrimFields = true,
|
||||||
|
SkipEmptyRecords = true,
|
||||||
|
ShouldSkipRecord = strings => strings.Take(7).All(string.IsNullOrEmpty)
|
||||||
|
};
|
||||||
csvConfiguration.RegisterClassMap<InventoryAddFormMap>();
|
csvConfiguration.RegisterClassMap<InventoryAddFormMap>();
|
||||||
using (var reader = ExcelParserBase.OpenExcel(_excelFile, csvConfiguration))
|
using (var reader = ExcelParserBase.OpenExcel(_excelFile, csvConfiguration))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace InventoryTraker.Web.Utilities
|
|||||||
var worksheet = workbook.AddWorksheet("Current Inventory");
|
var worksheet = workbook.AddWorksheet("Current Inventory");
|
||||||
using (var writer = new CsvWriter(new ExcelSerializer(worksheet)))
|
using (var writer = new CsvWriter(new ExcelSerializer(worksheet)))
|
||||||
{
|
{
|
||||||
|
writer.Configuration.TrimFields = true;
|
||||||
writer.Configuration.RegisterClassMap(new InventoryViewModelMap());
|
writer.Configuration.RegisterClassMap(new InventoryViewModelMap());
|
||||||
writer.WriteRecords(items.OrderBy(i => i.Id));
|
writer.WriteRecords(items.OrderBy(i => i.Id));
|
||||||
workbook.SaveAs(stream);
|
workbook.SaveAs(stream);
|
||||||
|
|||||||
@@ -34,8 +34,7 @@
|
|||||||
<!-- /#page-wrapper -->
|
<!-- /#page-wrapper -->
|
||||||
</div>
|
</div>
|
||||||
<!-- /#wrapper -->
|
<!-- /#wrapper -->
|
||||||
@Scripts.Render("~/js/all-javascript")
|
@Scripts.Render("~/js/all-javascript")@RenderSection("Scripts", false)
|
||||||
@RenderSection("Scripts", false)
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||||
<!-- Brand and toggle get grouped for better mobile display -->
|
<!-- Brand and toggle get grouped for better mobile display -->
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<a class="navbar-brand" href="~/"><i class="fa fa-fw fa-cubes"></i> Inventory Traker</a>
|
<a class="navbar-brand" href="~/"><i class="fa fa-fw fa-cubes"></i> Inventory Traker (Box)</a>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
@@ -17,19 +17,23 @@
|
|||||||
vm.uploading = false;
|
vm.uploading = false;
|
||||||
vm.file = "";
|
vm.file = "";
|
||||||
|
|
||||||
vm.statusMessage = "Import inventory items below.";
|
vm.statusMessage = "Select your inventory excel document to import.";
|
||||||
vm.errorMessages = [];
|
vm.errorMessages = [];
|
||||||
|
|
||||||
// upload later on form submit or something similar
|
// upload later on form submit or something similar
|
||||||
vm.submit = function () {
|
vm.submit = function () {
|
||||||
|
console.log("vm.submit");
|
||||||
if (vm.form.file.$valid && vm.file) {
|
if (vm.form.file.$valid && vm.file) {
|
||||||
|
console.log("if (vm.form.file.$valid && vm.file)");
|
||||||
vm.upload(vm.file);
|
vm.upload(vm.file);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// upload on file select or drop
|
// upload on file select or drop
|
||||||
vm.upload = function(file) {
|
vm.upload = function(file) {
|
||||||
|
console.log("vm.upload");
|
||||||
vm.uploading = true;
|
vm.uploading = true;
|
||||||
|
angular.copy([], vm.errorMessages);
|
||||||
inventorySvc
|
inventorySvc
|
||||||
.importFile(file)
|
.importFile(file)
|
||||||
.then(function(resp) {
|
.then(function(resp) {
|
||||||
|
|||||||
@@ -97,7 +97,10 @@
|
|||||||
return Upload.upload({
|
return Upload.upload({
|
||||||
url: "/api/Import",
|
url: "/api/Import",
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: { file: file}
|
data: { file: file }
|
||||||
|
})
|
||||||
|
.success(function() {
|
||||||
|
loadInventories();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,15 +12,21 @@
|
|||||||
<status-message message="vm.statusMessage" ng-hide="vm.errorMessages.length"></status-message>
|
<status-message message="vm.statusMessage" ng-hide="vm.errorMessages.length"></status-message>
|
||||||
<error-list errors="vm.errorMessages"></error-list>
|
<error-list errors="vm.errorMessages"></error-list>
|
||||||
|
|
||||||
|
<p>Download the import template: <a href="/Content/InventoryTraker_ImportTemplate.xlsx">Excel template</a></p>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
<div class="btn btn-default"
|
<div class="btn btn-default"
|
||||||
ngf-select
|
ngf-select
|
||||||
ng-model="vm.file"
|
ng-model="vm.file"
|
||||||
name="file"
|
name="file"
|
||||||
ngf-pattern="'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'"
|
ngf-pattern="'.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'"
|
||||||
ngf-accept="'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'">Select</div>
|
ngf-accept="'.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'">Select</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
<div>{{vm.file.name}}</div>
|
<div>{{vm.file.name}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
<package id="angular-file-upload" version="12.2.12" targetFramework="net451" />
|
<package id="angular-file-upload" version="12.2.12" targetFramework="net451" />
|
||||||
<package id="AngularJS.Animate" version="1.5.8" targetFramework="net451" />
|
<package id="AngularJS.Animate" version="1.5.8" targetFramework="net451" />
|
||||||
<package id="AngularJS.Core" version="1.5.8" targetFramework="net451" />
|
<package id="AngularJS.Core" version="1.5.8" targetFramework="net451" />
|
||||||
<package id="angular-strap" version="2.3.1" targetFramework="net451" />
|
<package id="angular-strap" version="2.3.9" targetFramework="net451" />
|
||||||
<package id="angular-ui-grid" version="3.1.1" targetFramework="net451" />
|
<package id="angular-ui-grid" version="3.2.9" targetFramework="net451" />
|
||||||
<package id="Antlr" version="3.5.0.2" targetFramework="net451" />
|
<package id="Antlr" version="3.5.0.2" targetFramework="net451" />
|
||||||
<package id="AutoMapper" version="5.1.1" targetFramework="net451" />
|
<package id="AutoMapper" version="5.1.1" targetFramework="net451" />
|
||||||
<package id="bootstrap" version="3.3.7" targetFramework="net451" />
|
<package id="bootstrap" version="3.3.7" targetFramework="net451" />
|
||||||
@@ -39,12 +39,12 @@
|
|||||||
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
|
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
||||||
<package id="Newtonsoft.Json" version="6.0.7" targetFramework="net451" />
|
<package id="Newtonsoft.Json" version="6.0.7" targetFramework="net451" />
|
||||||
<package id="NLog" version="4.3.8" targetFramework="net451" />
|
<package id="NLog" version="4.3.10" targetFramework="net451" />
|
||||||
<package id="NLog.Config" version="4.3.8" targetFramework="net451" />
|
<package id="NLog.Config" version="4.3.10" targetFramework="net451" />
|
||||||
<package id="NLog.Schema" version="4.3.8" targetFramework="net451" />
|
<package id="NLog.Schema" version="4.3.10" targetFramework="net451" />
|
||||||
<package id="NLog.Web" version="4.2.1" targetFramework="net451" />
|
<package id="NLog.Web" version="4.2.1" targetFramework="net451" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net451" />
|
<package id="Owin" version="1.0" targetFramework="net451" />
|
||||||
<package id="StructureMap" version="4.4.0" targetFramework="net451" />
|
<package id="StructureMap" version="4.4.1" targetFramework="net451" />
|
||||||
<package id="WebActivatorEx" version="2.1.0" targetFramework="net451" />
|
<package id="WebActivatorEx" version="2.2.0" targetFramework="net451" />
|
||||||
<package id="WebGrease" version="1.6.0" targetFramework="net451" />
|
<package id="WebGrease" version="1.6.0" targetFramework="net451" />
|
||||||
</packages>
|
</packages>
|
||||||
Reference in New Issue
Block a user