public void FSL_Container_ReadyReturn(string info) { JObject job = (JObject)JsonConvert.DeserializeObject(HttpUtility.UrlDecode(Server.UrlDecode(info))); int contId = SafeValue.SafeInt(job["contId"], 0); string Time = SafeValue.SafeString(job["Time"]); string Location = SafeValue.SafeString(job["Location"]); string user = SafeValue.SafeString(job["user"]); C2.CtmJobDet1Biz det1Bz = new C2.CtmJobDet1Biz(contId); C2.CtmJobDet1 det1 = det1Bz.getData(); bool status = false; string context = Common.StringToJson(""); if (det1 != null) { try { det1.WhsReadyInd = "Y"; det1.WhsReadyTime = Time; det1.WhsReadyLocation = Location; C2.Manager.ORManager.StartTracking(det1, Wilson.ORMapper.InitialState.Updated); C2.Manager.ORManager.PersistChanges(det1); status = true; #region lot alert string sql = string.Format(@"select ClientId,EmailAddress from CTM_JobDet1 as det1 left outer join CTM_Job as job on det1.JobNo=job.JobNo where det1.Id=@contId"); List <ConnectSql_mb.cmdParameters> list = new List <ConnectSql_mb.cmdParameters>(); list.Add(new ConnectSql_mb.cmdParameters("@contId", contId, SqlDbType.Int)); string client = ""; string EmailAddress = ""; DataTable dt = ConnectSql_mb.GetDataTable(sql, list); if (dt.Rows.Count > 0) { client = SafeValue.SafeString(dt.Rows[0]["ClientId"]); EmailAddress = SafeValue.SafeString(dt.Rows[0]["EmailAddress"]); } C2.CtmJobEventLog log = new C2.CtmJobEventLog(); log.Platform_isMobile(); log.Controller = user; log.ActionLevel_isCONT(contId); log.isAlert(client); log.setRemark(CtmJobEventLogRemark.Level.Container, -1, user + " set ready to return [" + Time + "]"); log.log(); #endregion C2.Email.SendEmail(EmailAddress, "[email protected],[email protected]", "", "TSL Customer Alert", "Dear Customer:Container:[" + det1.ContainerNo + "] is ready to return.", ""); context = "{\"Client\":\"" + client + "\",\"text\":\"" + det1.ContainerNo + " ready to return\"}"; } catch { } } Common.WriteJsonP(status, context); }