/// <summary> /// /// </summary> /// <param name="userId">چه کاربری</param> /// <param name="title">با چه عنوانی</param> /// <param name="IsInvoice">پیش فاکتور است یا خیر</param> /// <param name="specialInvoice">ادمین به عنوان پیش فاکتور پیش فرض ثبت کرده یا خیر </param> /// <returns></returns> public async Task <int> AddFactor(int userId, string title, bool IsInvoice, bool specialInvoice) { var model = new ShopOrder() { Amount = await _shopProductRepository.CalculateCartPriceNumber(userId), CreateDate = DateTime.Now, IsSuccessed = false, UserId = userId, Title = title, IsInvoice = IsInvoice, PaymentAmount = await _shopProductRepository.CalculateCartPriceNumber(userId), IsSpecialInvoice = specialInvoice }; await AddAsync(model); var list = await DbContext.ShopProduct.Where(x => x.UserId == userId && !x.IsFinaly && !x.IsFactorSubmited).ToListAsync(); // مشخص کردن اینکه این سبد محصولات مربوط به کدام فاکتور می باشد await _shopProductRepository.ChangeStatus(list, model.Id); // در جدول مربوط به آدرس // شماره فاکتور را قرار میدهیم تا بعد بتوانیم از آن استفاده کنیم await _userAddressRepository.UpdateShopOrderId(model.Id, userId); return(model.Id); }
public async Task <int> CreatePaymentFactor(List <ShopProduct> list, int userId) { try { var tariff = CalculateTariff(userId) ?? 0; var model = new ShopOrder() { Amount = await _shopProductRepository.CalculateCartPriceNumber(userId), CreateDate = DateTime.Now, IsSuccessed = false, UserId = userId, TransferProductPrice = tariff, }; model.PaymentAmount = model.Amount + tariff; await AddAsync(model); // در جدول مربوط به آدرس // شماره فاکتور را قرار میدهیم تا بعد بتوانیم از آن استفاده کنیم await _userAddressRepository.UpdateShopOrderId(model.Id, userId); // مشخص کردن اینکه این سبد محصولات مربوط به کدام فاکتور می باشد await _shopProductRepository.ChangeStatus(list, model.Id); return(model.Id); } catch (Exception e) { throw new Exception(e.Message); } }