Консольное приложение, которое будет собирать информацию с компьютера.
Оно должно отправлять данные веб-сервису через websoket.
Нужно собирать: Имя компьютера, Часовой пояс, Название ОС, версию дотнета
Веб-сервис должен отслеживать, когда устройства включаются/выключаются.
Веб-сервис должен собирать информацию с устройств каждые 5 минут и отправлять её в Azure Function
Azure Function для обработки информации с веб-сервиса. Он должен обновлять информацию только по необходимости (если произошло изменение с последнего состояния).
Нужно использовать MS SQL в качестве бд и linq2db в качестве ORM
public class CarsRepository
{
private readonly DbContext _dbContext;
public CarsRepository(DbContext dbContext) => _dbContext = dbContext;
public async Task<string> GetOrAddCarNumberAsync(string carName)
{
var car = await _dbContext.Cars.FirstOrDefaultAsync(x => x.Name == name);
if(car == null)
{
car = new Car {
Name = name,
Number = ""
};
_dbContext.Cars.AddAsync(car);
await _dbContext.SaveChangesAsync():
}
return car.Number;
}
}
readonly DataContext _context;
public ProductRepository Products { get; }
public UnitOfWork(DataContext Context,
ProductRepository Products)
{
this._context = Context;
this.Products = Products;
}
readonly DataContext _context;
public IRepository<Product> Products { get; }
public UnitOfWork(DataContext context,
IRepository<Product> products) //Самое важное
{
this._context = context;
this.Products = products;
}
по урокам Гошы Дудоря
Операратор foreach не работаеь с переменными типа CarsListViewModel , так как CarsListViewModel не содержит открытое определение экзепляра или расширение для getenumerator....
Правильно ли я делаю?
Нет ли ошибок?
Как можно защититься от инъекции?
Например, в php экранировали вводимую пользователем форму например htmlspecialchars, надо ли на net core так же делать?
Returns text transformed into HTML using simple formatting rules. Two or more consecutive newlines(\n\n or \r\n\r\n) are considered a paragraph and wrapped in tags. One newline (\n or \r\n) is considered a linebreak and a
tag is appended. This method does not remove the newlines from the text.
You can pass any HTML attributes into html_options. These will be added to all created paragraphs.
Options
:sanitize - If false, does not sanitize text.
:wrapper_tag - String representing the wrapper tag, defaults to "p"
static string ToHtml(string text, bool sanitize = true, string? wrap = null)
{
var normalized = text.Replace("\r\n", "\n");
if (sanitize)
normalized = WebUtility.HtmlEncode(normalized);
var paragraphs = text.Split("\n\n")
.Select(paragraph =>
{
var lines = paragraph.Split("\n");
return string.Join("\n<br/>", lines);
});
var htmlText = string.Join("\n\n", paragraphs.Select(p => $"<p>\n{p}\n</p>"));
return wrap != null
? $"<{wrap}>\n{htmlText}\n</{wrap}>"
: htmlText;
}