コード例 #1
0
        public ActionResult Add()
        {
            int id          = CECRequest.GetQueryInt("id", 0);
            var articleInfo = ArticleService.GetById(id);

            //初始化栏目类别
            var allColumnList = ColumnService.List().ToList();
            var dropdownList  = new List <ColumnInfo>();

            ColumnService.BuildListForTree(dropdownList, allColumnList, 0);
            ViewBag.ColumnDropDownList = dropdownList;

            //输出技术分类
            ViewBag.TechList = TechService.List().Where(m => m.IsDeleted == false);
            //输出行业分类
            ViewBag.IndustryList = IndustryService.List().Where(m => m.IsDeleted == false);

            //已选择的技术分类和行业分类
            ViewBag.SelectTechList     = ArticleService.Article2CategoryListByArticleIdAndType(articleInfo.Id, CatType.Tech);
            ViewBag.SelectIndustryList = ArticleService.Article2CategoryListByArticleIdAndType(articleInfo.Id, CatType.Industry);

            string companyName = string.Empty;

            if (articleInfo.CompanyId > 0)
            {
                //对CompanyName进行赋值
                //数据库中只保存CompanyId,没有保存CompanyName,只能在这里处理一下
                companyName = MemberService.GetBaseCompanyInfo(articleInfo.CompanyId).CompanyName;
            }
            ViewBag.CompanyName = companyName;

            return(View(articleInfo));
        }
コード例 #2
0
        public ActionResult ChannelList(string alias)
        {
            //根据别名获得技术分类详细信息
            var techModel = TechService.GetTechInfoByAlias(alias);

            if (techModel.Id == 0 || techModel.IsDeleted)
            {
                return(Content("Argument error."));
            }
            //获得栏目ID
            int catId   = CECRequest.GetQueryInt("catid", 0);
            var catInfo = ColumnService.GetById(catId);

            int pageIndex = CECRequest.GetQueryInt("page", 1);

            var articleList = ArticleService.List(new Models.ArticleSearchSetting()
            {
                PageIndex = pageIndex,
                ColumnIds = new int[] { catId },
                TechIds   = new int[] { techModel.Id },
                IsDeleted = false
            });

            ViewBag.TechInfo    = techModel;
            ViewBag.ColumnInfo  = catInfo;
            ViewBag.ArticleList = articleList;
            return(View());
        }
コード例 #3
0
        public void ManagerHandlingTask()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(2)),
                Tm        = TimeSpan.FromSeconds(0),
            };

            var service = new TechService(config);

            //Act
            service.CreateTask("Запрос в службу поддержки №1");
            service.CreateTask("Запрос в службу поддержки №2 (для менеджера)");

            Employee operator1 = service.CreateOperator("Оператор");
            Employee manager   = service.CreateManager("Менеджер");

            //Assert
            var task = Task.Run(async() => {
                //Ждем выполнения всех заявок
                while (!service.TaskManager.AllDone)
                {
                    await Task.Delay(500);
                }

                Assert.AreEqual(0, service.TaskManager.InQueue.Count());
                Assert.AreEqual(0, service.TaskManager.InWork.Count());
                Assert.AreEqual(2, service.TaskManager.Done.Count());
                Assert.AreEqual(operator1, service.TaskManager.Done.First(t => t.Description == "Запрос в службу поддержки №1").Handler);
                Assert.AreEqual(manager, service.TaskManager.Done.First(t => t.Description == "Запрос в службу поддержки №2 (для менеджера)").Handler);
            });

            task.Wait();
        }
コード例 #4
0
        private TechService CreateTechService()
        {
            var userId  = Guid.Parse(User.Identity.GetUserId());
            var service = new TechService(userId);

            return(service);
        }
コード例 #5
0
        public void OperatorHandlingTask()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(1))
            };

            var service = new TechService(config);

            //Act
            service.CreateTask("Запрос в службу поддержки");

            Employee operator1 = service.CreateOperator("Оператор");

            //Assert
            var task = Task.Run(async() => {
                //Ждем выполнения всех заявок
                while (!service.TaskManager.AllDone)
                {
                    await Task.Delay(500);
                }

                Assert.AreEqual(0, service.TaskManager.InQueue.Count());
                Assert.AreEqual(0, service.TaskManager.InWork.Count());
                Assert.AreEqual(1, service.TaskManager.Done.Count());
                Assert.AreEqual(operator1, service.TaskManager.Done.First().Handler);
                Assert.AreEqual(TechTaskStatus.Done, service.TaskManager.Done.First().Status);
                Assert.IsFalse(operator1.IsBusy);
            });

            task.Wait();
        }
