public async Task <ActionResult <TransactionHistory> > createTransactionHistory(TransactionHistoryDTO dto) { TransactionHistory transactionHistory = new TransactionHistory(); //truyền xuống dto có 4 field: postid, giver, receiver, transactiondate transactionHistory.PostId = dto.PostId; transactionHistory.Giver = dto.Giver; transactionHistory.Receiver = dto.Receiver; transactionHistory.TransactionDate = DateTime.Now; TblUsersHavingPosts usersHavingPosts = _context.TblUsersHavingPosts.FromSqlRaw("select * from TblUsersHavingPosts where " + "Username = {0} and PostId = {1}", dto.Receiver, dto.PostId).First(); //tìm bài post của freelancer đã hoàn thành usersHavingPosts.Status = "finished"; //set status = finished _context.Entry(usersHavingPosts).State = EntityState.Modified; TblPosts post = _context.TblPosts.FromSqlRaw("select * from TblPosts where " + "Id = {0}", dto.PostId).First(); //tìm bài post trong TblPosts post.IsPublic = false; //ko public bài post nữa _context.Entry(post).State = EntityState.Modified; Int64 postAmount = _context.TblPosts.Find(dto.PostId).Amount; //lấy ra amount của bài post transactionHistory.Amount = postAmount; //lưu vào transaction history _context.TransactionHistory.Add(transactionHistory); //add transaction dto vào table TransactionHistory TblUsers company = _context.TblUsers.Find(dto.Giver); //tìm ra company company.Amount -= postAmount; //lấy amount hiện tại của company - amount của bài post đã finished _context.Entry(company).State = EntityState.Modified; TblUsers freelancer = _context.TblUsers.Find(dto.Receiver); //tìm ra freelancer freelancer.Amount += postAmount; //lấy amount hiện tại của freelancer + amount của bài post đã finished _context.Entry(freelancer).State = EntityState.Modified; await _context.SaveChangesAsync(); return(transactionHistory); }
public async Task <IActionResult> PutTblUsersHavingPosts(int id, TblUsersHavingPosts tblUsersHavingPosts) { if (id != tblUsersHavingPosts.Id) { return(BadRequest()); } _context.Entry(tblUsersHavingPosts).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TblUsersHavingPostsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <List <TblPosts> > > GetCompanyPosts(UsernameDTO usernameDTO) { List <TblPosts> listCompanyPosts = new List <TblPosts>(); List <TblUsersHavingPosts> listCreatedPosts = _context.TblUsersHavingPosts .FromSqlRaw("select PostId from tblUsersHavingPosts where Username = {0} and Status = 'created'", usernameDTO.Username) .ToList <TblUsersHavingPosts>(); for (int i = 0; i < listCreatedPosts.Count; i++) { TblUsersHavingPosts curCreatedPost = listCreatedPosts[i]; TblPosts companyPost = _context.TblPosts.Find(curCreatedPost); listCompanyPosts.Add(companyPost); } return(listCompanyPosts); }
//Hàm này trả về list Post không có trong tblUserHavingPosts private List <TblPosts> getListPostNotInHavingPosts(string username) { List <TblUsersHavingPosts> listHavingPosts = _context.TblUsersHavingPosts .FromSqlRaw("select * from TblUsersHavingPosts") .ToList <TblUsersHavingPosts>(); List <TblPosts> listPost = _context.TblPosts .FromSqlRaw("select * from TblPosts where IsPublic = 1") .ToList <TblPosts>(); List <int> listPostId = new List <int>(); List <TblPosts> listPostResponse = listPost; //Lấy ra listPostId for (int i = 0; i < listHavingPosts.Count; i++) { TblUsersHavingPosts current = listHavingPosts[i]; if (username.Equals(current.Username)) { listPostId.Add(current.PostId); } } for (int i = 0; i < listPostId.Count; i++) { int currentId = listPostId[i]; for (int j = 0; j < listPostResponse.Count; j++) { TblPosts currentPost = listPostResponse[j]; if (currentId == currentPost.Id) { int index = findIndexByIdPodst(currentPost.Id, listPostResponse); if (index != -1) { listPostResponse.RemoveAt(index); break; } } } } return(listPostResponse); }
public async Task <ActionResult <TblUsersHavingPosts> > RemoveRequestedPost(RequestedPost requestedPost) { TblUsersHavingPosts tblUsersHavingPosts = new TblUsersHavingPosts(); tblUsersHavingPosts.Username = requestedPost.Username; tblUsersHavingPosts.PostId = requestedPost.PostId; tblUsersHavingPosts.Status = requestedPost.Status; List <TblUsersHavingPosts> alreadyRequestedPost = _context.TblUsersHavingPosts .FromSqlRaw("select * from TblUsersHavingPosts where Username = {0} and PostId = {1} " + "and Status = 'requested'", tblUsersHavingPosts.Username, tblUsersHavingPosts.PostId) .ToList <TblUsersHavingPosts>(); if (alreadyRequestedPost.Count > 0) { _context.TblUsersHavingPosts.RemoveRange(alreadyRequestedPost); } await _context.SaveChangesAsync(); return(CreatedAtAction("GetTblUsersHavingPosts", new { id = tblUsersHavingPosts.Id }, tblUsersHavingPosts)); }
public async Task <ActionResult <TblUsersHavingPosts> > AddRequestedPost(RequestedPost requestedPost) { TblUsersHavingPosts tblUsersHavingPosts = new TblUsersHavingPosts(); tblUsersHavingPosts.Username = requestedPost.Username; tblUsersHavingPosts.PostId = requestedPost.PostId; tblUsersHavingPosts.Status = requestedPost.Status; List <TblUsersHavingPosts> listAccepted = _context.TblUsersHavingPosts .FromSqlRaw("select * from TblUsersHavingPosts where Username = {0} and Status = 'accepted'", tblUsersHavingPosts.Username) .ToList <TblUsersHavingPosts>(); if (listAccepted.Count > 0) { return(BadRequest()); } else { _context.TblUsersHavingPosts.Add(tblUsersHavingPosts); } await _context.SaveChangesAsync(); return(CreatedAtAction("GetTblUsersHavingPosts", new { id = tblUsersHavingPosts.Id }, tblUsersHavingPosts)); }
public async Task <ActionResult <TblUsersHavingPosts> > PostTblUsersHavingPosts(TblUsersHavingPosts tblUsersHavingPosts) { _context.TblUsersHavingPosts.Add(tblUsersHavingPosts); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (TblUsersHavingPostsExists(tblUsersHavingPosts.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetTblUsersHavingPosts", new { id = tblUsersHavingPosts.Id }, tblUsersHavingPosts)); }