예제 #1
0
		private VisitorInitViewModel InitRequest()
		{
			VisitorInitViewModel vm = new VisitorInitViewModel();

			var onlineOps = OperatorService.GetOnlineOperator();

			List<string> departments = new List<string>();
			foreach (var op in onlineOps)
			{
				foreach (string d in op.Department.Split(','))
				{
					if (!departments.Contains(d.ToLower()))
						departments.Add(d.ToLower());
				}
			}

			vm.Departments = departments;
			vm.ChatOnline = onlineOps.Count() > 0;
			vm.NewChatRequest = new ChatRequest();

			return vm;
		}
예제 #2
0
		public ActionResult Session(VisitorInitViewModel data)
		{
			if (!ModelState.IsValid)
			{
				var vm = InitRequest();
				vm.NewChatRequest = data.NewChatRequest;

				return View(vm);
			}

			data.NewChatRequest.ChatId = Guid.NewGuid();
			data.NewChatRequest.Requested = DateTime.Now;
			data.NewChatRequest.VisitorIp = Request.UserHostAddress;
			data.NewChatRequest.VisitorUserAgent = Request.UserAgent;
			data.NewChatRequest.WasAccepted = false;

			ChatService.RequestChat(data.NewChatRequest);

			HttpCookie ck = new HttpCookie("lcsk_name");
			ck.Value = data.NewChatRequest.VisitorName;
			Response.Cookies.Add(ck);

			return RedirectToAction("Chat", new { id = data.NewChatRequest.ChatId });
		}