public async Task <IActionResult> Create(ChiTietPhieuDatSanForCreateDto chiTietPhieuDatSan) { try { var validationResult = _repo.ValidateBeforeCreate(chiTietPhieuDatSan); if (validationResult.IsValid) { var result = await _repo.Create(chiTietPhieuDatSan); 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 } })); } }
public ValidationResultDto ValidateBeforeCreate(ChiTietPhieuDatSanForCreateDto chiTietPhieuDatSan) { var total = _context.DanhSachChiTietPhieuDatSan.Count(x => x.MaSanBong == chiTietPhieuDatSan.MaSanBong && x.ThoiGianBatDau <= chiTietPhieuDatSan.ThoiGianBatDau && x.ThoiGianKetThuc >= chiTietPhieuDatSan.ThoiGianBatDau); IDictionary <string, string[]> Errors = new Dictionary <string, string[]>(); if (total >= 1) { Errors.Add("maSanBong and thoiGianBatDau", new string[] { "maSanBong and thoiGianBatDau is duplicated!" }); return(new ValidationResultDto { IsValid = false, Errors = Errors }); } else { return(new ValidationResultDto { IsValid = true }); } }
public async Task <ChiTietPhieuDatSan> Create(ChiTietPhieuDatSanForCreateDto chiTietPhieuDatSan) { var phieuDatSan = await _context.DanhSachPhieuDatSan.FirstOrDefaultAsync(x => x.MaPhieuDatSan == chiTietPhieuDatSan.MaPhieuDatSan); double daThanhToan = 0; var danhSachChiTietPhieuDatSan_PhieuDatSan = _context.DanhSachChiTietPhieuDatSan.Where(x => x.MaPhieuDatSan == phieuDatSan.MaPhieuDatSan); foreach (var item in danhSachChiTietPhieuDatSan_PhieuDatSan) { daThanhToan = daThanhToan + item.TienCoc; } daThanhToan = daThanhToan + chiTietPhieuDatSan.TienCoc; if (daThanhToan == 0) { phieuDatSan.TrangThai = 0; } else if (daThanhToan < phieuDatSan.TongTien) { phieuDatSan.TrangThai = 1; } else if (daThanhToan >= phieuDatSan.TongTien) { phieuDatSan.TrangThai = 2; } _context.DanhSachPhieuDatSan.Update(phieuDatSan); await _context.SaveChangesAsync(); var danhSachChiTietPhieuDatSan = await _context.DanhSachChiTietPhieuDatSan.OrderByDescending(x => x.MaChiTietPDS).FirstOrDefaultAsync(); var maChiTietPhieuDatSan = 1; if (danhSachChiTietPhieuDatSan == null) { maChiTietPhieuDatSan = 1; } else { maChiTietPhieuDatSan = danhSachChiTietPhieuDatSan.MaChiTietPDS + 1; } var newChiTietPhieuDatSan = new ChiTietPhieuDatSan { MaChiTietPDS = maChiTietPhieuDatSan, MaPhieuDatSan = chiTietPhieuDatSan.MaPhieuDatSan, MaSanBong = chiTietPhieuDatSan.MaSanBong, ThoiGianBatDau = chiTietPhieuDatSan.ThoiGianBatDau, ThoiGianKetThuc = chiTietPhieuDatSan.ThoiGianKetThuc, NgayDat = chiTietPhieuDatSan.NgayDat, TienCoc = chiTietPhieuDatSan.TienCoc, ThanhTien = chiTietPhieuDatSan.ThanhTien, DaXoa = 0 }; await _context.DanhSachChiTietPhieuDatSan.AddAsync(newChiTietPhieuDatSan); await _context.SaveChangesAsync(); return(newChiTietPhieuDatSan); }