public IHttpActionResult SaveComType([FromBody] JObject data)
        {
            try
            {
                string commisionType = !string.IsNullOrEmpty(data.SelectToken("CommisionType").Value <string>()) ? data.SelectToken("CommisionType").Value <string>() : string.Empty;
                int    userID        = !string.IsNullOrEmpty(data.SelectToken("UserID").Value <string>()) ? Convert.ToInt32(data.SelectToken("UserID").Value <string>()) : 0;

                if (!manageCommisionStructure.IsCommisionTypeAvailable(null, commisionType))
                {
                    CommisionTypeVM commisionTypeVM = new CommisionTypeVM();
                    commisionTypeVM.CommisionTypeName = commisionType;
                    commisionTypeVM.CreatedBy         = userID;

                    bool status = manageCommisionStructure.SaveCommisionType(commisionTypeVM);

                    if (status)
                    {
                        return(Json(new { status = true, message = "Successfully Saved" }));
                    }
                    else
                    {
                        return(Json(new { status = false, message = "Save Failed" }));
                    }
                }
                else
                {
                    return(Json(new { status = false, message = "Commission Type already exists" }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { status = false, message = "Unknown error occurred" }));
            }
        }
        public bool UpdateCommisionType(CommisionTypeVM commisionTypeVM)
        {
            using (var dbTransaction = unitOfWork.dbContext.Database.BeginTransaction())
            {
                try
                {
                    tblCommisionType commisionType = unitOfWork.TblCommisionTypeRepository.GetByID(commisionTypeVM.CommisionTypeID);
                    commisionType.CommisionType = commisionTypeVM.CommisionTypeName;
                    commisionType.ModifiedDate  = DateTime.Now;
                    commisionType.ModifiedBy    = commisionTypeVM.ModifiedBy;
                    unitOfWork.TblCommisionTypeRepository.Update(commisionType);
                    unitOfWork.Save();

                    //Complete the Transaction
                    dbTransaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    //Roll back the Transaction
                    dbTransaction.Rollback();
                    return(false);
                }
            }
        }
        public List <CommisionTypeVM> GetAllCommisionTypes()
        {
            try
            {
                var commisionTypeData = unitOfWork.TblCommisionTypeRepository.Get().ToList();

                List <CommisionTypeVM> commisionTypeList = new List <CommisionTypeVM>();

                foreach (var commisionType in commisionTypeData)
                {
                    CommisionTypeVM commisionTypeVM = new CommisionTypeVM();
                    commisionTypeVM.CommisionTypeID   = commisionType.CommisionTypeID;
                    commisionTypeVM.CommisionTypeName = commisionType.CommisionType;
                    commisionTypeVM.CreatedDate       = commisionType.CreatedDate != null?commisionType.CreatedDate.ToString() : string.Empty;

                    commisionTypeVM.ModifiedDate = commisionType.ModifiedDate != null?commisionType.ModifiedDate.ToString() : string.Empty;

                    commisionTypeVM.CreatedBy = commisionType.CreatedBy != null?Convert.ToInt32(commisionType.CreatedBy) : 0;

                    commisionTypeVM.ModifiedBy = commisionType.ModifiedBy != null?Convert.ToInt32(commisionType.ModifiedBy) : 0;

                    commisionTypeList.Add(commisionTypeVM);
                }

                return(commisionTypeList);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public CommisionTypeVM GetCommisionTypeByID(int commisionTypeID)
        {
            try
            {
                tblCommisionType commisionTypeData = unitOfWork.TblCommisionTypeRepository.GetByID(commisionTypeID);

                CommisionTypeVM commisionTypeVM = new CommisionTypeVM();
                commisionTypeVM.CommisionTypeID   = commisionTypeData.CommisionTypeID;
                commisionTypeVM.CommisionTypeName = commisionTypeData.CommisionType;
                commisionTypeVM.CreatedDate       = commisionTypeData.CreatedDate != null?commisionTypeData.CreatedDate.ToString() : string.Empty;

                commisionTypeVM.ModifiedDate = commisionTypeData.ModifiedDate != null?commisionTypeData.ModifiedDate.ToString() : string.Empty;

                commisionTypeVM.CreatedBy = commisionTypeData.CreatedBy != null?Convert.ToInt32(commisionTypeData.CreatedBy) : 0;

                commisionTypeVM.ModifiedBy = commisionTypeData.ModifiedBy != null?Convert.ToInt32(commisionTypeData.ModifiedBy) : 0;

                return(commisionTypeVM);
            }
            catch (Exception ex)
            {
                throw;
            }
        }