//[AllowAnonymous] public async Task <ActionResult <WorkItemResponse> > ViewHistoryWork([FromBody] ViewWorkRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Role.Student) { return(BadRequest(new { message = "ViewHistoryWork is not for students. Students please try ViewOwnWork." })); } WorkItemResponse workItem = new WorkItemResponse(); var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize; workItem.totalpage = start; workItem.pagenum = request.pagenum; workItem.worklist = new List <WorkResponse>(); var provide_list = await WorkAccessor.FindHistoryWork(pro_id); if (provide_list != null) { for (int i = start; i < end && i < provide_list.total; ++i) { WorkResponse wr = _mapper.Map <WorkResponse>(provide_list.workItem[i]); workItem.worklist.Add(wr); } workItem.totalpage = provide_list.total; return(Ok(workItem)); } return(Ok(-1)); // Never arrive there }
public async Task <ActionResult <WorkItemResponse> > FindOwnWork([FromBody] ViewWorkRequest request) { WorkItemResponse workItem = new WorkItemResponse(); workItem.totalpage = 0; workItem.pagenum = request.pagenum; workItem.worklist = new List <WorkResponse>(); var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize - 1; //取得存在cookie的当前账户id var stu_id = Int32.Parse(User.Identity.Name); string search = '%' + request.query + '%'; var temp = await WorkAccessor.FindOwnWork(search, stu_id); if (temp != null) { for (int i = 0; i < temp.total; i++) { workItem.totalpage++; if (i >= start && i <= end) { WorkResponse a = _mapper.Map <WorkResponse>(temp.workItem[i]); var s = await TakesAccessor.FindInfo(stu_id, a.work_id); a.status = s.status; workItem.worklist.Add(a); } } return(Ok(workItem)); } return(Ok(-1)); }
public ActionResult DeleteConfirmed(int id) { WorkResponse workResponse = db.WorkResponses.Find(id); db.WorkResponses.Remove(workResponse); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,TimeStarted,TimeWorked,Description,WorkRequestId,Billable,IncomeId")] WorkResponse workResponse) { if (ModelState.IsValid) { db.Entry(workResponse).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.IncomeId = new SelectList(db.Incomes, "Id", "Id", workResponse.IncomeId); ViewBag.WorkRequestId = new SelectList(db.WorkRequests, "Id", "Description", workResponse.WorkRequestId); return(View(workResponse)); }
// GET: WorkResponses/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } WorkResponse workResponse = db.WorkResponses.Find(id); if (workResponse == null) { return(HttpNotFound()); } return(View(workResponse)); }
// GET: WorkResponses/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } WorkResponse workResponse = db.WorkResponses.Find(id); if (workResponse == null) { return(HttpNotFound()); } ViewBag.IncomeId = new SelectList(db.Incomes, "Id", "Id", workResponse.IncomeId); ViewBag.WorkRequestId = new SelectList(db.WorkRequests, "Id", "Description", workResponse.WorkRequestId); return(View(workResponse)); }
private void GetSubworks(List <WorkLink> workLinks, Work work, WorkResponse workResponse, List <Work> worksRaw, Dictionary <int, WorkTypeResponse> worktypes, Dictionary <int, List <PersonResponse> > peopleDic, int personId, Dictionary <int, MarkResponse> marks) { var childWorks = workLinks.Where(c => c.ParentWorkId == work.Id).ToList(); if (childWorks.Count > 0) { workResponse.ChildWorks = new List <WorkResponse>(); foreach (var child in childWorks) { var childWork = worksRaw.SingleOrDefault(c => c.Id == child.WorkId); var childWorkType = worktypes[childWork.WorkTypeId]; var childWorkResponse = CreateWorkResponse(childWork, childWorkType, peopleDic, child, personId, marks); GetSubworks(workLinks, childWork, childWorkResponse, worksRaw, worktypes, peopleDic, personId, marks); workResponse.ChildWorks.Add(childWorkResponse); } } }
public async Task <ActionResult <WorkItemResponse> > GetFavoriteInfo([FromBody] InfoFavoriteRequest request) { WorkItemResponse workItem = new WorkItemResponse(); workItem.totalpage = 0; workItem.pagenum = 0; workItem.worklist = new List <WorkResponse>(); var temp = await FavoriteAccessor.ViewInfo(request.favorite_id); if (temp != null) { for (int i = 0; i < temp.total; i++) { workItem.totalpage++; WorkResponse a = _mapper.Map <WorkResponse>(temp.workItem[i]); workItem.worklist.Add(a); } return(Ok(workItem)); } return(Ok(-1)); }
private WorkResponse CreateWorkResponse(Work work, WorkTypeResponse workType, Dictionary <int, List <PersonResponse> > peopleDic, WorkLink workLink, int personId, Dictionary <int, MarkResponse> marks) { var workResponse = new WorkResponse(); bool isInnactive = workLink.LinkType == 2 && workLink.ParentWorkId != null; // don't show work_id on innactive works if (!isInnactive) { workResponse.WorkId = work.Id; } if (!string.IsNullOrEmpty(work.RusName)) { workResponse.RusName = work.RusName; } if (!string.IsNullOrEmpty(work.Name)) { workResponse.Name = work.Name; } if (!string.IsNullOrEmpty(work.AltName)) { workResponse.AltName = work.AltName; } workResponse.Year = work.Year; workResponse.WorkTypeLevel = workType.Level; if (work.InPlans) { workResponse.InPlans = true; workResponse.WorkTypeName = workType.NameSingle; } if (work.NotFinished) { workResponse.NotFinished = true; } var people = peopleDic.GetValueOrDefault(work.Id); var coauthorsPeople = people?.Where(c => c.PersonId != personId).ToList(); if (coauthorsPeople?.Count > 0) { workResponse.Persons = coauthorsPeople; if (!coauthorsPeople.SequenceEqual(people)) { workResponse.CoAuthorType = "coauthor"; } else { // 17: anthologies workResponse.CoAuthorType = workType.WorkTypeId == 17 ? "editor" : "author"; } } workResponse.PublishType = work.PublishType != 1 ? (int?)work.PublishType : null; // word links text workResponse.GroupIndex = workLink.GroupIndex; if (workLink.IsAddition) { workResponse.IsAddition = workLink.IsAddition; } if (!string.IsNullOrEmpty(workLink.BonusText)) { workResponse.BonusText = workLink.BonusText; } var workMark = marks.GetValueOrDefault(work.Id); if (workMark != null) { workResponse.UserMark = workMark.UserMark; workResponse.Rating = Math.Round(workMark.Rating, 2); workResponse.VotesCount = workMark.MarksCount; } workResponse.RootCycleWorkId = null; workResponse.RootCycleWorkName = null; workResponse.RootCycleWorkTypeId = null; return(workResponse); }