public HttpResponseMessage CreateVisitForPO([FromBody]CreateVisitForPORequest jobRequest)
 {
     Logger.Debug("Inside JM Controller- CreateVisitForPO");
     Logger.Debug("Request: " + new JavaScriptSerializer().Serialize(jobRequest));
     MobileJob lResponse = new MobileJob();
     ErrorResponse error = new ErrorResponse();
     var response = new Dictionary<string, object>();
     try
     {
         string SessionID = Guid.Empty.ToString();
         if (Request.Headers != null)
         {
             SessionID = Request.Headers.LastOrDefault().Value.First();
             Logger.Debug("SessionID: " + SessionID.ToString());
             if (_IJMServer.ValidateUser(SessionID))
             {
                 Guid UserGUID = _IJMServer.GetUserGUID(SessionID);
                 int errorCode = 0;
                 lResponse = _IJMServer.CreateVisitForPO(jobRequest, UserGUID, ref errorCode);
                 if (lResponse != null && errorCode == 0)
                 {
                     response.Add("Jobs", lResponse);
                     Logger.Debug("Response: " + new JavaScriptSerializer().Serialize(lResponse));
                     return Request.CreateResponse(HttpStatusCode.OK, response);
                 }
                 else if (errorCode == -1)
                 {
                     error.ErrorCode = HttpStatusCode.MultipleChoices;
                     error.ErrorMessage = "Unable to create job, Store information is not defined";
                     response.Add("ErrorResponse", error);
                     return Request.CreateResponse(HttpStatusCode.BadRequest, response);
                 }
                 else if (errorCode == -2)
                 {
                     error.ErrorCode = HttpStatusCode.MultipleChoices;
                     error.ErrorMessage = "Unable to create job, Customer information is not defined";
                     response.Add("ErrorResponse", error);
                     return Request.CreateResponse(HttpStatusCode.BadRequest, response);
                 }
                 else
                 {
                     error.ErrorCode = HttpStatusCode.MultipleChoices;
                     error.ErrorMessage = "Unable to create job, not able to get PO details";
                     // error.ErrorMessage = "Unable to create job, as a job already in progress for the PO";
                     response.Add("ErrorResponse", error);
                     return Request.CreateResponse(HttpStatusCode.BadRequest, response);
                 }
             }
             else
             {
                 error.ErrorCode = HttpStatusCode.Forbidden;
                 error.ErrorMessage = "Session has expired, please login again";
                 response.Add("ErrorResponse", error);
                 return Request.CreateResponse(HttpStatusCode.Forbidden, response);
             }
         }
         else
         {
             error.ErrorCode = HttpStatusCode.BadRequest;
             error.ErrorMessage = "Failure";
             response.Add("ErrorResponse", error);
             return Request.CreateResponse(HttpStatusCode.BadRequest, response);
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex.Message);
         error.ErrorCode = HttpStatusCode.InternalServerError;
         error.ErrorMessage = "Failure: " + ex.Message.ToString();
         response.Add("ErrorResponse", error);
         return Request.CreateResponse(HttpStatusCode.InternalServerError, response);
     }
 }
        public HttpResponseMessage CreateJobForCustomerStop([FromBody]CreateJobForCustomerStopRequest jobRequest)
        {
            //StringBuilder lretString = new StringBuilder();
            Logger.Debug("Inside JM Controller- CreateJobForCustomerStop");
            Logger.Debug("Request: " + new JavaScriptSerializer().Serialize(jobRequest));
            MobileJob lResponse = new MobileJob();
            ErrorResponse error = new ErrorResponse();
            var response = new Dictionary<string, object>();
            int errorCode = 0;
            try
            {
                string SessionID = Guid.Empty.ToString();
                // lretString.Append("[1: Sesseion Initialized]");
                if (Request.Headers != null)
                {

                    // lretString.Append(" [2: Header is not null: Actual Header is :]" + Request.Headers.ToString() + "");
                    //SessionID = Request.Headers.LastOrDefault().Value.First();
                    SessionID = jobRequest.SessionGUID;

                    //lretString.Append(" [3: Sesseion ID" + SessionID + "]");
                    Logger.Debug("SessionID: " + SessionID.ToString());
                    if (_IJMServer.ValidateUser(SessionID))
                    {

                        //lretString.Append(" [4: Valid Sesseion ID" + SessionID + "]");
                        Guid UserGUID = _IJMServer.GetUserGUID(SessionID);
                        //lretString.Append(" [4.1: Valid User ID" + UserGUID + "]");
                        lResponse = _IJMServer.CreateJobForCustomerStop(jobRequest, UserGUID, ref errorCode);
                        //lretString.Append(" [4.2: Error Code" + errorCode + "]");
                        if (lResponse != null)
                        {
                            //error.ErrorMessage = "Success. retStr : " + lretString.ToString();
                            // response.Add("ErrorResponse", error);

                            response.Add("Jobs", lResponse);
                            Logger.Debug("Response: " + new JavaScriptSerializer().Serialize(lResponse));
                            return Request.CreateResponse(HttpStatusCode.OK, response);
                        }
                        else
                        {
                            error.ErrorCode = HttpStatusCode.BadRequest;
                            if (errorCode == 1)
                                error.ErrorMessage = "Failure: Managers doesn't belong to this store";
                            else
                                error.ErrorMessage = "Failure: Invalid Store ID";
                            response.Add("ErrorResponse", error);
                            return Request.CreateResponse(HttpStatusCode.BadRequest, response);
                        }
                    }
                    else
                    {

                        //lretString.Append(" [5: Invalid Sesseion ID" + SessionID + "]");
                        //error.ErrorMessage = "Session has expired, please login again. retStr : " + lretString.ToString();
                        error.ErrorCode = HttpStatusCode.Forbidden;
                        error.ErrorMessage = "Session has expired, please login again";
                        response.Add("ErrorResponse", error);
                        return Request.CreateResponse(HttpStatusCode.Forbidden, response);
                    }
                }
                else
                {

                    // lretString.Append(" [6: Header is  null]");
                    //error.ErrorMessage = "Failure " + lretString.ToString();
                    error.ErrorCode = HttpStatusCode.BadRequest;
                    error.ErrorMessage = "Failure";
                    response.Add("ErrorResponse", error);
                    return Request.CreateResponse(HttpStatusCode.BadRequest, response);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                // lretString.Append(" [7: Error " + ex.Message + "]");
                //error.ErrorMessage = "Failure " + lretString.ToString();
                error.ErrorCode = HttpStatusCode.InternalServerError;
                error.ErrorMessage = "Failure";
                response.Add("ErrorResponse", error);
                return Request.CreateResponse(HttpStatusCode.InternalServerError, response);
            }
        }