64 tỉnh thành phố Việt Nam

SQL Script để thêm 64 tỉnh thành của Việt Nam

INSERT INTO Cities(Name,description) VALUES(N’An Giang’,N’An Giang’),
(N’Bà Rịa – Vũng Tàu’,N’Bà Rịa – Vũng Tàu’),
(N’Bắc Giang’,N’Bắc Giang’),
(N’Bắc Kạn’,N’Bắc Kạn’),
(N’Bạc Liêu’,N’Bạc Liêu’),
(N’Bắc Ninh’,N’Bắc Ninh’),
(N’Bến Tre’,N’Bến Tre’),
(N’Bình Định’,N’Bình Định’),
(N’Bình Dương’,N’Bình Dương’),
(N’Bình Phước’,N’Bình Phước’),
(N’Bình Thuận’,N’Bình Thuận’),
(N’Cà Mau’,N’Cà Mau’),
(N’Cao Bằng’,N’Cao Bằng’),
(N’Cần Thơ’,N’Cần Thơ’),
(N’Đà Nẵng’,N’Đà Nẵng’),
(N’Đắk Lắk’,N’Đắk Lắk’),
(N’Đắk Nông’,N’Đắk Nông’),
(N’Điện Biên’,N’Điện Biên’),
(N’Đồng Nai’,N’Đồng Nai’),
(N’Đồng Tháp’,N’Đồng Tháp’),
(N’Gia Lai’,N’Gia Lai’),
(N’Hà Giang’,N’Hà Giang’),
(N’Hà Nam’,N’Hà Nam’),
(N’Hà Nội’,N’Hà Nội’),
(N’Hà Tĩnh’,N’Hà Tĩnh’),
(N’Hải Dương’,N’Hải Dương’),
(N’Hải Phòng’,N’Hải Phòng’),
(N’Hậu Giang’,N’Hậu Giang’),
(N’Hòa Bình’,N’Hòa Bình’),
(N’Hưng Yên’,N’Hưng Yên’),
(N’Hồ Chí Minh’,N’Hồ Chí Minh’),
(N’Khánh Hòa’,N’Khánh Hòa’),
(N’Kiên Giang’,N’Kiên Giang’),
(N’Kon Tum’,N’Kon Tum’),
(N’Lai Châu’,N’Lai Châu’),
(N’Lâm Đồng’,N’Lâm Đồng’),
(N’Lạng Sơn’,N’Lạng Sơn’),
(N’Lào Cai’,N’Lào Cai’),
(N’Long An’,N’Long An’),
(N’Nam Định’,N’Nam Định’),
(N’Nghệ An’,N’Nghệ An’),
(N’Ninh Bình’,N’Ninh Bình’),
(N’Ninh Thuận’,N’Ninh Thuận’),
(N’Phú Thọ’,N’Phú Thọ’),
(N’Phú Yên’,N’Phú Yên’),
(N’Quảng Bình’,N’Quảng Bình’),
(N’Quảng Nam’,N’Quảng Nam’),
(N’Quảng Ngãi’,N’Quảng Ngãi’),
(N’Quảng Ninh’,N’Quảng Ninh’),
(N’Quảng Trị’,N’Quảng Trị’),
(N’Sóc Trăng’,N’Sóc Trăng’),
(N’Sơn La’,N’Sơn La’),
(N’Tây Ninh’,N’Tây Ninh’),
(N’Thái Bình’,N’Thái Bình’),
(N’Thái Nguyên’,N’Thái Nguyên’),
(N’Thanh Hóa’,N’Thanh Hóa’),
(N’Thừa Thiên Huế’,N’Thừa Thiên Huế’),
(N’Tiền Giang’,N’Tiền Giang’),
(N’Trà Vinh’,N’Trà Vinh’),
(N’Tuyên Quang’,N’Tuyên Quang’),
(N’Vĩnh Long’,N’Vĩnh Long’),
(N’Vĩnh Phúc’,N’Vĩnh Phúc’),
(N’Yên Bái’,N’Yên Bái’)

Entity Framework Initializer

public class TcsDBInitializer : DropCreateDatabaseIfModelChanges<TCSAppContext>
{
protected override void Seed(TCSAppContext context)
{
foreach (var filePath in Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, “*.sql”))
{
context.Database.ExecuteSqlCommand(File.ReadAllText(filePath));
}
}
}

Advertisements

Asp.Net MVC Identity without email

Đôi khi chúng ta không dùng đến trường email trong đăng ký người dùng, mặc định trường này bắt buộc phải nhập và UNIQUE trong Asp.Net MVC Identity.

