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)); }
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()); }
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(); }
private TechService CreateTechService() { var userId = Guid.Parse(User.Identity.GetUserId()); var service = new TechService(userId); return(service); }
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(); }
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(); }
public void DeleteTask() { //Arrange var service = new TechService(); //Act TechTask task = service.CreateTask("Запрос в службу поддержки №1"); service.DeleteTask(task); //Assert Assert.AreEqual(TechTaskStatus.Canceled, task.Status); }
public async Task GetTechs() { // Arrange var svc = new TechService(); // Act var result = await svc.GetTechs(); // Assert Assert.Equal(1, result.Count); }
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); }
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()); }
public void DeleteEmployee() { //Arrange var service = new TechService(); //Act var director = service.CreateDirector("Директор"); service.Employees.Remove(director); //Assert Assert.AreEqual(0, service.Employees.Count); }
// // 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)); }
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()); }
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)); }
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()); }
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); }
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)); }
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); }
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(); }
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); }
// // GET: /Tech/Home/ #region == 技术频道首页 /tech/ == /// <summary> /// 技术频道首页 /// </summary> /// <returns></returns> public ActionResult Index() { //获得所有技术分类列表 ViewBag.TechList = TechService.List(); return(View()); }
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)); }