Exemplo n.º 1
0
        //[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
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        public ActionResult DeleteConfirmed(int id)
        {
            WorkResponse workResponse = db.WorkResponses.Find(id);

            db.WorkResponses.Remove(workResponse);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 4
0
 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));
 }
Exemplo n.º 5
0
        // 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));
        }
Exemplo n.º 6
0
        // 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));
        }
Exemplo n.º 7
0
        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);
                }
            }
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
        }