>using System; > >using System.ComponentModel.DataAnnotations; >using System.ComponentModel; > >using DataAnnotationsExtensions; >using System.ComponentModel.DataAnnotations.Schema; >using System.Collections.Generic; > >namespace CardNumbers.Objects >{ > [ComplexType] > public class PhoneInfo > { > [DataType(DataType.PhoneNumber)] > > [DisplayName("Phone")] > [RegularExpression(@"^((\(\d{3}\)|\d{3})\s?)?\d{3}[-\s]?\d{4}\s*$", ErrorMessage = "Please enter valid Phone Number")] > public virtual string Phone { get; set; } > > [StringLength(5)] > [DisplayName("Ext")] > public virtual string Ext { get; set; } > > public bool HasValue > { > get > { > return (Phone != null || Ext != null); > } > } > > } > > [ComplexType] > public class ContactDetail > { > //Constructor > public ContactDetail() > { > phoneInfo = new PhoneInfo(); > } > > [StringLength(100)] > [DisplayName("Contact Name")] > [DisplayFormat(NullDisplayText = "")] > public virtual string Contact { get; set; } > > [Email] > [StringLength(100)] > [DataType(DataType.EmailAddress)] > [DisplayName("Email")] > public virtual string Email { get; set; } > > public virtual PhoneInfo phoneInfo { get; set; } > public bool HasValue > { > get > { > return (Contact != null || Email != null || phoneInfo.HasValue); > } > } > } > >/// <summary> >/// Client class (Client No, Client Name, Address, Contact1, Contact2 info, Created By, Modified By (operator and date) >/// </summary> > public class Client > { > public Client() > { > Contact1 = new ContactDetail(); > Contact2 = new ContactDetail(); > } > > [Key] > [Editable(false)] > [Column("ClientId",TypeName = "int")] > public virtual int Id { get; set; } > [Required] > [DisplayName("Client No")] > [Column("client_no", TypeName = "smallint")] > public virtual Int16 Number { get; set; } > > [Required] > [Column("client_name", TypeName = "varchar")] > [DisplayName("Client Name")] > [MaxLength(30, ErrorMessage = "Client Name should not be longer than 30 characters" )] > [MinLength(3, ErrorMessage = "Client Name is too short")] > > public virtual string Name { get; set; } > > [DataType(DataType.MultilineText)] > public virtual string Address { get; set; } > > public virtual ContactDetail Contact1 {get; set;} > public virtual ContactDetail Contact2 {get; set;} > > [ForeignKey("EnteredByOperator")] > public string EnteredBy { get; set; } > > [InverseProperty("ClientsEnteredBy")] > public virtual Operator EnteredByOperator { get; set; } > > [ForeignKey("ModifiedByOperator")] > public string ModifiedBy { get; set; } > > [InverseProperty("ClientsUpdatedBy")] > public virtual Operator ModifiedByOperator { get; set; } > > [DataType(DataType.DateTime)] > [DisplayName("Created on")] > public DateTime EnteredOn { get; set; } > > [DataType(DataType.DateTime)] > [DisplayName("Modified on")] > public DateTime? ModifiedOn { get; set; } > > public virtual ICollection<ClientOrder> ClientOrders { get; set; } > > public virtual ICollection<Reorder> Reorders { get; set; } > } >}>
> ><div id="editor" style="visibility:hidden"> > <form action="/Client/Client" id="sform" method="post" title="Client Info"> <fieldset> > <legend>Client Info</legend> > > > > <input data-val="true" data-val-number="The field ClientId must be a number." id="ClientId" name="ClientId" type="hidden" value="" /> > <div class="editor-label"> > <label for="Number">Client No</label> ></div> > ><div class="editor-field"> ><input class="numericOnly" data-val="true" data-val-number="The field Client No must be a number." data-val-remote="Client Number already exists. Please enter a different Client Number." data-val-remote-additionalfields="*.Number,*.ClientId" data-val-remote-type="POST" data-val-remote-url="/Client/doesClientNoExist" data-val-required="The Client No field is required." id="Number" name="Number" type="number" value="" /> > <span class="field-validation-valid" data-valmsg-for="Number" data-valmsg-replace="true"></span> ></div> > > > <div class="editor-label"> > <label for="Name">Client Name</label> ></div> > ><div class="editor-field"> ><input class="text-box single-line" data-bind="value: Name" data-val="true" data-val-remote="Client Name already exists. Please enter a different Client Name." data-val-remote-additionalfields="*.Name,*.ClientId" data-val-remote-type="POST" data-val-remote-url="/Client/doesClientNameExist" data-val-required="The Client Name field is required." id="Name" name="Name" type="text" value="" /> > <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span> ></div> > > > <div class="editor-label"> > <label for="Address">Address</label> ></div> > ><div class="editor-field"> > <textarea class="text-box multi-line" cols="60" data-bind="value: Address" id="Address" name="Client.Address" rows="5" wrap="virtual"> ></textarea> > <span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true"></span> ></div> > > > <div id="ContactsInfo"> > > <div id="Contact1"> > > <div class="editor-label"> > <label for="Client_Contact1_Contact">Contact Name</label> ></div> ><div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-length="The field Contact Name must be a string with a maximum length of 100." data-val-length-max="100" id="Client_Contact1_Contact" name="Client.Contact1.Contact" type="text" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact1.Contact" data-valmsg-replace="true"></span> ></div> > ><div class="editor-label"> > <label for="Client_Contact1_Email">Email</label> ></div> ><div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-email="The Email field is not a valid e-mail address." data-val-length="The field Email must be a string with a maximum length of 100." data-val-length-max="100" id="Client_Contact1_Email" name="Client.Contact1.Email" type="email" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact1.Email" data-valmsg-replace="true"></span> ></div> > ><div id="PhoneInfo"> > <div class="float-left"> > > <div class="editor-label"> > <label for="Client_Contact1_phoneInfo_Phone">Phone</label> > </div> > <div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-regex="Please enter valid Phone Number" data-val-regex-pattern="^((\(\d{3}\)|\d{3})\s?)?\d{3}[-\s]?\d{4}\s*$" id="Client_Contact1_phoneInfo_Phone" name="Client.Contact1.phoneInfo.Phone" type="tel" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact1.phoneInfo.Phone" data-valmsg-replace="true"></span> > </div> > </div> > <div class="float-right"> > > <div class="editor-label"> > <label for="Client_Contact1_phoneInfo_Ext">Ext</label> > </div> > <div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-length="The field Ext must be a string with a maximum length of 5." data-val-length-max="5" id="Client_Contact1_phoneInfo_Ext" name="Client.Contact1.phoneInfo.Ext" type="text" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact1.phoneInfo.Ext" data-valmsg-replace="true"></span> > </div> > </div> ></div> > > > </div> > > <div id="Contact2"> > > <div class="editor-label"> > <label for="Client_Contact2_Contact">Contact Name</label> ></div> ><div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-length="The field Contact Name must be a string with a maximum length of 100." data-val-length-max="100" id="Client_Contact2_Contact" name="Client.Contact2.Contact" type="text" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact2.Contact" data-valmsg-replace="true"></span> ></div> > ><div class="editor-label"> > <label for="Client_Contact2_Email">Email</label> ></div> ><div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-email="The Email field is not a valid e-mail address." data-val-length="The field Email must be a string with a maximum length of 100." data-val-length-max="100" id="Client_Contact2_Email" name="Client.Contact2.Email" type="email" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact2.Email" data-valmsg-replace="true"></span> ></div> > ><div id="PhoneInfo"> > <div class="float-left"> > > <div class="editor-label"> > <label for="Client_Contact2_phoneInfo_Phone">Phone</label> > </div> > <div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-regex="Please enter valid Phone Number" data-val-regex-pattern="^((\(\d{3}\)|\d{3})\s?)?\d{3}[-\s]?\d{4}\s*$" id="Client_Contact2_phoneInfo_Phone" name="Client.Contact2.phoneInfo.Phone" type="tel" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact2.phoneInfo.Phone" data-valmsg-replace="true"></span> > </div> > </div> > <div class="float-right"> > > <div class="editor-label"> > <label for="Client_Contact2_phoneInfo_Ext">Ext</label> > </div> > <div class="editor-field"> > <input class="text-box single-line" data-val="true" data-val-length="The field Ext must be a string with a maximum length of 5." data-val-length-max="5" id="Client_Contact2_phoneInfo_Ext" name="Client.Contact2.phoneInfo.Ext" type="text" value="" /> > <span class="field-validation-valid" data-valmsg-for="Client.Contact2.phoneInfo.Ext" data-valmsg-replace="true"></span> > </div> > </div> ></div> > > </div> > </div> > > <div id="SaveCancel" class="float-right"> > <button id="btnSave">Save</button> > <button type="reset" id ="btnCancel" name="Reset">Cancel</button> > </div> > </fieldset> ></form>; ></div>>