Skip to content

refactoring#56

Open
dkhuriev wants to merge 6 commits intomasterfrom
BigRefactoring
Open

refactoring#56
dkhuriev wants to merge 6 commits intomasterfrom
BigRefactoring

Conversation

@dkhuriev
Copy link
Copy Markdown
Collaborator

@dkhuriev dkhuriev commented Apr 3, 2019

No description provided.

{
return Ok(_tripManager
.FindTrips(requestRoute.DepartureCityName, requestRoute.DestinationCityName, requestRoute.DepartDate));
throw new NotImplementedException();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

лучше возвращай 501 ошибку "NotImplemented". иначе апи возвращает 500 и клиент ничего не понимает.
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP
вот на будущее

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

согласен, спасибо

_tripManager.BookTrip(tripId);
_accountManager.AddTripToAccount(tripId, userId);
return Ok();
throw new NotImplementedException();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

аналогично тому, что выше

public class BankCardModel
{
[Required]
[JsonProperty("cardNumber")]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

десериалайзер ньютонсофта достаточно умный, чтобы понять, что это одни и те же поля, просто с разным регистром

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

так лучше, эта хуйня позволит мне использовать свои названия и не зависеть от того как оно сериализуется или десериализуется. И в случае изменения, названия поля ничего не сломается

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Ну, пока что это просто лишняя строчка кода.
Еще я не знаю как себя будет вести newtonsoft, если тебе в данном случае придет такое поле с верхним регистром. Л
учше протести это: если поле нормально будет десериализовываться, то оставь, если нет, то лучше убрать и добавлять такие пропсы по мере необходимости

[Required]
[JsonProperty("cardNumber")]
[RegularExpression("^[0-9]{15}(?:[0-9]{1})?$")]
public string CardNumber { get; set; }
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

лучше избавиться от публичных сеттеров и создать конструктор. так у тебя объекты будут оставаться немутабельными

Copy link
Copy Markdown
Collaborator Author

@dkhuriev dkhuriev Apr 4, 2019

Choose a reason for hiding this comment

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

в моделях которые не используются в логике это норм, хз. Это делается для десериалайзера. Можно и через конструктор, но если будет какая-то сложная модель, то там уже сложнее. И атрибуты можно классные юзать

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Если у тебя нет каких-то наследований, то все должно быть хорошо

@@ -60,14 +59,8 @@ public void ConfigureServices(IServiceCollection services)
var smsManager = new SmsManager();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

подобные зависимостти не обязательно создавать вручную. DI автоматически создает объект, если знает все параметры конструктора. Достаточно просто указать реализацию. Например:
services.AddSingleton<Abstraction, Implementation>();

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

не знал, спасибо

_totpManager.ValidateToken(loginConfirmationRequest.Phone, int.Parse(loginConfirmationRequest.Code));
_totpManager.ValidateToken(loginConfirmationRequest.Phone, loginConfirmationRequest.Code);
var account = _accountManager.LoadAccount(loginConfirmationRequest.Phone);
var credentials = new Credentials(Request.Headers["User-Agent"], loginConfirmationRequest.Phone);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

лучше добавить проверку хэдера на null, и выбрасывать BadRequest

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

там внутри Credentials проверяется на null

@dedalexij dedalexij self-requested a review April 7, 2019 12:24
var result = accountController.Login(loginRequest);

// Assert
Assert.NotNull(result as OkResult);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

ответ никогда не будет null


public void SendMessage(string phoneNumber, string message)
{
if (phoneNumber == null) throw new ArgumentNullException(nameof(phoneNumber));
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

phoneNumber ?? throw new ArgumentNullException(nameof(phoneNumber));

{
if (phoneNumber == null) throw new ArgumentNullException(nameof(phoneNumber));

if (message == null) throw new ArgumentNullException(nameof(message));
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

аналогично

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants