Commit Graph

233 Commits

Author SHA1 Message Date
RaidMax
8539223a15 add server categorization feature (issue #77) 2020-04-13 20:26:13 -05:00
RaidMax
f430dab3a7 allow toggle of automated penalties display on the webfront
issue #112
fix small issue with script plugin loading
2020-02-12 13:13:59 -06:00
RaidMax
c3c21a7749 refactor a good bit of stuff for better dependency injection
fix regular expression for T6 log parsing
2020-02-11 16:44:06 -06:00
RaidMax
06cdaef8a4 allow Kekno to run with sv_running not returning anything :upside_down:
make sure script plugins output correct errors instead of being swallowed
prevent webfront error when webfront tab is left open on a server no longer being modified
2020-02-01 12:27:14 -06:00
RaidMax
318a23ae5b Finish implementation of configuable command permissions 2020-01-31 20:15:07 -06:00
RaidMax
697a752be0 make the version name match the actual name for FTP deployment
fix rare issue with summing session scores
copy font to expected wwwroot dir in debug mode so we get pretty icons when developing
upgrade some packages

pretty much reworked the entire server web config to support better validation and stuff.. not really a small fix

finish web configuration changes (I think)

finish up configuration changes and update shared library nuget
2020-01-20 10:23:23 -06:00
RaidMax
902cd9953e finish help layout and show only on permission level 2019-12-29 11:32:36 -06:00
RaidMax
344c3613b8 add help page to layout 2019-12-28 20:44:39 -06:00
RaidMax
82381457df fix duplicate aliases from color codes (AB#5) 2019-12-27 14:42:17 -06:00
RaidMax
b251ef00c4 potential fix for a invalid operation exception on client update
change client library cdn provider as cdnjs seems broken at the moment
2019-12-27 12:10:20 -06:00
RaidMax
3defd3f486 move all the deployment setup into 2.4 pr (#85)
* don't run build commands in release

* fix test file

* Set up CI with Azure Pipelines

[skip ci]

* Include fonts and fix automessage hidden command

* more project changes

* migration from bower to libman

* more lib man changes

* project update for sneaky commands

* add missing canvas.js dep
update projects not to have stupid extra dlls

include in previous

* update pipeline file

* update post publish script and pipeline definition

* fix broken yaml

* move encoding conversion to seperate script

* remove extra uneeded rank icons
remove garbage language files being created
remove frontend lib when done

* fix publish script path

* grab localizations through powershell

* fix broken batch 🤷

* actually fixed

* only include runtime compilation in debug mode for webfront

* don't deploy un minified css
use full jquery version

* add step to download the scss for open iconic
change the font path

* update mkdir for iconic path

* don't include old iconic css

* correct font path for real now

* copy script plugins

* lots of changes for deployment

* build the projects

* use projectdir instead of solution dir

* nerf script commands plugin
fix live radar left over command

* actually kill script command post build

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* fix the font file copy (I think)

* maybe fix delete folder issue

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines
2019-12-02 15:52:36 -06:00
RaidMax
d1886fdd20 Fix small issue with query optimization missing a FK set
Fix accidentally rename of controller method
2019-11-18 08:08:09 -06:00
RaidMax
161b27e2f2 fix alias command sending message to origin instead of target
(hopefully) fix an issue with banned players causing exception if they create events before they are kicked out
fix issues with sometimes wrong error message for timeout
show most recent IP address at top of alias list
optimization to some sql queries
2019-11-15 14:50:20 -06:00
RaidMax
cb9119ac58 add more informative 404 errors 2019-10-23 13:35:20 -05:00
RaidMax
5073ec39bf Merge branch '2.3' into 2.4-pr 2019-09-27 15:51:57 -05:00
RaidMax
3af9f55bf1 Fix ordering of admins by level, then name 2019-09-27 15:49:03 -05:00
RaidMax
f7cbf73c44 Merge branch '2.3' into 2.4-pr 2019-09-26 16:11:58 -05:00
RaidMax
fe6fe39800 don't group admin list by alias id 2019-09-14 17:22:47 -05:00
RaidMax
c18be20899 add snap metric to anticheat
update various small code bits
2019-09-09 17:40:04 -05:00
RaidMax
2d9b6b8394 prevent privileged client from being flagged when reported
fix issue with enum parsing on finding client
2019-08-30 13:31:23 -05:00
RaidMax
db3a20c60b merge from 2.3 2019-08-28 13:47:38 -05:00
RaidMax
27a05ce6db update api controller to support actually filtering events by server
fix up stats manager async semaphore wait
add new shared guids
fix regex parsing with empty name
2019-08-28 13:45:53 -05:00
RaidMax
08d250156c fix login issue
strip colors for logging
feature implementation for issue #76
2019-08-04 20:38:55 -05:00
RaidMax
75378400e7 Add flag icon on client profile 2019-08-04 17:06:07 -05:00
RaidMax
bb42861a92 finish color code support (I think) 2019-08-02 18:04:34 -05:00
RaidMax
9f3f344daa add a bit more logged for when live radar fail to update
update killhouse map offsets (it's still wrong though)
2019-07-29 12:08:25 -05:00
RaidMax
92e71ae2f4 finish custom accent color feature 2019-07-27 15:23:45 -05:00
RaidMax
3b9b99a07e start work to allow custom accent colors 2019-07-27 08:18:49 -05:00
RaidMax
9665d2d457 fix issue with duplicate js function names for loader
hide flagged status of users on webfront unless logged in (will still show the level if they report someone because cba to update the view component w/out auth status)
add terminal to the radar maps
2019-07-24 10:36:37 -05:00
RaidMax
d73d68d9f4 increase master history to 7 day, up from 1 day 2019-07-21 17:14:44 -05:00
RaidMax
f42a66e756 add most recent players dropdown option to webfront
remove unneeded compiled bootstrap file
2019-07-16 15:27:19 -05:00
RaidMax
fc43e47874 move some stuff for live radar for compiled views
add chat icon to send messages to servers on server view
2019-07-13 20:45:25 -05:00
RaidMax
0e9fd144f1 lots more live radar updates 2019-07-08 20:21:18 -05:00
RaidMax
16d2ec82b8 make sure flags are excluded from active penalties on player profile
modify how flags "expire"
2019-06-25 18:01:47 -05:00
RaidMax
163523d586 convert GetPort to auto property
don't force disconnect player if someone is "in" their spot
increase gamelogserver max time before purge
2019-05-31 10:17:01 -05:00
RaidMax
95d64df321 combined Penalty and EFPenalty
moved some classes around
2019-05-29 16:55:35 -05:00
RaidMax
0b0290a871 fix issue with restarting via web
replace some hard coded string in javascript with localization
break things to fix things
2019-05-17 09:02:09 -05:00
RaidMax
5f588bb0f7 clean up the profanity determent plugin by using the Get/Set Additional properties
cleaned up the base event parser to not need the server object to generate the event
Hopefully prevent anticheat from freaking out when database connection is lost
2019-05-13 10:36:11 -05:00
RaidMax
1dc0f5a240 fix aggregate issue with KDR on global top stats
refactor some of the main application code to have a cleaner code flow
add enviroment flag to opt out of .net core telemetry in start script
fixed "a moment" missing the "ago"
fixed case sensitive client searches on postgresql
clean up command code flow
Add missing map "mp_cairo" to default settings
2019-05-08 20:34:17 -05:00
RaidMax
db11a5f480 upgrade packages, and delete a few unneeded ones
fix search for client resulting in invalid GUID parse
simplify output from dvar not being found
make sure to prompt if not all servers could be reached
2019-05-03 20:13:51 -05:00
RaidMax
b51af7ca9a fix penalty list javascript loading duplicates
make bad GUID parse throw an exception so we don't have a client connect with GUID of 0
no longer print out ac debug messages
fix small issue of trying to parse empty chat messages
fix issue with set level on accounts with multi guid, same IP
2019-05-02 22:33:38 -05:00
RaidMax
599a14b646 optimize the find client query 2019-04-25 21:05:35 -05:00
RaidMax
934fead5c2 fix issue with login 2019-04-17 17:50:53 -05:00
RaidMax
02cad10d77 prevent starting if no servers can be connected to
fix nextmap issue on t6
fix bug with kicking client for profane name
2019-04-16 11:32:42 -05:00
RaidMax
b134cd4728 fix gravatars not showing
fix web config not saving Uri
fix issue with token login
2019-04-14 10:55:05 -05:00
RaidMax
b9c4a1b5f6 finish initial implementing application configuration editing through webfront
todo: server configuration
2019-04-12 22:25:18 -05:00
RaidMax
f0fd4c66e9 add configuration option to force local translations
fix silly bug with no being able to claim ownership
continue work on configuration via webfront
2019-04-11 20:43:05 -05:00
RaidMax
dd82a5e3fa start add of join button (still need to grab the external IP address)
finish up fixes for alias stuff
2019-04-07 20:14:59 -05:00
RaidMax
8667532d24 remove create proxy as it's not even used anymore
more fixes for alias stuff
hopefully fix rare bug where client activity cshtml loop goes oob
add URLProtocol format to event parsers to allow connecting through webfront
2019-04-06 21:48:49 -05:00
RaidMax
6f80f1edbb refine webfront pages
finish refactor of penalty information/profile
optimize pull penalty query
start impl of quick message mapping
2019-03-31 19:56:31 -05:00
RaidMax
9393b35c39 start implementation of configuration via webfront 2019-03-30 22:04:15 -05:00
RaidMax
8521df85f5 finish initial rework of profile page with meta pagination 2019-03-29 21:56:56 -05:00
RaidMax
7b8126d57e continue rework of profile
start moving profile info out of javascript into componentview
rework meta data to include count and offset
2019-03-27 19:40:26 -05:00
RaidMax
11e3235d5d fix issue with not loading last connection for admins
continue work on fixing profile
2019-03-25 21:12:16 -05:00
RaidMax
cae6d8389e fix bug with privileged users not always showing the most recent profile
temporary bans are now applied to all linked accounts instead of a per-guid basis
rework set level flow
add guid and ip address (if logged in) to public async endpoint
2019-03-24 21:34:20 -05:00
RaidMax
c21bf2ebf1 continue working on per servver topstats 2019-02-26 21:25:27 -06:00
RaidMax
4b1f44cc2a re-enable login to webfront with password
update cookie to last 3 months
add configuration option to limit # of rss feed items
prevent database tracking of bots if ignore bots requested
add last map and last server played to profile
2019-02-22 19:06:51 -06:00
RaidMax
74cdf8e885 Fix bug introduced with auto messages 2019-02-19 19:39:09 -06:00
RaidMax
9c4d23f0b4 enhancement for issue #63 2019-02-17 18:48:40 -06:00
RaidMax
40f1697c97 fix damage event not including log line
complete initiall implementation for "2FA"
issue #52
issue #66
2019-02-16 15:04:40 -06:00
RaidMax
5e36bf4316 begin implementation of token authentication
replacing password authentication ingame
precompile views for webfront
issue #66
issue #52
2019-02-15 22:19:59 -06:00
RaidMax
7a6dccc26a Fix bug with webfront spamming issues when running
Remove IW5 parser
Begin implementation of dynamic parsers
2019-01-26 20:33:37 -06:00
RaidMax
08c883e0ff fix duplicate bot welcomes
fix prompt bool incorrect default value
rename GameEvent.Remote to GameEvent.IsRemote
include NetworkId in webfront claims
fix non descript error message appearing when something fails and localization is not initialized
2019-01-03 14:39:22 -06:00
RaidMax
5f4171ccf4 hopefulyl fix aliasing issue
bans are applied to an account if the accounts are linked but penallty on a different accounts
2018-12-29 12:43:40 -06:00
RaidMax
4522992c0e fix remote commands
user clientkick_for_reason for T6 parsers
small bug fixes
2018-12-01 12:17:53 -06:00
RaidMax
9d6cbee69c update stats
change server id
fIx change log server complaining when empty read
2018-11-27 18:31:48 -06:00
RaidMax
abf0609e2e fix only one administrator showing on admins page
fix profanity determent not applying penalties.
2018-11-25 21:11:55 -06:00
RaidMax
5ac8a55c72 fixes for new polling setup
update database model for alias (nullable ip)
heartbeats now send ip to master server
2018-11-25 20:00:36 -06:00
RaidMax
ed83c4c011 started work on getting the restart functionality in the gamelogserver
fix bug with unbanned players still showing as banned via lock icon
move player based stuff into client class
finally renamed Player to EFClient via partial class
don't try to run this build because it's in between stages
2018-11-05 21:01:29 -06:00
RaidMax
1779bf821d more work on skill based team balance.
added on player disconnect to custom callbacks
2018-10-25 08:14:39 -05:00
RaidMax
d50e6c8030 change penalty expiration datetime to null for perm bans
add tempban max time
allow searching for GUID
stats returns ranking as well
fix for promotion/demotion text
2018-10-15 19:51:04 -05:00
RaidMax
a58726d872 add gsc api controller for communicating with gsc
add ignore bots option
fix first localization message not working
2018-10-13 18:51:07 -05:00
RaidMax
b289917319 update project to .net core 2.1.5
got rid of "threadsafe" stats service in stats plugin
2018-10-07 21:34:30 -05:00
RaidMax
de902a58ac write individual server log files and main log file seperately
log writing is thread safe now
2018-10-06 11:47:14 -05:00
RaidMax
f4ac815d07 hopefully finished with RCon changes.
added more tests.
fixed issues from event changes (there's most definitely still issues related to that)
2018-10-02 12:39:08 -05:00
RaidMax
4a46abc46d add index to time sent in EFCLientMessage, so we can retrieve faster in context view
set the maximum height of the
add link to profile on client chat
move change history into a seperate service
move around AC penalty processing
2018-09-16 15:34:16 -05:00
RaidMax
7c708f06f3 adds two day ban to drop down on for issue #47 remove IW5 (Pluto) from supported client until it's rewritten 2018-09-13 20:00:41 -05:00
RaidMax
98adfb12d2 update map names for IW4 (issue #48)
only check shared GUID for IW4
optimized get privileged clients query
fine-tuned the version printout to include revision numbers
2018-09-13 14:34:42 -05:00
RaidMax
b9086fd145 fix parsing view angles in exponential form
update RestEase  and CodePages dependencies
optimized the find by name query
add index to name
2018-09-11 14:28:37 -05:00
RaidMax
ba5b1e19a6 update readme
add vision average to client stats
other stuff
2018-09-07 22:29:42 -05:00
RaidMax
385879618d add game log server 2018-09-06 13:25:58 -05:00
RaidMax
e77ef69ee8 Added additional properties method to allow easier extension to client properties
updated VPN plugin to use WebClient
message is sent to client trying to execute commands before they are authenticated
fixed rare issue with ToAdmins failing
record bullet distance fraction for client kills (_customcallbacks)
change client level/permissions through webfront
ability to tempban through webfront
2018-09-02 16:59:27 -05:00
RaidMax
46bdc2ac33 moved event API stuff around
finally fixed threading issue (which actually had to do with IW4x log outputs being out of sync (not an issue with my code). What a lot of headache over something that wasn't my fault.
2018-08-30 20:53:00 -05:00
RaidMax
a0fafe5797 cleaned up some namespace discrepancies
fixed the coloring for custom groups translation
add reserved slots
add webhook project to show notifications in discord
2018-08-07 13:43:09 -05:00
RaidMax
bbade07646 add localized level names
intellisense suggestion junk
2018-08-03 21:11:58 -05:00
RaidMax
d0be08629d add page list to manager so we can inject pages into the layout view 2018-08-03 17:10:20 -05:00
RaidMax
9d00d5a16a removed event controller, and added status to api controller
get time passed returns weeks after 90 days
and months after 365
2018-08-02 20:52:35 -05:00
RaidMax
454238a192 finer version numbers work correctly.
fix bug with level being reset.
add {{ADMINS}} to message tokens
modified offset threshold calculation
2018-06-26 20:17:24 -05:00
RaidMax
e7c7145da1 Show time passed since ban instead of "forever"
reworked event api to include all events (sans unknown)
2018-06-16 21:11:25 -05:00
RaidMax
e60f612f95 [application] added chat context to profile page
[iw4script] reworked balance to balance based on performance rating
[stats] log penalty context to database
2018-06-05 16:31:36 -05:00
RaidMax
e3dba96d72 [sharedlibrary] add client meta
[application] add gravatar command
2018-06-01 23:48:10 -05:00
RaidMax
bf68e5672f Add automated ban offense for anti-cheat
add EFClientStatHistory and EFClientAverageStatHistory for tracking change of stats over time
2018-05-30 20:50:20 -05:00
RaidMax
d9a601328c stats tweaked to scale SPM based on team size
invalid client id results in 404 rather than exception page
performance based on traditional elo rating
fixed @ (broadcast commands)
added reports to penalty list and profile
2018-05-24 14:48:57 -05:00
RaidMax
699c19cd4b adding Cod4 support (for steam GUID is truncated to 16 characters)
exit properly whoops
add all linked accounts to drop down
consolidate linked admin accounts to the most recently seen one
limited some waits to 5s to hopefully prevent a rare thread lock
2018-05-14 12:55:10 -05:00
RaidMax
e964013700 lots of fixes :) 2018-05-10 00:34:29 -05:00
RaidMax
9ff7f39e8d SPM fix for negative/teamdamage
added localization as downloaded from the Master API
interupted network communication no longer treated as unknown exception
topstats prints the right message if no one qualifies
angle adjustments
move unflag to seperate command
2018-05-07 23:58:46 -05:00
RaidMax
a54ea3913d add translation for webfront
discord link has been genericized to social link
2018-05-05 17:52:04 -05:00
RaidMax
e8dff01c41 re-added the kill server command (can only be used if run as admin)
less warns when using a disposed socket
topstats added to tokens as {{TOPSTATS}}
fixed topstats reporting for only a single server
added fix to iw4 regex for negative score
tokens now support multiple lines (using Environment.NewLine to separate)
localization includes culture again
2018-05-05 15:36:26 -05:00
RaidMax
3092a529e9 add penalties for angle info
queue Tell/Say to prevent plugins from throwing exception when server is offlline
fixed CPU usage issue over time
sort penalties by type on webfront
2018-05-03 23:22:10 -05:00
RaidMax
f442f251f6 more stat SPM fixes
prevent null say event from executing when exiting
adjusted rcon and socket timeout
fixed bug with login/setpassword not working after claiming ownership
2018-05-03 00:25:49 -05:00
RaidMax
3a463be7f8 Profanity deterrent kick players with offensive names
status parsing with Regex in IW4 is much cleaner
fixed tempban not always kicking
made plugin event tasks parallel
2018-04-29 15:44:04 -05:00
RaidMax
35e7f57156 fixed up IW5 parser with new event system
changed login alias to li (duplicate)
fixed crashing bug in generic repo
fixed anonymous name in access to web console
2018-04-28 20:11:13 -05:00
RaidMax
8071fb37bc SPM and skill is rounded in profile now
fixed web console not waiting for reponse
fixed password not saving over time
web users level update properly now when promoted/demoted
2018-04-28 16:39:45 -05:00
RaidMax
b6c979beba fixed base controller Manager being null
fixed log reading duplicates with new event processing
added portuguese translation
2018-04-26 15:26:03 -05:00
RaidMax
99390f1f35 fixed issue with status response erroring when incorrect length
view angle vector parse fail is now a handled exception
change local host check to byte array to make it faster than comparing string
kick command now requires moderator level or higher
tempban now requires administrator level or higher
hopefully fixed negative SPM bug
pipelined the events and consolidated them to run through GameEventHandler
uniform console colors
2018-04-26 01:13:04 -05:00
RaidMax
9aea9e1c02 Made webfront optional for decreased ram usage
initialization should be better asynced
clean up publish folder after publish
added chevron hover icon for loading more penalties
added T6M maps to config
2018-04-16 15:31:14 -05:00
RaidMax
2964fd71b2 fixed ping bug showing origin ping instead of target
event parser has GetGameDir
made parsers choosen more dynamically
profile shows online/offline status of client
2018-04-14 23:26:27 -05:00
RaidMax
cd2bbfb3d4 Added login plugin 2018-04-13 23:51:38 -05:00
RaidMax
4caa4655e2 abstracting rcon parsing and event parsing
changed Event to GameEvent
finally fixed the stats NaN
check ip for bans
consolidated console, profile, and logout into dropdown
make sure game is iw4 before using :^ in say
fix pm not showing from name if in web console
show time left of temban on profile
2018-04-13 01:32:30 -05:00
RaidMax
c2a3cf0d15 fixed minification and bundling
template tweaks
2018-04-09 22:33:42 -05:00
RaidMax
d233b8cb50 migrate welcome plugin to .NET Core 2.0
more fixes to stats database for migration
last connection set when client connects and disconnects
update GeoIP datatbase
2018-04-09 14:17:10 -05:00
RaidMax
6d5c368954 Seperated the application back into a seperate project
webfront is just a library now
2018-04-08 13:48:40 -05:00
RaidMax
fdde7dfdba migrating to .NET Core 2.0 2018-04-08 01:44:42 -05:00
RaidMax
3c3adb062e don't migrate context on MySql 2018-04-07 16:47:21 -05:00
RaidMax
b6f490be9c fix accidental improper name for login ClientId
added label field to InputInfo
added logout button
revert graph color
2018-04-05 17:50:04 -05:00
RaidMax
6d8d021b16 auth cookie expires after 30 days
only check hit offset when distance > 3 meters
fix null reference on unauthorized user
fixed stats not showing on profile if anticheat disabled
server client history turns red server is unresponsive
2018-04-04 23:38:45 -05:00
RaidMax
c0865b82a0 RCon error handling is clearer
Show chat on mobile view of server overview
basic authentication
switched to extreme-ip-lookup for ip lookups (SSL)
2018-04-04 14:38:34 -05:00
RaidMax
a0c1d9b1bc changed the player history to reflect correct timezone
added result count to find clients
only show unique aliases on profile page
some rcon socket changes
2018-04-02 22:11:19 -05:00
RaidMax
2952e307b2 tweaked rcon throttle rate/made async
increased cutoff for server overview messages
dont print message if timed out
2018-04-02 00:25:06 -05:00
RaidMax
9db8ad80ef fixed bug with lifetime hit ratio causing erroneous ban
ip lookup on profile shows error if failed
truncate chat messages over 50 characters
removed html raw on client messages :c
show client rank colors on server overview if authorized
break long messages on profile page
prevent masked status showing up to non privileged users in webfront
2018-03-28 22:01:09 -05:00
RaidMax
233aeeb12f added moment for parsing dates in profile timeline
fixed bug of duplicate penalties
fixed showing timeline date for non events
refresh player count on server overview
fix refresh privileged users on map load
fix 1h showing on tempban if manually specified
2018-03-27 19:27:01 -05:00
RaidMax
a07ce112b0 ban/unban buttons added to profile
several css tweaks
changed administratorIPs to PrivilegedClients
added time step references to profile page
2018-03-26 23:54:20 -05:00
RaidMax
979b1f2310 fixed initialization error when no map set exists in config
fixed discord link showing when no invite specified
OpenGraph image set to absolute url
more changes to killcallback and logging
fixed some angle conversion stuff
2018-03-25 23:51:25 -05:00
RaidMax
88f31bc78c removed reload command
prevent control characters from being used in name
added MOD_HEAD_SHOT to hit location increment
css fix for alias dropdown
testing view angle analysis
2018-03-22 13:50:09 -05:00
RaidMax
f7b41537d7 fixed issue with not escaping regex for validating commands 2018-03-18 21:25:11 -05:00
RaidMax
c1a1d65261 cleaned up configuration files to use appsettings 2018-03-14 00:36:25 -05:00
RaidMax
e974de8e63 vpn check updates, fixed some issues,
"masked" status is now sensitive
discord link in webfront if configured
2018-03-13 16:30:22 -05:00
RaidMax
5c0aa7d14f changes and vpn checking 2018-03-09 02:01:12 -06:00
RaidMax
1adf3ceb3c the meats 2018-03-06 01:22:19 -06:00
RaidMax
442569b339 fixed !setlevel
fixed previous alias displayed on welcome announcement
fixed duplicate events on profile page
tweaked display of non event meta on mobile
you can view other's stats from the webconsole
penalties show privileged client's level
don't have commands to chat history
2018-02-23 23:56:03 -06:00
RaidMax
9ee39b5260 added console page back 2018-02-23 01:06:13 -06:00
RaidMax
20994f693c web front design tweaks and favicon added 2018-02-22 00:06:21 -06:00
RaidMax
3f82ecacfc migrated to ASP.Net Core 2018-02-21 19:29:23 -06:00