Để cho phép người dùng đăng ký tài khoản không dùng đến địa chỉ email, bạn làm cách sau:

Mở IdentityConfig.cs và thay đổi giá trị thiết lập RequireUniqueEmail = false theo dưới đây

public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
 {
 var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
 // Configure validation logic for usernames
 manager.UserValidator = new UserValidator<ApplicationUser>(manager)
 {
 AllowOnlyAlphanumericUserNames = false,
 RequireUniqueEmail = false
 };
...

Lưu lại và chạy kiểm tra kết quả.

 

AdminLTE template

Bài này hướng dẫn cách dùng AdminLTE tích hợp vào MVC Project

  1. Tạo project mới, chọn template ASP.NET MVC
  2. NugetPackage -> install WebHelpers.MVC5
  3. Chép các file trong thư mục Contents từ mẫu AdminLTE qua project ASP.NET MVC
  4. Thiết lập bundle css, js

Hope this help

CKEditor 4 và CFinder 3 – PHP

Hướng dẫn cài đặt CKEditor 4 và Cfinder 3

  • Tải CKEditor, CKFinder ở 2 link sau

https://ckeditor.com/ckeditor-4/
https://ckeditor.com/ckeditor-4/download/#ckfinder (3.4.2)

  • Giải nén và chép ckeditor, cfinfer vào thư mục gốc của website (web root folder)
  • Cấu hình cfinder tích hợp với ckeditor

Thay đổi $config[‘authentication’] file config.php nằm trong thư mục cfinder như sau

$config[‘authentication’] = function () {
return true; // FALSE -> TRUE
};

  • Add CKEditor vào trang web

src=”ckeditor/ckeditor.js”>
src=”ckfinder/ckfinder.js” type=”text/javascript”>

Thành phần TEXT EDITOR //TextArea
<textarea name=”editor1″ id=”editor1″ rows=”10″ cols=”80″>
This is my textarea to be replaced with CKEditor.
</textarea>
//Script for CKEditor

// Replace the with a CKEditor
// instance, using default configuration.
var editor = CKEDITOR.replace( ‘editor1’, {
filebrowserBrowseUrl: ‘ckfinder/ckfinder.html’,
filebrowserImageBrowseUrl: ‘ckfinder/ckfinder.html?type=Images’,
filebrowserFlashBrowseUrl: ‘ckfinder/ckfinder.html?type=Flash’,
filebrowserUploadUrl: ‘ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files’,
filebrowserImageUploadUrl: ‘ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images’,
filebrowserFlashUploadUrl: ‘ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash’
});
CKFinder.setupCKEditor( editor, {
skin: ‘jquery-mobile’,
swatch: ‘b’,
onInit: function( finder ) {
finder.on( ‘files:choose’, function( evt ) {
var file = evt.data.files.first();
console.log( ‘Selected: ‘ + file.get( ‘name’ ) );
} );
}
} );

 

Aggregation vs Composition relationship

Qua bài này sẽ minh họa sự khác nhau giữa 2 loại quan hệ trong thiết kế hướng đối tượng và minh họa rõ sự khác biệt khi cài đặt trong code

Aggregation

Aggregation là mối quan hệ mà ở đó thực thể có thể tồn tại độc lập với các lớp khác. Ví dụ: một người nào đó có thể thuộc một công ty hoặc không thuộc một công ty, người đó vẫn có thể tồn tại độc lập, có nghĩa là họ không làm cho một công ty bất kỳ.

Composition

Composition đề cập đến trường hợp khi một đối tượng (obj1) tồn tại phụ thuộc vào sự tồn tại của một đối tượng khác(obj2). Có nghĩa rằng, nếu đối tượng được phụ thuộc obj2 tồn tại thì đối tượng obj1 mới có thể tồn tại.

Cài đặt mã khi viết chương trình biểu diễn mối quan hệ Aggregation

public class Subject {
   private String name;
   public void setName(String name)
   {
     this.name = name;
   }
   public String getName()
   {
     return name;
   }
 }
 
 public class Student {
   private Subject[] studyAreas = new Subject[10];
   //the rest of the Student class
 } 

Cài đặt mã khi viết chương trình biểu diễn mối quan hệ Composition

public class Job {
    private String role;
    private long salary;
    private int id;
        
    public String getRole() {
        return role;
    }
    public void setRole(String role) {
        this.role = role;
    }
    public long getSalary() {
        return salary;
    }
    public void setSalary(long salary) {
        this.salary = salary;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}
public class Person {
    //composition has-a relationship
    private Job job; 
    public Person(){
        this.job=new Job();
        job.setSalary(1000L);
    }
    public long getSalary() {
        return job.getSalary();
    }
}

Source: internet