Exemplo n.º 1
0
 /// <summary>
 /// Convert QuoteStatus Entity  into QuoteStatus Object
 /// </summary>
 ///<param name="model">QuoteStatusViewModel</param>
 ///<param name="QuoteStatusEntity">DataAccess.QuoteStatus</param>
 ///<returns>QuoteStatusViewModel</returns>
 public static QuoteStatusViewModel ToViewModel(
     this DataAccess.QuoteStatus entity,
     QuoteStatusViewModel model)
 {
     model.SessionUserId     = entity.CreatedUserId;
     model.Id                = entity.Id;
     model.Name              = entity.Name;
     model.Discriminator     = entity.Discriminator;
     model.RequiresPayment   = entity.RequiresPayment;
     model.MessageTemplateId = entity.MessageTemplateId;
     model.MessageTemplate   = entity.MessageTemplate.ToViewModel(new MessageTemplateViewModel());
     return(model);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Convert QuoteStatus Object into QuoteStatus Entity
        /// </summary>
        ///<param name="model">QuoteStatus</param>
        ///<param name="QuoteStatusEntity">DataAccess.QuoteStatus</param>
        ///<returns>DataAccess.QuoteStatus</returns>
        public static DataAccess.QuoteStatus ToEntity(this QuoteStatusViewModel model,
                                                      DataAccess.QuoteStatus entity)
        {
            if (entity.Id == 0)
            {
                entity.CreatedUserId = model.SessionUserId;
            }
            else
            {
                entity.UpdatedUserId    = model.SessionUserId;
                entity.UpdatedTimestamp = DateTime.Now;
            }
            entity.Name              = model.Name;
            entity.Discriminator     = model.Discriminator;
            entity.RequiresPayment   = model.RequiresPayment;
            entity.MessageTemplateId = model.MessageTemplateId;

            return(entity);
        }
Exemplo n.º 3
0
        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);
        }