public async Task <Khoa> Create(KhoaForCreateDto khoa) { var danhSachKhoa = await _context.DanhSachKhoa.OrderByDescending(x => x.MaKhoa).FirstOrDefaultAsync(); var maKhoa = 0; if (danhSachKhoa == null) { maKhoa = 0; } else { maKhoa = danhSachKhoa.MaKhoa + 1; } var newKhoa = new Khoa { MaKhoa = maKhoa, TenKhoa = khoa.TenKhoa, TenVietTat = khoa.TenVietTat, ThoiGianTao = DateTime.Now, ThoiGianCapNhat = DateTime.Now, TrangThai = 1 }; await _context.DanhSachKhoa.AddAsync(newKhoa); await _context.SaveChangesAsync(); return(newKhoa); }
public ValidationResultDto ValidateBeforeCreate(KhoaForCreateDto khoa) { var totalTenKhoa = _context.DanhSachKhoa.Count(x => x.TenKhoa.ToLower() == khoa.TenKhoa.ToLower()); var totalTenVietTat = _context.DanhSachKhoa.Count(x => x.TenVietTat.ToLower() == khoa.TenVietTat.ToLower()); IDictionary <string, string[]> Errors = new Dictionary <string, string[]>(); if (totalTenKhoa >= 1 || totalTenVietTat >= 1) { if (totalTenKhoa >= 1) { Errors.Add("tenKhoa", new string[] { "tenKhoa is duplicated!" }); } if (totalTenVietTat >= 1) { Errors.Add("tenVietTat", new string[] { "tenVietTat is duplicated!" }); } return(new ValidationResultDto { IsValid = false, Errors = Errors }); } else { return(new ValidationResultDto { IsValid = true }); } }
public async Task <IActionResult> Create(KhoaForCreateDto khoa) { try { var validationResult = _repo.ValidateBeforeCreate(khoa); if (validationResult.IsValid) { var result = await _repo.Create(khoa); return(StatusCode(201, new SuccessResponseDto { Message = "Tạo " + _entityName + " mới thành công!", Result = new SuccessResponseResultWithSingleDataDto { Data = result } })); } else { return(StatusCode(500, new FailedResponseDto { Message = "Tạo " + _entityName + " mới thất bại!", Result = new FailedResponseResultDto { Errors = validationResult.Errors } })); } } catch (Exception e) { return(StatusCode(500, new FailedResponseDto { Message = "Tạo " + _entityName + " mới thất bại!", Result = new FailedResponseResultDto { Errors = e } })); } }