public void Edit(TruckExpenseModel truckExpenseModel)
        {
            try
            {
                Common.DAL.TruckExpens truckExpens = dbContext.TruckExpenses.Where(x => x.Id == truckExpenseModel.Id).FirstOrDefault();

                if (truckExpens == null)
                {
                    base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                    return;
                }

                if (Validate(truckExpenseModel))
                {
                    return;
                }

                TruckExpenseMapper.Map(dbContext, truckExpenseModel, truckExpens);

                base.SaveChanges();

                truckExpenseModel.AddSuccess(Resources.TruckExpenseUpdatedSuccessfully, LookUps.SuccessType.Full);
            }
            catch (Exception ex)
            {
                base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }
        public void Delete(TruckExpenseModel truckExpenseModel)
        {
            try
            {
                if (ValidateDelete(truckExpenseModel))
                {
                    return;
                }

                Common.DAL.TruckExpens truckExpens = dbContext.TruckExpenses.Where(x => x.Id == truckExpenseModel.Id).FirstOrDefault();

                if (truckExpens == null)
                {
                    base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                    return;
                }

                dbContext.TruckExpenses.Remove(truckExpens);

                base.SaveChanges();

                truckExpenseModel.AddSuccess(Resources.TruckExpenseDeletedSuccessfully, LookUps.SuccessType.Full);
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException)
            {
                base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Business, null, Resources.RefrenceDeleteError);
                base.UndoUpdates();
            }
            catch (Exception ex)
            {
                base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }
        public void GetTruckExpenseModel(TruckExpenseModel truckExpenseModel)
        {
            try
            {
                Common.DAL.TruckExpens truckExpens = dbContext.TruckExpenses.Where(x => x.Id == truckExpenseModel.Id).FirstOrDefault();

                if (truckExpens == null)
                {
                    base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Critical, null, Resources.NotFound);
                }
                else
                {
                    TruckExpenseMapper.Map(dbContext, truckExpens, truckExpenseModel);
                }
            }
            catch (Exception ex)
            {
                base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Critical, ex);
            }
        }
        public void Create(TruckExpenseModel truckExpenseModel)
        {
            try
            {
                if (Validate(truckExpenseModel))
                {
                    return;
                }

                using (var transaction = dbContext.Database.BeginTransaction())
                {
                    try
                    {
                        Common.DAL.TruckExpens truckExpens = new Common.DAL.TruckExpens();
                        TruckExpenseMapper.Map(dbContext, truckExpenseModel, truckExpens);

                        truckExpens.Id = Guid.NewGuid().ToString();

                        dbContext.TruckExpenses.Add(truckExpens);

                        base.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }

                    truckExpenseModel.AddSuccess(Resources.TruckExpenseAddedSuccessfully, LookUps.SuccessType.Full);
                }
            }
            catch (Exception ex)
            {
                base.HandleError(truckExpenseModel, CommonLayer.LookUps.ErrorType.Exception, ex);
                base.UndoUpdates();
            }
        }