public async Task <ThankDTO> SayThankAsync(Guid userId, ThankDTO newThank, CancellationToken cancellationToken) { Thank mapData = _mapper.Map <Thank>(newThank); User currentUser = await _unitOfWork.userRepository.GetCurrentUserAsync(userId, cancellationToken); Thank thank = await _unitOfWork.thankRepository.SayThankAsync(currentUser, mapData, cancellationToken); return(_mapper.Map <ThankDTO>(thank)); }
public async Task <ThankDTO> GetLastThankAsync(Guid userId, CancellationToken cancellationToken) { User currentUser = await _unitOfWork.userRepository.GetCurrentUserAsync(userId, cancellationToken); Guid currentUserId = currentUser.Id; Thank thank = await _unitOfWork.thankRepository.GetLastThankAsync(currentUserId, cancellationToken); return(_mapper.Map <ThankDTO>(thank)); }
public async Task <Thank> SayThankAsync(User currentUser, Thank newThank, CancellationToken cancellationToken) { Guid guid = Guid.NewGuid(); newThank.FromUser = currentUser; newThank.Id = guid; newThank.AddedTime = DateTime.Now; await _context.Thanks.AddAsync(newThank, cancellationToken); await _context.SaveChangesAsync(); return(newThank); }
private void TestThank(ChromeDriver chrome, Thank thank, int idx) { string[] row = new string[] { (idx + 1).ToString(), "Chức năng gửi phản hồi", "Chưa có", "Bắt đầu" }; AddRowToDgv(row); IWebElement eleTemp = null; Thread.Sleep(waitTime); EditRowToDgv(ref row, "Chức năng gửi phản hồi", "Chưa có", "Đang chạy"); var eleGotoThank = chrome.FindElement(By.XPath("//span[. = 'Lời cảm ơn']")); eleGotoThank.Click(); if (thank.Context == "") { Thread.Sleep(waitTime); EditRowToDgv(ref row, "Chức năng gửi phản hồi", "Không nhập nội dung phản hồi", "Chạy thất bại"); var eleGotoWishes = chrome.FindElement(By.XPath("//span[. = 'Những điều ước']")); eleGotoWishes.Click(); } else if (thank.NumStar <= 0) { Thread.Sleep(waitTime); EditRowToDgv(ref row, "Chức năng gửi phản hồi", "Chưa đánh giá sao", "Chạy thất bại"); var eleGotoWishes = chrome.FindElement(By.XPath("//span[. = 'Những điều ước']")); eleGotoWishes.Click(); } else { Thread.Sleep(waitTime); SetDataForInputElement(chrome, "Nội dung phản hồi", "textarea", thank.Context); Thread.Sleep(waitTime); Thread.Sleep(waitTime); eleTemp = chrome.FindElement(By.XPath("//span[. = 'Đánh giá']")); eleTemp = eleTemp.FindElement(By.XPath("./..")); //eleTemp = eleTemp.FindElement(By.TagName("div")); var eleTempList = eleTemp.FindElements(By.TagName("button")); eleTempList[thank.NumStar - 1].Click(); eleTemp = chrome.FindElement(By.XPath("//span[. = 'Gửi phản hồi']")); eleTemp.Click(); EditRowToDgv(ref row, "Chức năng gửi phản hồi", "Không có lỗi", "Thành công"); } }
public async Task SayThank(string Token, string Text, Guid ToUserId, CancellationToken Cancel) { var Claims = HelperService.GetClaimsFromToken(Token, Key); var UserId = HelperService.GetIdFromToken(Claims); if (UserId == null) { throw new ArgumentNullException(); } var ThankBody = new Thank { FromUser = await UnitOfWork.UserRepository.GetById(new Guid(UserId), Cancel), Text = Text, ToUserId = ToUserId, Id = new Guid(), AddedTime = DateTime.Now.ToUniversalTime() }; await UnitOfWork.ThankRepository.Create(ThankBody, Cancel); await UnitOfWork.SaveChangesAsync(Cancel); }
private void GetThankList() { thankList.Clear(); string strTemp = ""; int intTemp = 0; Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(PATH_THANK); Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; try { int rowCount = xlRange.Rows.Count; int colCount = xlRange.Columns.Count; for (int i = 2; i <= rowCount; i++) { Thank thank = new Thank(); strTemp = xlRange.Cells[i, 2].Value2.ToString(); int.TryParse(strTemp, out intTemp); thank.NumStar = intTemp; if (xlRange.Cells[i, 3].Value2 == null) { strTemp = ""; } else { strTemp = xlRange.Cells[i, 3].Value2.ToString(); } thank.Context = strTemp; thankList.Add(thank); } Marshal.ReleaseComObject(xlApp); //cleanup GC.Collect(); GC.WaitForPendingFinalizers(); //rule of thumb for releasing com objects: // never use two dots, all COM objects must be referenced and released individually // ex: [somthing].[something].[something] is bad //release com objects to fully kill excel process from running in the background Marshal.ReleaseComObject(xlRange); Marshal.ReleaseComObject(xlWorksheet); //close and release xlWorkbook.Close(); Marshal.ReleaseComObject(xlWorkbook); //quit and release //xlApp.Quit(); } catch (Exception ex) { CommonFunc.ShowMessError(ex.ToString()); } finally { } }
public async Task <Thank> GetLastThankAsync(Guid currentUserId, CancellationToken cancellationToken) { Thank lastThank = await _context.Thanks.OrderByDescending(x => x.AddedTime).FirstOrDefaultAsync(x => x.ToUserId == currentUserId, cancellationToken); return(lastThank); }