Skip to content

Create client application(CLI)#8

Open
includingByMeAndMyself wants to merge 17 commits intomainfrom
Dev
Open

Create client application(CLI)#8
includingByMeAndMyself wants to merge 17 commits intomainfrom
Dev

Conversation

@includingByMeAndMyself
Copy link
Copy Markdown
Owner

No description provided.

@includingByMeAndMyself includingByMeAndMyself changed the title Start creating Client Create client application(CLI) May 4, 2022

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
<PackageReference Include="xunit" Version="2.4.1" />
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно было сразу создать проект с NUnit, это часть стандартных шаблонов :)
А так в целом xunit мне нравится больше. Пожалуй Microsoft он тоже нравится больше, потому что на их проектах использоваться xunit

private Stack<Card> _cards;

public int Id { get; set; }
public Stack<Card> Cards { get { return _cards; } }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

public Stack Cards => _cards; // можно вот так это написать, выглядит чуть лучше :)

public Stack<Card> Cards { get { return _cards; } }

public Suit Name { get; set; }
public int Count { get; private set; }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если тебе и правда нужен Count, то логичнее его брать из _cards.Count


public Card(Rank rank, Suit suit, int sequenceNumber)
{
Rank = rank;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

При создании типа я бы еще добавил проверку Enum.IsDefined(rand); Чтобы убедиться, что туда не передали фигню. Просто Enum это такой противный тип данных, в который можно записать (скастить, смаппить, сериализовать) любое число

{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Tyche.API", Version = "v1" });
});
var filePath = Path.Combine(System.AppContext.BaseDirectory, "Tyche.API.xml");
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Советую взять название файла с документацией так
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
вместо
"Tyche.API.xml"

Просто чтобы уменьшить возможность как то опечататься

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну либо сделать константу AppName = "Tyche.API"
так даже лучше :)
Можно будет ее использовать везде, где нужно вставить название апи


namespace Tyche.BusinessLogic.Infrasturcure
{
internal class CardShuffler
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

похоже, что это доменный класс, лучше его унести в домен
и сделать модификатор public.
А еще написать для него юнит тесты :)

}
catch (Exception)
{
//Log errors or do anything you think it's needed
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а где логгирование ошибок? xD


public async Task<bool> AddAsync(Deck deck, string name)
{
if (deck == null) return false;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эта проверка лишняя, ниже у тебя string.IsNullOrWhitespace уже проверяет на null

[StringLength(50, MinimumLength = 3)]
public string Name { get; set; }

public ICollection<CardEntity> Deck { get; set; }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

лучше назвать свойство Cards вместо Deck, а то вызывает путаницу

using System.Collections.Generic;
using Tyche.DataAccess.MsSql.Entities;
using Tyche.Domain.Models;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

линяя пустая строка xD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants