私はこのテーマについて検索してきましたが、私が欲しいものを正確に見つけられませんでした. 基本的に、私はすべての UML 要素、ユース ケース、クラス ダイアグラム bla bla を含むプロジェクトの計画を開始しました。次に、ASP.NET MVC を使用することにしました。アプリケーションは一種の O-Desk または Elance です
ユーザー、契約者、会社、モデレーター、管理者がいます。
モデルがこのユーザーを表す方法と、asp.net mvc 機能で特権とロールを設定する方法について少し混乱しています。
通常のアプリケーションでは、それらのそれぞれにクラスがあり、おそらくユーザー名、パスワード、および電子メールを持つ User を拡張します。
請負業者クラスには、請負業者に関するすべての情報があります。たとえば、彼が応募した仕事、履歴書などです。
Company クラスには、投稿されたオファー、会社名などがあります。
では、これを行うためのベストプラクティスは何ですか? ここにコードがあります
public class User
{
[Key]
public string UserID { get; set; }
[Required(ErrorMessage = "Email is required")]
[DataType(DataType.EmailAddress, ErrorMessage="Email Format is wrong. Example: user@user.com")]
[Remote("doesEmailExist", "Contractors", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different one.")]
public string Email { get; set; }
[Required]
[Remote("doesUserNameExist", "Contractors", HttpMethod = "POST", ErrorMessage = "User name already exists. Please enter a different user name.")]
public string Username { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
public string Password { get; set; }
}
ちょっとした疑問ですが、ContractorID を取得する必要がありますか? またはユーザーIDを取得しますか?生成後のDBがどのようになるか分からないので質問します。とにかくこれからやってみます。
public class Contractor extends User
{
[Key]
public int ContractorID { get; set; }
[Required(ErrorMessage = "First Name is required")]
[StringLength(20, ErrorMessage = "First Name max length is 20 characters")]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name is required")]
[StringLength(20, ErrorMessage = "First Name max length is 20 characters")]
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
public class Company extends User
{
[Key]
public int CompanyID { get; set; }
[Required(ErrorMessage = "Name of the Company required")]
public string CompanyName { get; set; }
private List<Offer> Offers;
public void AddOffer (Offer offer) {
Offers.Add(offer);
}
public void RemoveOffer(Offer offer)
{
Offers.Remove(offer);
}
}
提供されたヘルプやヒントに感謝します! よろしく。