/// <summary> /// get affiliate ConversionRate as Pie Chart for report /// </summary> /// <returns></returns> public ActionResult ConversionRate() { StiReport stiReport = new StiReport(); stiReport.Load(StiNetCoreHelper.MapPath(this, "wwwroot/Reports/ConversionRateReport.mrt")); var affiliates = _uow.AffiliateRepo.Get(d => d.Email == UserExtention.GetUserMail(User)).FirstOrDefault(); var registeredSells = _uow.SellRepo.Get(d => d.AffiliateCode == affiliates.Code && d.PayStatus == PayStatus.Registered); stiReport["RegisteredSell"] = registeredSells != null?registeredSells.Sum(d => d.Price) : 0; var AllSells = _uow.SellRepo.Get(d => d.AffiliateCode == affiliates.Code && d.PayStatus != PayStatus.Registered); stiReport["AllSellValue"] = AllSells != null?AllSells.Sum(d => d.Price) : 0; return(StiNetCoreViewer.GetReportResult(this, stiReport)); }
public async Task <IActionResult> Create(SupportDto supportDto) { if (ModelState.IsValid) { try { if (supportDto.Attachment != null) { var File = Guid.NewGuid().ToString() + Path.GetExtension(supportDto.Attachment.FileName); string savePath = Path.Combine( Directory.GetCurrentDirectory(), "wwwroot/supportImages", File ); string DirectoryPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/supportImages"); Upload uploader = new Upload(); supportDto.File = Request.Scheme + "://" + Request.Host.Value + "/supportImages/" + File; await uploader.UploadImage(savePath, DirectoryPath, supportDto.Attachment); } var model = _mapper.Map <Tb_Support>(supportDto); model.SenderUserId = UserExtention.GetUserId(User); model.Email = UserExtention.GetUserMail(User); model.SupportPosition = SupportPosition.Pending; await _uow.SupportRepo.InsertAsync(model); await _uow.SaveAsync(); // Call signalr api for show notification in admin panel supportDto.Id = model.Id; if (!await SendDataToSignalR(model)) // if send notif with signalr has failed { return(Json(new { success = "Support messages added successfully, But The send notification to admin failed \n" })); } return(View(supportDto)); } catch (Exception e) { return(Json(new { error = "The operation failed \n" + e.Message })); } } return(View(supportDto)); }
/// <summary> /// show dashboard items as ajax json by DateTime parameter /// </summary> /// <param name="filterValue"></param> /// <returns></returns> public JsonResult GetDashboardActivities(int filterValue = 0) { var userPurchases = _mapper.Map <IEnumerable <SellDto> >(_uow.SellRepo.GetPurchasesOnDashboard(5, UserExtention.GetUserMail(User), filterValue)); var registered = filterValue == 0 ? _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus == PayStatus.Registered) : _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus == PayStatus.Registered && d.CreateAt > DateTime.Now.AddDays(-filterValue)); var RegisteredCount = registered == null ? 0 : registered.Count(); var purchases = filterValue == 0 ? _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus != PayStatus.Registered) : _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus != PayStatus.Registered && d.CreateAt > DateTime.Now.AddDays(-filterValue)); var SumPurchases = purchases != null?purchases.Sum(d => d.Price) : 0; var CountPurchases = purchases != null?purchases.Count() : 0; return(Json(new { UserPurchases = userPurchases, RegisteredCount = RegisteredCount, SumPurchases = SumPurchases, PurchasesCount = CountPurchases, })); }
//// <summary> /// show list view in View as Datatable jquery /// </summary> /// <returns></returns> public IActionResult List() { try { var dtValues = SetDataTableRequest(); int recordsTotal = 0; var data = _uow.SellRepo.AffiliateCustomers(dtValues.draw, dtValues.length, dtValues.sortColumn, dtValues.sortColumnDirection, dtValues.searchValue, dtValues.pageSize, dtValues.skip, ref recordsTotal, UserExtention.GetUserMail(User)); List <SellDto> list = new List <SellDto>(); foreach (var email in data) { var model = new SellDto() { Email = email }; list.Add(model); } dtValues.recordsTotal = recordsTotal; return(Json(new AjaxResult { draw = dtValues.draw, recordsFiltered = dtValues.recordsTotal, recordsTotal = dtValues.recordsTotal, data = list })); } catch (Exception ex) { return(Json("error")); } }
/// <summary> /// show list view in View as Datatable jquery /// </summary> /// <returns></returns> public IActionResult List() { try { var dtValues = SetDataTableRequest(); int recordsTotal = 0; var data = _mapper.Map <List <SellDto> >(_uow.SellRepo.Filter(dtValues.draw, dtValues.length, dtValues.sortColumn, dtValues.sortColumnDirection, dtValues.searchValue, dtValues.pageSize, dtValues.skip, ref recordsTotal, UserExtention.GetUserMail(User))); dtValues.recordsTotal = recordsTotal; return(Json(new AjaxResult { draw = dtValues.draw, recordsFiltered = dtValues.recordsTotal, recordsTotal = dtValues.recordsTotal, data = data })); } catch (Exception ex) { return(Json("error")); } }
/// <summary> /// show dashboard items as ajax json by DateTime parameter /// </summary> /// <param name="filterValue"></param> /// <returns></returns> public JsonResult GetDashboardActivities(int filterValue = 0) { string affiliateCode = ""; var AllAffiliatesells = _mapper.Map <IEnumerable <SellDto> >(_uow.SellRepo.GetSellOnDashboard(5, UserExtention.GetUserId(User), ref affiliateCode, filterValue)); var registered = filterValue == 0 ? _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus == PayStatus.Registered) : _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus == PayStatus.Registered && d.CreateAt > DateTime.Now.AddDays(-filterValue)); ViewBag.Registered = registered == null ? 0 : registered.Count(); var Allsells = filterValue == 0 ? _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode) : _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.CreateAt > DateTime.Now.AddDays(-filterValue)); var AllsellCount = Allsells == null ? 0 : Allsells.Count(); var sumSell = filterValue == 0 ? _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus != PayStatus.Registered) : _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus != PayStatus.Registered && d.CreateAt > DateTime.Now.AddDays(-filterValue)); var countSell = sumSell == null ? 0 : sumSell.Count(); ViewBag.sumSell = sumSell == null ? 0 : sumSell.Sum(d => d.Price); var userSells = filterValue == 0 ? _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus != PayStatus.Registered) .GroupBy(m => m.ProductName) .Select(d => new ProductSellDto { ProductName = d.Key, SellCount = d.Count() }) .OrderBy(x => x.ProductName).ToList() : _uow.SellRepo.Get(d => d.AffiliateCode == affiliateCode && d.PayStatus != PayStatus.Registered && d.CreateAt > DateTime.Now.AddDays(-filterValue)) .GroupBy(m => m.ProductName) .Select(d => new ProductSellDto { ProductName = d.Key, SellCount = d.Count() }) .OrderBy(x => x.ProductName).ToList(); ViewBag.Sells = userSells.Where(d => d.ProductName != "").Count(); var comision = _uow.AffiliateRepo.Get(d => d.Email == UserExtention.GetUserMail(User)).FirstOrDefault(); ViewBag.Comision = comision == null ? 0 : comision.comision; var click = _uow.AffiliateRepo.Get(d => d.Email == UserExtention.GetUserMail(User)).FirstOrDefault(); ViewBag.Clicks = click == null ? 0 : click.Click; ViewBag.CommisionAmount = (ViewBag.sumSell * ViewBag.Comision) / 100; if (countSell == 0 && AllsellCount == 0) { ViewBag.Conversion = 0; } else { ViewBag.Conversion = countSell / AllsellCount; } return(Json(new { AllAffiliatesells = AllAffiliatesells, Registered = ViewBag.Registered, SumSell = ViewBag.sumSell, Sells = ViewBag.Sells, Comistion = ViewBag.Comision, Clicks = ViewBag.Clicks, CommisionAmount = ViewBag.CommisionAmount, Conversion = ViewBag.Conversion })); }
/// <summary> /// get UserPurchases for report /// </summary> /// <returns></returns> public ActionResult UserPurchases() { try { var model = new SellReportDto(); if (TempData["StartDate"] != null) { model.StartDate = DateTime.Parse(TempData["StartDate"].ToString()); } if (TempData["EndDate"] != null) { model.EndDate = DateTime.Parse(TempData["EndDate"].ToString()); } if (TempData["FilterType"] != null) { model.FilterType = (FilterType)(TempData["FilterType"]); } if (TempData["SkipDate"] != null) { model.SkipDate = (bool)(TempData["SkipDate"]); } StiReport stiReport = new StiReport(); stiReport.Load(StiNetCoreHelper.MapPath(this, "wwwroot/Reports/UserBuyReport.mrt")); IEnumerable <Tb_Sell> userPurchases = null; switch (model.FilterType) { case FilterType.All: userPurchases = !model.SkipDate ? _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.CreateAt >= model.StartDate && d.CreateAt <= model.EndDate) : _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User)); break; case FilterType.OnlyRegister: userPurchases = !model.SkipDate ? _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus == PayStatus.Registered && d.CreateAt >= model.StartDate && d.CreateAt <= model.EndDate) : _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus == PayStatus.Registered); break; case FilterType.Sells: userPurchases = !model.SkipDate ? _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus != PayStatus.Registered && d.CreateAt >= model.StartDate && d.CreateAt <= model.EndDate) : _uow.SellRepo.Get(d => d.Email == UserExtention.GetUserMail(User) && d.PayStatus != PayStatus.Registered); break; default: break; } var sumSell = userPurchases.Sum(d => d.Price); stiReport["SumBuy"] = sumSell.ToString("N0"); stiReport.RegData("userPurchasesDT", userPurchases); return(StiNetCoreViewer.GetReportResult(this, stiReport)); } catch (Exception ex) { return(null); } }