/// <summary> /// Convert Quote Entity into Quote Object /// </summary> ///<param name="model">QuoteViewModel</param> ///<param name="QuoteEntity">DataAccess.Quote</param> ///<returns>QuoteViewModel</returns> public static PayFastViewModel ToPayFastViewModel( this DataAccess.Quote entity, decimal totalAmount, SaveResult saveResult) { var payFastVieModel = new PayFastViewModel { SaveResult = saveResult, name_first = entity.QuoteUser.FirstName, name_last = entity.QuoteUser.Surname, email_address = entity.QuoteUser.Email, cell_number = entity.QuoteUser.ContactNo, m_payment_Id = entity.QuoteNo, amount = totalAmount, item_name = "Subscription", item_description = string.Empty, custom_int1 = entity.Id, email_confirmation = 1, confirmation_address = entity.QuoteUser.Email, signature = string.Empty }; return(payFastVieModel); }
public async Task <PayFastViewModel> SaveQuoteFromCart(string cartId, string sessionUserId) { var payFastVieModel = new PayFastViewModel(); QuoteStatusViewModel quoteStatus = await _quoteStatusBL.GetEntityByDiscr(OrderStatusRef.New); var quoteEntity = new DataAccess.Quote { QuoteNo = Guid.NewGuid().ToString().Substring(0, 8).ToUpper(), QuoteStatusId = quoteStatus.Id, FinYearId = _finYearBL.GetCurrentFinYearId(), CreatedUserId = sessionUserId, QuoteUserId = sessionUserId }; SaveResult saveResult = new SaveResult(); Dictionary <bool, string> dictionary = new Dictionary <bool, string>(); var cartList = _context.Cart .Include(a => a.ProductSize.Size) .Include(a => a.ProductSize.Product) .Include(a => a.Product) .Where(a => a.RecordId == cartId); try { this.GenerateOrderDetail(cartList, quoteEntity); saveResult = await AddEntity(quoteEntity); if (saveResult.IsSuccess) { saveResult = await EmptyCart(cartList); } if (saveResult.IsSuccess) { saveResult.Discriminator = quoteEntity.QuoteNo; saveResult.Id = quoteEntity.Id; quoteEntity = await _context.Quote.Include(a => a.QuoteUser).IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == quoteEntity.Id); payFastVieModel = new PayFastViewModel { SaveResult = saveResult, name_first = quoteEntity.QuoteUser.FirstName, name_last = quoteEntity.QuoteUser.Surname, email_address = quoteEntity.QuoteUser.Email, cell_number = quoteEntity.QuoteUser.ContactNo, m_payment_Id = quoteEntity.QuoteNo, amount = cartList.Sum(a => a.Product.Price), item_name = "Order", item_description = string.Empty, custom_int1 = quoteEntity.Id, email_confirmation = 1, confirmation_address = quoteEntity.QuoteUser.Email, signature = string.Empty, FullName = quoteEntity.QuoteUser.FirstName + " " + quoteEntity.QuoteUser.Surname, MessageTemplate = quoteEntity.QuoteStatus.MessageTemplate.ToViewModel(new MessageTemplateViewModel()) }; } //if(saveResult.IsSuccess) //{ // //queuemail // var fullName = quoteEntity.QuoteUser.People.FirstOrDefault().Title.Name + " " + quoteEntity.QuoteUser.People.FirstOrDefault().FirstName + " " + quoteEntity.QuoteUser.People.FirstOrDefault().Surname; // _queuedEmail.QueueQuote(quoteEntity.QuoteStatu.MessageTemplate, quoteEntity.QuoteUser.Email, fullName,saveResult.ByteArray); //} } catch (DbUpdateException upDateEx) { var results = upDateEx.GetSqlerrorNo(); string msg = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg; saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult(); throw upDateEx; } catch (Exception ex) { saveResult.Message = CrudError.SaveErrorMsg; throw ex; } return(payFastVieModel); }