public async Task <IActionResult> CouponPdf(string couponId, string userId) { var currentUserCoupon = _couponService.GetUserCoupon(userId, new Guid(couponId)); var currentCoupon = await _couponService.GetCouponById(new Guid(couponId)); var model = CouponGenerator.ConvertUserCouponToPdfViewModel(currentUserCoupon, currentCoupon); return(View(model)); }
public async Task <RepositoryActionResult <CouponManagement> > CreateAsync(CouponManagement model, string userId, int quantity, int length) { try { //throw new Exception("manuel hata"); var service = new CouponGenerator(); if (!model.IsBulk) { var code = model.Codes.FirstOrDefault().Code; var existing = await _Db.CouponCodes.Where(x => x.Code == code).FirstOrDefaultAsync(); if (existing != null) { return(new RepositoryActionResult <CouponManagement> { Status = RepositoryActionStatus.Found, Message = "Veritabanına kayıtlı böyle bir kod bulundu: " + code }); } } model.CreatedAt = DateTime.UtcNow; model.CreatedBy = userId; await _Db.CouponManagements.AddAsync(model); var resultInsertManagement = await _Db.SaveChangesAsync(); if (model.IsBulk) { if (resultInsertManagement > 0) { var remainingCodes = length; var totalCodes = new List <string>(); while (totalCodes.Count != quantity) { totalCodes.AddRange(service.GenerateCode(quantity, remainingCodes)); totalCodes = service.RemoveDublicateCode(totalCodes, out int deletedCount); remainingCodes = deletedCount; } var someCollectionOfEntitiesToInsert = totalCodes.Select(x => new CouponCode { CouponManagementId = model.Id, Code = x, IsActive = true, IsUsed = false }).ToList(); await _Db.BulkInsertAsync(someCollectionOfEntitiesToInsert); } } return(new RepositoryActionResult <CouponManagement> { Entity = model, Status = RepositoryActionStatus.Created }); } catch (Exception ex) { return(new RepositoryActionResult <CouponManagement> { Status = RepositoryActionStatus.Error, Message = ex.Message + ex.InnerException == null ? "" : ex.InnerException.Message }); } }