So, I installed a new Samsung SSD M.3 drive and found it to be much, much slower than it’s predecessor. After much sturm, drang and gnashing of teeth I stumbled across the solution. The key is in the power requirements on all things – basically just change the power profile to “Performance” in the settings and then confirm that PCI-E is set to 100%. After that it is a night and day difference.
How to post objects directly to web api from C#
As I’ve looked this up three times now I should put the code directly on the blog. Happily Microsoft has done a lot of the plumbing work for you.
You have a Web API controller with an action that looks like this
[System.Web.Http.Route("Ajax/v1.1/PostItemBatch")]
[OutputCache(NoStore = true, Duration = 0)]
[System.Web.Http.HttpPostAttribute]
public bool PostItemBatch(List postItems)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
foreach (PostItem postItem in postItems)
{
db.PostItems.Add(postItem);
}
db.SaveChanges();
return true;
}
}
Then you can post data to it by the following
List PostItems = new List();
for (int i = 0; i < 11; i++)
{
PostItems.Add(new PostItem(true));
}
HttpClient client = new HttpClient();
HttpResponseMessage response = client.PostAsJsonAsync("http://localhost:56168/Ajax/v1.1/PostPostItemBatch", PostItems).Result;
var test = response.IsSuccessStatusCode;
And there you go!
15
Oct 18
Written By Steve French
How to fix problems with jquery data tables and a list of objects from ASP.net Web API
The main problem is that data tables does not expect a list of objects, instead it wants a differently formatted json object, something like
data: {“Property”: Value}
etc
Instead it’s getting a pure list, like this
[
{“Name”:”Value},
{“Name”:”Value},
{“Name”:”Value},
{“Name”:”Value},
{“Name”:”Value},
]
Solution – list out the values in the columns property of the data table, like this
$(document).ready(function () {
$(‘#example’).dataTable({
“deferRender”: true,
“processing”: true,
“iDisplayLength”: 25,
“ajax”: {
“url”: “https://domain.com/Ajax/v1.1/ListTypes”,
“dataSrc”: “”
},
“columns”: [
{ “data”: “Name” },
{ “data”: “OtherColumn” }
]
});
});
And you’re done!
10
Oct 18
Written By Steve French
How to fix problems with conflicting version of Newtonsoft.Json in your visual studio projects
The root problem seems to be in the version of Newtonsoft.json – if you set it to version 11.0.1 all of the problems magically disappear
24
Aug 18
Written By Steve French
How to fix the entity framework problem with System.Data.Entity.Migrations.Utilities.DomainDispatcher not found.
After much searching and repair, I could not find a good way – the error does seem to be documented on Github – so at least there’s that.
My solution to the problem, after trying several other ways, was to downgrade Visual Studio as described here – note – you really do have to run all of the cleanup tools.
UPDATE ON 09/21/2018 – this fixes the problem – thank you Stack Overflow User.
Update on 05/02/2019 – this affects Visual Studio 2019 as well – one thing to note, this is the path to the new file
C:\Users\WarHorse\AppData\Local\Microsoft\VisualStudio\16.0_181cd91f
Copy and paste this
<dependentAssembly>
<assemblyIdentity name=”System.Management.Automation” publicKeyToken=”31bf3856ad364e35″ />
<bindingRedirect oldVersion=”0.0.0.0-3.0.0.0″ newVersion=”3.0.0.0″/>
<publisherPolicy apply=”no” />
</dependentAssembly>
24
Aug 18
Written By Steve French
A simple little linq values transformer
Somehow I’ve never actually used this keyword before, but as I gradually shift over to functional programming I came across the ForEach linq statement – for example
listOfObjects.ForEach(x => x.BodyText = x.BodyText.Replace(“,”,”, “));
And bam – all of the body text is replaced without having to loop through the enumerable. Rather nice. A simple little statement, but one that I’ve never really had the change to use before.
13
Aug 18
Written By Steve French
The simple way to force redirect to https in web config files
There are two things:
1. Just insert this code in the web.release.config
<system.webServer xdt:Transform=”Insert”>
<rewrite>
<rules>
<rule name=”Force HTTPS” enabled=”true”>
<match url=”(.*)” ignoreCase=”false” />
<conditions>
<add input=”{HTTPS}” pattern=”off” />
</conditions>
<action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” appendQueryString=”true” redirectType=”Permanent” />
</rule>
</rules>
</rewrite>
</system.webServer>
2. Then make sure that the Url Rewrite module is installed in IIS – if that module is not installed you will get perplexing, unhelpful error messages
24
Jul 18
Written By Steve French
How to fix the problem of undeletable characters in json strings in Visual Studio
So – you’re cruising around in web services, pulling data from various sources and your want to deserialize a string into an object, however, you can’t seem to remove extra quotations and escape characters. In fact everything you see looks like this
“{\”DataThingObject\”:{\”DataThingOneID\”:89,\”Status\”:\”Active\”,\”UserId\”:89,
and the \ and ” don’t go away, no matter how much text manipulation you do.
There actually isn’t a problem, you’re just looking at the string in the debugger, which adds the escape charachters for some reason – if you save it to a text or json file you will see that your json files are perfectly formatted.
06
Jul 18
Written By Steve French
How to fix the directory name is invalid IIS problem
Just restart the app pool and the problem goes away.
22
May 18
Written By Steve French
How to fix the problems with the package manager console in Visual Studio 2017
So – you’re getting the following problem
The following error occurred while loading the extended type data file: Microsoft.PowerShell.Core, C:\Windows\SysWOW64\WindowsPowerShell\v1.0\types.ps1xml(3763) : Error in type “System.Management.Automation.FormatViewDefinition”: Exception: The getter method should be public, non void, static, and have one parameter of type PSObject.
For some reason this just started happening after the last Visual Studio 2017 update
Update – 5/29/2018 – make sure to leave VS Code open while you open Visual Studio 2017 – the problem does recur after every restart for some reason.
First – locate devenv.exe.config in the C:\Users\WarHorse\AppData\Local\Microsoft\VisualStudio\15.0_YOURIDENTIFIER directory
Open that file in VS Code
paste the following in with the other dependent assemblies
<dependentAssembly>
<assemblyIdentity name=”System.Management.Automation” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.PowerShell.Commands.Utility” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.PowerShell.ConsoleHost” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.PowerShell.Commands.Management” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.PowerShell.Security” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.PowerShell.Commands.Diagnostics” publicKeyToken=”31bf3856ad364e35″ />
<publisherPolicy apply=”no” />
</dependentAssembly>
16
May 18
Written By Steve French