Source: Flex Cheatsheet
Set Prettier as default formatter in WebStorm
Source: Prettier—WebStorm
c# – LINQ’s Distinct() on a particular property
EDIT: This is now part of MoreLINQ.
What you need is a “distinct-by” effectively. I don’t believe it’s part of LINQ as it stands, although it’s fairly easy to write:
public static class EnumerableExtensions { public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { HashSet<TKey> seenKeys = new HashSet<TKey>(); foreach (TSource element in source) { if (seenKeys.Add(keySelector(element))) { yield return element; } } } }
Source: c# – LINQ’s Distinct() on a particular property – Stack Overflow
white-space | CSS-Tricks
Here is a table to understand the behaviors of all the different values for property white-space:
New lines | Spaces and tabs | Text wrapping | |
---|---|---|---|
normal | Collapse | Collapse | Wrap |
pre | Preserve | Preserve | No wrap |
nowrap | Collapse | Collapse | No wrap |
pre-wrap | Preserve | Preserve | Wrap |
pre-line | Preserve | Collapse | Wrap |
Source: white-space | CSS-Tricks
Visual Studio Comparison Tools – Visual Studio Marketplace
Visual Studio Comparison Tools is an extension for Visual Studio which uses external tools to compare files, folders and clipboard. Features: Comparing two files, selecting folders for comparison from the solution explorer and comparing (and merging) clipboard to a file or selected area in a file. By default uses Beyond Compare if found, then WinMerge (http://winmerge.org/) and if neither is found uses VSDiff to compare files. Tested to work with Beyond Compare 3 and 4.
Source: Visual Studio Comparison Tools – Visual Studio Marketplace
Angular state inspector – Chrome Extension
Helps you debug Angular component state. Supports Angular 1/2+/Ivy! Angular State Inspector for Angular Supports all versions of Angular: – AngularJs – Angular 2+ – Angular Ivy – Hybrid apps (AngularJs + Angular) Extends the Chrome Developer Tools for Angular web apps. Adds new panel “State” to Elements tab, that displays the state of selected element. Prints state of selected element in console by calling “$state” variable. Depending on angular version it can show: – Component state – Directives – Context, like ngForOf or ngIf values – Event listeners If they are applicable to the current element.
Angular State Inspector also allows you to modify the values in the “State” panel (double click on value)
20 JavaScript Shorthand Techniques that will save your time | by Amitav Mishra | JavaScript In Plain English | Nov, 2020 | Medium
Log File Highlighter Extension – Visual Studio Marketplace
A Visual Studio Code extension for adding color highlighting to log files. It is based on standard conventions for log4net log files but it’s general enough to be useful for other variations of log files as well. The colors are customizable but by default the current color theme’s colors are used.
CSS Peeper – Chrome Css Extension
Extract CSS and build beautiful styleguides. 🔎 No more digging in a code. Inspect styles in a simple, well-organized & beautiful way. Get it now! CSS Peeper is a CSS viewer tailored for Designers. Get access to the useful styles with our Chrome extension. Our mission is to let Designers focus on design, and spend as little time as possible digging in a code. Ever wondered what’s the line-height, font or a button size on a website? We provide you the ultimate tool to satisfy your curiosity. We enable you to inspect code in the easiest possible way. Check the hidden CSS style of objects, colors and assets on the web.
Source: CSS Peeper – Chrome Web Store
Making ASP.NET Core 3 web API return REST compliant Http return codes
To make an ASP.NET Web Api (core 3+) return valid Http status codes such as 200 OK, 400 Bad request and 404 Not found, use the IActionResult as return type.
Return code 422 can be used instead of 400, read more here: HTTP Status Codes For Invalid Data: 400 vs. 422
Code example C# web API controller “data” endpoint method:
/// <summary> /// Get data from API /// </summary> /// <remarks> /// GET: api/v1/data?id={id} /// </remarks> /// <returns><see cref="IActionResult"/> <see cref="Data"/>Data model</returns> /// <response code="200">Serialized <see cref="Data"/></response> /// <response code="400">Invalid id</response> /// <response code="404">Found no match for id</response> [ProducesResponseType(typeof(Data), 200)] [ProducesResponseType(typeof(object), 400)] [ProducesResponseType(typeof(object), 404)] [HttpGet("data")] public IActionResult GetData(string id) { var data = business.GetData(id); if (data == null) { return NotFound(null); //404 not found } if (data.IsValid) { return Ok(data); //200 OK, found } else { return BadRequest(data.ValidationErrorMessage); //400 bad reqeust validationerror } }
IActionResult type
The IActionResult return type is appropriate when multiple
ActionResult
return types are possible in an action. TheActionResult
types represent various HTTP status codes. Any non-abstract class deriving fromActionResult
qualifies as a valid return type. Some common return types in this category are BadRequestResult (400), NotFoundResult (404), and OkObjectResult (200). Alternatively, convenience methods in the ControllerBase class can be used to returnActionResult
types from an action. For example,return BadRequest();
is a shorthand form ofreturn new BadRequestResult();
.Because there are multiple return types and paths in this type of action, liberal use of the
[ProducesResponseType]
attribute is necessary. This attribute produces more descriptive response details for web API help pages generated by tools like Swagger.[ProducesResponseType]
indicates the known types and HTTP status codes to be returned by the action.
More info:
Controller action return types in ASP.NET Core web API | Microsoft Docs
HTTP Status Codes For Invalid Data: 400 vs. 422