コード例 #6
0
        public void DeleteEmployee()
        {
            //Arrange
            var service = new TechService();

            //Act
            service.CreateTask("Запрос в службу поддержки №1");
            var operator1 = service.CreateEmployee("Operator", "Оператор");

            //Assert
            var task = Task.Run(async() =>
            {
                //Ждем пока оператор не получит задачу
                while (service.TaskManager.InWork.Count() != 1)
                {
                    await Task.Delay(500);
                }

                service.DeleteEmployee(operator1);

                //Ждем пока оператор не вернет задачу
                while (service.TaskManager.InQueue.Count() != 1)
                {
                    Assert.AreEqual(0, service.TaskManager.Done.Count());
                    await Task.Delay(500);
                }

                Assert.AreEqual(0, service.TaskManager.InWork.Count());
            });

            task.Wait();
        }
コード例 #7
0
        public void DeleteTask()
        {
            //Arrange
            var service = new TechService();
            //Act
            TechTask task = service.CreateTask("Запрос в службу поддержки №1");

            service.DeleteTask(task);
            //Assert
            Assert.AreEqual(TechTaskStatus.Canceled, task.Status);
        }
コード例 #8
0
    public async Task GetTechs()
    {
        // Arrange
        var svc = new TechService();

        // Act
        var result = await svc.GetTechs();

        // Assert
        Assert.Equal(1, result.Count);
    }
コード例 #9
0
        static TechServiceSingleton()
        {
            var config = new TechServiceConfig()
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(60)),
                Tm        = TimeSpan.FromSeconds(10),
                Td        = TimeSpan.FromSeconds(20)
            };

            Instance = new TechService(config);
        }
コード例 #10
0
        public ActionResult ChannelIndex(string alias)
        {
            //根据别名获得技术分类详细信息
            var techModel = TechService.GetTechInfoByAlias(alias);

            if (techModel.Id == 0 || techModel.IsDeleted)
            {
                return(Content("Argument error."));
            }
            ViewBag.TechInfo = techModel;
            return(View());
        }
コード例 #11
0
        public void DeleteEmployee()
        {
            //Arrange
            var service = new TechService();

            //Act
            var director = service.CreateDirector("Директор");

            service.Employees.Remove(director);

            //Assert
            Assert.AreEqual(0, service.Employees.Count);
        }
コード例 #12
0
ファイル: TechController.cs プロジェクト: lvjialiang/PlantEng
        //
        // GET: /Category/Tech/

        public ActionResult List()
        {
            var list = TechService.List();

            ViewBag.List = list;
            int      id       = Controleng.Common.CECRequest.GetQueryInt("id", 0);
            TechInfo techInfo = null;

            if (id > 0)
            {
                techInfo = TechService.GetById(id);
            }
            return(View(techInfo));
        }
コード例 #13
0
        public void CreateTasks()
        {
            //Arrange
            var service = new TechService();

            //Act
            service.CreateTask("Запрос в службу поддержки №1");
            service.CreateTask("Запрос в службу поддержки №2");
            service.CreateTask("Запрос в службу поддержки №3");
            //Assert
            Assert.AreEqual(3, service.TaskManager.InQueue.Count());
            Assert.AreEqual(0, service.TaskManager.InWork.Count());
            Assert.AreEqual(0, service.TaskManager.Done.Count());
        }
コード例 #14
0
        public void CreateByPositionName()
        {
            //Arrange
            var service = new TechService();

            //Act
            var director  = service.CreateEmployee("Director", "Директор");
            var manager   = service.CreateEmployee("Manager", "Менеджер");
            var operator1 = service.CreateEmployee("Operator", "Оператор");

            //Assert
            Assert.AreEqual(3, service.Employees.Count);
            Assert.IsInstanceOfType(director, typeof(Director));
            Assert.IsInstanceOfType(manager, typeof(Manager));
            Assert.IsInstanceOfType(operator1, typeof(Operator));
        }
