public IHttpActionResult GetUserUseSessionList(NumberOfRecord <UserCredential> model)
        {
            StringBuilder traceLog = null;
            ServiceResponse <TotalSession <List <UsedSessionsVM> > > objResponse = null;

            try
            {
                traceLog = new StringBuilder();
                traceLog.AppendLine("Start: GetUserUseSessionList() Request Data:-UserCredId-" + model.Param.UserCredId);
                objResponse              = new ServiceResponse <TotalSession <List <UsedSessionsVM> > >();
                objResponse.jsonData     = TrainingSessionApiBL.GetUsersUseSessionList(model.Param.UserCredId, model.Param.TrainingType, model.StartIndex, model.EndIndex);
                objResponse.IsResultTrue = true;
                return(Ok(objResponse));
            }
            catch (Exception ex)
            {
                LogManager.LogManagerInstance.WriteErrorLog(ex);
                return(BadRequest(ex.Message));
            }
            finally
            {
                traceLog.AppendLine("End:GetUserUseSessionList() Response Result Status-" + objResponse.IsResultTrue + ",Posted DateTime-" + DateTime.Now.ToLongDateString());
                LogManager.LogManagerInstance.WriteTraceLog(traceLog);
                traceLog = null;
            }
        }
        public IHttpActionResult GetUserSesionNotes(NotesUsedSessionVM model)
        {
            StringBuilder traceLog = null;
            ServiceResponse <NotesUsedSessionVM> objResponse = null;

            try
            {
                traceLog = new StringBuilder();
                traceLog.AppendLine("Start: GetUserSesionNotes() Request Data:-NotesUsedSessionVM-" + model.UsedSessionNoteId);
                objResponse              = new ServiceResponse <NotesUsedSessionVM>();
                objResponse.jsonData     = TrainingSessionApiBL.GetUsedSessionNotes(model);
                objResponse.IsResultTrue = true;
                return(Ok(objResponse));
            }
            catch (Exception ex)
            {
                LogManager.LogManagerInstance.WriteErrorLog(ex);
                return(BadRequest(ex.Message));
            }
            finally
            {
                traceLog.AppendLine("End:GetUserSesionNotes() Response Result Status-" + objResponse.IsResultTrue + ",Posted DateTime-" + DateTime.Now.ToLongDateString());
                LogManager.LogManagerInstance.WriteTraceLog(traceLog);
                traceLog = null;
            }
        }
        public IHttpActionResult UpdateUseSessionTrack(UsedSessionsVM model)
        {
            StringBuilder          traceLog    = null;
            ServiceResponse <long> objResponse = null;

            try
            {
                traceLog = new StringBuilder();
                traceLog.AppendLine("Start: UpdateUseSessionWithTrainer() Request Data:-UseSessionId-" + model.UseSessionId + ",IsTracNotes-" + model.IsTracNotes);
                objResponse              = new ServiceResponse <long>();
                objResponse.jsonData     = TrainingSessionApiBL.UpdateUseSessionWithTrainer(model);
                objResponse.IsResultTrue = true;
                return(Ok(objResponse));
            }
            catch (Exception ex)
            {
                LogManager.LogManagerInstance.WriteErrorLog(ex);
                return(BadRequest(ex.Message));
            }
            finally
            {
                traceLog.AppendLine("End:UpdateUseSessionWithTrainer() Response Result Status-" + objResponse.IsResultTrue + ",Posted DateTime-" + DateTime.Now.ToLongDateString());
                LogManager.LogManagerInstance.WriteTraceLog(traceLog);
                traceLog = null;
            }
        }
        /// <summary>
        /// Update UserSession Details wit Team
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        /// <devdoc>
        /// Developer Name - Irshad Ansari
        /// Date - 05/16/2016
        /// </devdoc>[HttpPost]
        public IHttpActionResult UpdateUserSessionDetailsWithTrainer(UserSessionDetailVM model)
        {
            StringBuilder          traceLog    = null;
            ServiceResponse <bool> objResponse = null;

            try
            {
                traceLog = new StringBuilder();
                traceLog.AppendLine("Start: UpdateUserSessionDetailsWithTrainer() Request Data:-UserId-" + model.UserId + ",UserType-" + model.UserType);
                objResponse              = new ServiceResponse <bool>();
                objResponse.jsonData     = TrainingSessionApiBL.UpdateUserSessionDetailsWithTrainer(model.UserCredId, model.RemaingNumberOfSession);
                objResponse.IsResultTrue = true;
                return(Ok(objResponse));
            }
            catch (Exception ex)
            {
                LogManager.LogManagerInstance.WriteErrorLog(ex);
                return(BadRequest(ex.Message));
            }
            finally
            {
                traceLog.AppendLine("End:UpdateUserSessionDetailsWithTrainer() Response Result Status-" + objResponse.IsResultTrue + ",Posted DateTime-" + DateTime.Now.ToLongDateString());
                LogManager.LogManagerInstance.WriteTraceLog(traceLog);
                traceLog = null;
            }
        }
        public IHttpActionResult PurchaseSession(PurchaseTraingSessionVM model)
        {
            StringBuilder          traceLog    = null;
            ServiceResponse <bool> objResponse = null;

            try
            {
                traceLog = new StringBuilder();
                traceLog.AppendLine("Start: PurchaseTraingSession() Request Data:-TrainerId-" + model.TrainerId + ",UserCredID-" + model.UserCredId + ",NumberOfSession-" + model.NumberOfSession + ",Amount-" + model.Amount);
                objResponse = new ServiceResponse <bool>();
                if (model.Amount <= 0)
                {
                    objResponse.IsResultTrue = false;
                    objResponse.ErrorMessage = Message.InvalidTrainingSessionAmount;
                }
                else if (model.NumberOfSession <= 0)
                {
                    objResponse.IsResultTrue = false;
                    objResponse.ErrorMessage = Message.InvalidNumberOfTrainingSession;
                }
                else
                {
                    objResponse.jsonData     = TrainingSessionApiBL.PurchaseSessionToUser(model);
                    objResponse.IsResultTrue = true;
                }
                return(Ok(objResponse));
            }
            catch (Exception ex)
            {
                LogManager.LogManagerInstance.WriteErrorLog(ex);
                return(BadRequest(ex.Message));
            }
            finally
            {
                traceLog.AppendLine("End:PurchaseTraingSession() Response Result Status-" + objResponse.IsResultTrue + ",Posted DateTime-" + DateTime.Now.ToLongDateString());
                LogManager.LogManagerInstance.WriteTraceLog(traceLog);
                traceLog = null;
            }
        }