예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #4
0
        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");
            }
        }
예제 #5
0
        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);
        }
예제 #6
0
        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
            {
            }
        }
예제 #7
0
        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);
        }