コード例 #15
0
ファイル: TechController.cs プロジェクト: lvjialiang/PlantEng
        public ActionResult List(TechInfo model)
        {
            //检查
            //如果添加,判断别名是否存在
            bool isAdd = true;
            var  list  = TechService.List();

            if (model.Id > 0)
            {
                isAdd = false;
            }
            if (isAdd)
            {
                //判断是否别名存在
                if (!string.IsNullOrEmpty(model.Alias))
                {
                    if (list.Where(m => m.Alias == model.Alias).Count() > 0)
                    {
                        ModelState.AddModelError("ALIASEXISTS", "别名存在,请选择其他别名");
                    }
                }
            }
            else
            {
                //编辑,除了自身之外,判断是否存在
                if (!string.IsNullOrEmpty(model.Alias))
                {
                    if (list.Where(m => (m.Alias == model.Alias && m.Id != model.Id)).Count() > 0)
                    {
                        ModelState.AddModelError("ALIASEXISTS", "别名存在,请选择其他别名");
                    }
                }
            }

            if (ModelState.IsValid)
            {
                TechService.Create(model);
                ViewBag.Msg = "保存成功";
            }

            list         = TechService.List();
            ViewBag.List = list;


            return(View());
        }
コード例 #16
0
        public void ChangeTm()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(0)),
                Tm        = TimeSpan.FromSeconds(0)
            };

            var service = new TechService(config);

            //Act
            var newTm = TimeSpan.FromSeconds(3);

            service.Tm = newTm;

            //Assert
            Assert.AreEqual(service.TaskManager.Config.Tm, newTm);
        }
コード例 #17
0
        public void CreateEmployees()
        {
            //Arrange
            var service = new TechService();
            //Act
            var director  = service.CreateDirector("Директор");
            var manager   = service.CreateManager("Менеджер");
            var operator1 = service.CreateOperator("Оператор №1");
            var operator2 = service.CreateOperator("Оператор №2");

            //Assert
            Assert.AreEqual(4, service.Employees.Count);
            Assert.AreEqual(1, service.Employees.Directors.Count);
            Assert.AreEqual(1, service.Employees.Managers.Count);
            Assert.AreEqual(2, service.Employees.Operators.Count);
            Assert.IsInstanceOfType(director, typeof(Director));
            Assert.IsInstanceOfType(manager, typeof(Manager));
            Assert.IsInstanceOfType(operator1, typeof(Operator));
            Assert.IsInstanceOfType(operator2, typeof(Operator));
        }
コード例 #18
0
        public void ChangeTd()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(0)),
                Td        = TimeSpan.FromSeconds(0)
            };

            var service = new TechService(config);

            //Act
            var newTd = TimeSpan.FromSeconds(3);

            service.Td = newTd;

            service.CreateTask("Запрос в службу поддержки №2");

            //Assert
            Assert.AreEqual(service.TaskManager.Config.Td, newTd);
        }
コード例 #19
0
        public void ChangeTimeRange()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(0))
            };

            var service = new TechService(config);

            //Act
            service.CreateTask("Запрос в службу поддержки №1");

            service.CreateOperator("Оператор");

            service.MinTime = TimeSpan.FromSeconds(3);
            service.MaxTime = TimeSpan.FromSeconds(3);

            service.CreateTask("Запрос в службу поддержки №2");

            //Assert
            var task = Task.Run(async() => {
                //Ждем выполнения всех заявок
                while (!service.TaskManager.AllDone)
                {
                    await Task.Delay(500);
                }

                var firstTask  = service.TaskManager.Done.First();
                var secondTask = service.TaskManager.Done.Skip(1).First();

                var firstTime  = (int)firstTask.TimeSpent.TotalSeconds + (int)service.MaxTime.TotalSeconds;
                var secondTime = (int)secondTask.TimeSpent.TotalSeconds;

                Assert.IsTrue(firstTime == secondTime);
            });

            task.Wait();
        }
