Ejemplo n.º 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);
        }
Ejemplo n.º 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 }));
        }