コード例 #20
0
        public void CreateTechService()
        {
            //Arrange
            var config = new TechServiceConfig
            {
                TimeRange = new TimeRange(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5)),
                Tm        = TimeSpan.FromSeconds(10),
                Td        = TimeSpan.FromSeconds(20)
            };

            //Act
            var service = new TechService(config);

            //Assert
            Assert.AreEqual(0, service.Employees.Count);
            Assert.AreEqual(0, service.TaskManager.InWork.Count());
            Assert.AreEqual(0, service.TaskManager.Done.Count());
            Assert.AreEqual(0, service.TaskManager.InQueue.Count());
            Assert.AreEqual(TimeSpan.FromSeconds(2), service.MinTime);
            Assert.AreEqual(TimeSpan.FromSeconds(5), service.MaxTime);
            Assert.AreEqual(TimeSpan.FromSeconds(10), service.Tm);
            Assert.AreEqual(TimeSpan.FromSeconds(20), service.Td);
        }
コード例 #21
0
        //
        // GET: /Tech/Home/

        #region == 技术频道首页 /tech/ ==
        /// <summary>
        /// 技术频道首页
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            //获得所有技术分类列表
            ViewBag.TechList = TechService.List();
            return(View());
        }
コード例 #22
0
        public ActionResult Add(ArticleInfo oldModel, FormCollection fc)
        {
            bool isAdd = true;

            if (oldModel.Id > 0)
            {
                isAdd = false;
            }
            if (ModelState.IsValid)
            {
                //TODO
                //在这,最好检查一下标题是否重复,目前没做
                oldModel.AddUserName        = User.Identity.Name;
                oldModel.LastModifyUserName = User.Identity.Name;
                oldModel.CategoryId         = Utils.StrToInt(fc["select_column"], 0);

                //改变URL
                oldModel.Url = oldModel.QuickLinkUrl;
                if (string.IsNullOrEmpty(oldModel.Url))
                {
                    oldModel.Url = string.Format("/article/show/{0}.html", oldModel.TimeSpan);
                }

                oldModel = ArticleService.Create(oldModel);

                //插入到Article2Category表中
                //1,技术分类
                var        requestTechListArray = CECRequest.GetFormString("cbtechlist").Split(',');
                List <int> techList             = new List <int>();
                foreach (string item in requestTechListArray)
                {
                    int id = Utils.StrToInt(item, 0);
                    if (id > 0)
                    {
                        techList.Add(id);
                    }
                }
                ArticleService.InsertArticle2Category(oldModel.Id, CatType.Tech, techList);
                //2,行业分类
                var        requestIndustryList = CECRequest.GetFormString("cbindustrylist").Split(',');
                List <int> industryList        = new List <int>();
                foreach (string item in requestIndustryList)
                {
                    int id = Utils.StrToInt(item, 0);
                    if (id > 0)
                    {
                        industryList.Add(id);
                    }
                }
                ArticleService.InsertArticle2Category(oldModel.Id, CatType.Industry, industryList);


                //完成,提示信息
                if (isAdd)
                {
                    ViewBag.Msg = "添加成功!<a href=\"add\">继续?</a><span class=\"ml10\">或</span><a href=\"list\" class=\"ml10\">返回</a>";
                }
                else
                {
                    ViewBag.Msg = "修改成功!<a href=\"add\">添加新文章?</a><span class=\"ml10\">或</span><a href=\"list\" class=\"ml10\">返回</a>";
                }
            }

            //初始化栏目类别
            //初始化栏目类别
            var allColumnList = ColumnService.List().ToList();
            var dropdownList  = new List <ColumnInfo>();

            ColumnService.BuildListForTree(dropdownList, allColumnList, 0);
            ViewBag.ColumnDropDownList = dropdownList;

            //输出技术分类
            ViewBag.TechList = TechService.List().Where(m => m.IsDeleted == false);
            //输出行业分类
            ViewBag.IndustryList = IndustryService.List().Where(m => m.IsDeleted == false);

            //已选择的技术分类和行业分类
            ViewBag.SelectTechList     = ArticleService.Article2CategoryListByArticleIdAndType(oldModel.Id, CatType.Tech);
            ViewBag.SelectIndustryList = ArticleService.Article2CategoryListByArticleIdAndType(oldModel.Id, CatType.Industry);

            string companyName = string.Empty;

            if (oldModel.CompanyId > 0)
            {
                //对CompanyName进行赋值
                //数据库中只保存CompanyId,没有保存CompanyName,只能在这里处理一下
                companyName = MemberService.GetBaseCompanyInfo(oldModel.CompanyId).CompanyName;
            }
            ViewBag.CompanyName = companyName;

            return(View(oldModel));
        }