Example #1
0
        public async Task <ActionResult> UpdateTask([FromBody] TaskInputDto task, int employeeId)
        {
            var temp = Db.Set <LTRegistrator.Domain.Entities.Task>().SingleOrDefault(t => t.Id == task.Id && t.Name == task.Name);

            if (temp != null)
            {
                foreach (var item in task.TaskNotes)
                {
                    var note = Db.Set <TaskNote>().FirstOrDefault(tn => tn.Day == item.Day && tn.TaskId == task.Id);
                    if (note != null && note.Hours != item.Hours)
                    {
                        note.Hours = item.Hours;
                        Db.Set <TaskNote>().Update(note);
                        await Db.SaveChangesAsync();
                    }
                    if (note == null)
                    {
                        TaskNote taskNote = new TaskNote
                        {
                            TaskId = task.Id,
                            Day    = item.Day,
                            Hours  = item.Hours
                        };
                        Db.Set <TaskNote>().Add(taskNote);
                        await Db.SaveChangesAsync();
                    }
                }
                return(Ok());
            }
            return(NotFound());
        }
Example #2
0
        public async void AddTaskTests(int projectId, int employeeId, bool correctTaskNotes, HttpStatusCode status)
        {
            var task = new TaskInputDto()
            {
                Name = "EMIAS", TaskNotes = null
            };

            if (correctTaskNotes)
            {
                task.TaskNotes = new List <TaskNoteDto>
                {
                    new TaskNoteDto
                    {
                        Hours = 5,
                        Day   = new DateTime(2019, 7, 7)
                    }
                }
            }
            ;
            var result = await _taskController.AddTask(projectId, employeeId, task);

            Assert.Equal((int)status, ToHttpStatusCodeResult(result));
            if (status == HttpStatusCode.OK) //Проверяем, что добавлено
            {
                Assert.NotNull(Db.Set <Task>().FirstOrDefault(t => t.ProjectId == projectId && t.EmployeeId == employeeId));
            }
        }
Example #3
0
        public BaseResponse <bool> Update(TaskInputDto taskInputDto)
        {
            var task    = Mapper.Map <Task>(taskInputDto);
            var isSaved = Update(task);

            if (!isSaved)
            {
                throw new BadRequestException("Could not update task");
            }

            return(new SuccessResponse <bool>(true));
        }
Example #4
0
        public async Task <IHttpActionResult> Entrance([FromBody] TaskInputDto dto)
        {
            var ret = await _taskService.Entrance(dto, WorkUser);

            if (ret.Success == false && ret.Msg == "NOT_LOGIN")
            {
                return(Content(HttpStatusCode.Unauthorized, new
                {
                    success = false,
                    errCode = "NOT_LOGIN",
                    message = "No login id.1"
                }));
            }
            return(Ok(ret));
        }
Example #5
0
        public BaseResponse <TaskOutputDto> Create(TaskInputDto taskInputDto)
        {
            var entity  = Mapper.Map <Task>(taskInputDto);
            var taskKey = Count(x => x.BoardId == entity.BoardId) + 1;

            if (taskKey == 0)
            {
                throw new BadRequestException($"Could not create task {taskInputDto.Title}");
            }

            entity.TaskKey = taskKey;
            var task = Create(entity, out var isSaved);

            if (!isSaved)
            {
                throw new BadRequestException($"Could not create task {taskInputDto.Title}");
            }

            return(new SuccessResponse <TaskOutputDto>(Mapper.Map <TaskOutputDto>(task)));
        }
Example #6
0
        /*
         *  Creates a TaskInput by taking a taskInputDto instance as an argumnet.
         */
        public async Task <TaskInputDto> UpdateTaskInput(TaskInputDto taskInputDto, string userName)
        {
            var  patientDetails = lapbaseNewContext.Patient.Where(p => p.Username == userName).FirstOrDefault();
            Guid id;
            var  result = lapbaseNewContext.TaskInput.FirstOrDefault(f => f.Id == taskInputDto.Id);

            if (result == null)
            {
                id     = Guid.Empty;
                result = lapbaseNewContext.TaskInput.Add(GetTaskInputFromDto(taskInputDto, id, patientDetails.PatientCode, patientDetails.OrganisationCode)).Entity;
            }
            else
            {
                id = result.Id;
                adaptTaskInput(result, taskInputDto);
            }

            await lapbaseNewContext.SaveChangesAsync();

            return(new TaskInputDto(result));
        }
 public BaseResponse <bool> Update([FromBody] TaskInputDto taskInputDto)
 {
     return(_taskService.Update(taskInputDto));
 }
 public BaseResponse <TaskOutputDto> Create([FromBody] TaskInputDto taskInputDto)
 {
     return(_taskService.Create(taskInputDto));
 }
Example #9
0
        public async Task <ActionResult> AddTask([FromRoute] int projectId, int employeeId, [FromBody] TaskInputDto task)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var templateTypeProject = Db.Set <Project>().FirstOrDefault(p => p.TemplateType == TemplateType.HoursPerProject && p.Id == projectId && !p.SoftDeleted);

            if (templateTypeProject == null)
            {
                return(NotFound());
            }

            var employeeProject = Db.Set <ProjectEmployee>().Where(pe => pe.ProjectId == projectId && pe.EmployeeId == employeeId).FirstOrDefault();
            var nameTask        = Db.Set <LTRegistrator.Domain.Entities.Task>().Where(t => (t.Name == task.Name || t.Name == templateTypeProject.Name) && t.ProjectId == projectId && t.EmployeeId == employeeId).FirstOrDefault();

            if (nameTask == null && templateTypeProject != null && task != null && templateTypeProject.Name == task.Name && employeeProject != null)
            {
                using (var transaction = Db.Database.BeginTransaction())
                {
                    try
                    {
                        LTRegistrator.Domain.Entities.Task newTask = new LTRegistrator.Domain.Entities.Task
                        {
                            EmployeeId = employeeId,
                            ProjectId  = projectId,
                            Name       = task.Name
                        };
                        Db.Set <LTRegistrator.Domain.Entities.Task>().Add(newTask);

                        foreach (var item in task.TaskNotes)
                        {
                            TaskNote taskNote = new TaskNote
                            {
                                TaskId = newTask.Id,
                                Day    = item.Day,
                                Hours  = item.Hours
                            };
                            Db.Set <TaskNote>().Add(taskNote);
                        }
                        await Db.SaveChangesAsync();

                        transaction.Commit();
                        return(Ok());
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                    }
                }
            }
            return(BadRequest());
        }
Example #10
0
 public async Task <ActionResult> Update([FromBody] TaskInputDto taskInputDto)
 {
     return(Ok(await taskInputService.UpdateTaskInput(taskInputDto, User.Identity.Name)));
 }
Example #11
0
        /// <summary>
        /// 用户会话主入口
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="workUser"></param>
        /// <returns></returns>
        public async Task <ReturnValueModel> Entrance(TaskInputDto dto, WorkUser workUser)
        {
            ReturnValueModel rvm = new ReturnValueModel
            {
                Msg     = "success",
                Success = true
            };

            if (string.IsNullOrEmpty(workUser?.WxSaleUser?.Id))
            {
                rvm.Msg     = "NOT_LOGIN";
                rvm.Success = false;
                return(rvm);
            }

            var user = _rep.FirstOrDefault <WxSaleUserModel>(s => s != null && s.IsDeleted != 1 && s.Id == workUser.WxSaleUser.Id);

            if (user == null)
            {
                rvm.Msg     = "NOT_LOGIN";
                rvm.Success = false;
                return(rvm);
            }
            if (string.IsNullOrEmpty(user.ADAccount))
            {
                rvm.Msg     = "NOT_LOGIN";
                rvm.Success = false;
                return(rvm);
            }
            try
            {
                string _host = ConfigurationManager.AppSettings["KBSUrl"];
                string url   = $"{_host}{"TaskManage"}";

                string loginSecretkey = ConfigurationManager.AppSettings["LoginSecretkey"];
                string sign           = Tool.Sign(new Dictionary <string, object>
                {
                    { "BotManageId", dto.BotManageId }
                }, loginSecretkey);

                dto.Sign   = sign;
                dto.UserId = workUser.WxSaleUser.Id;
                var ret = await new WebClient <Result>()
                          .Post(url)
                          .JsonData(dto)
                          .ResultFromJsonAsync();

                if (ret?.Code == 0)
                {
                    rvm.Msg     = "fail";
                    rvm.Success = false;
                    rvm.Result  = ret?.Message;
                    return(rvm);
                }
                List <dynamic> entranceOutDtos = new List <dynamic>();
                var            taskOutDto      = KBS.Helpers.Json.ToObject <TaskOutDto>(ret.Data.ToString());

                if (taskOutDto.NodeType == 3)
                {
                    entranceOutDtos.Add(new { type = "main", content = taskOutDto.Result, hasSatisfied = true, selectSatisfied = 0 });
                }
                else
                {
                    entranceOutDtos.Add(new { type = "main", content = taskOutDto.Result });
                }

                if (taskOutDto.FAQRecommends != null && taskOutDto.FAQRecommends.Count > 0)
                {
                    var totalCount = taskOutDto.FAQRecommends.Count(); //获取数
                    var pageSize   = 5;                                //每页显示数
                    var totalPage  = 0;
                    if ((totalCount % pageSize) == 0)
                    {
                        totalPage = totalCount / pageSize;
                    }
                    totalPage = (totalCount / pageSize) + 1;
                    List <List <string> > contents = new List <List <string> >();
                    for (int i = 0; i < totalPage; i++)
                    {
                        var content = taskOutDto.FAQRecommends.OrderBy(o => o).Skip(i).Take(pageSize).ToList();
                        contents.Add(content);
                    }
                    //faq 问题推荐
                    entranceOutDtos.Add(new { type = "faq", content = contents, curIndex = 0, maxIndex = totalPage - 1 });
                }

                //勋章返回
                var    medals   = AddUserMedal(taskOutDto, workUser);
                string _hostUrl = ConfigurationManager.AppSettings["HostUrl"];
                foreach (var item in medals)
                {
                    entranceOutDtos.Add(new { type = "medal", content = item.content, url = $"{_hostUrl}/{item.url}", name = item.name });
                }

                rvm.Result = new
                {
                    processId    = taskOutDto.ProcessId,
                    taskId       = taskOutDto.TaskId,
                    activityId   = taskOutDto.ActivityId,
                    luisAppId    = taskOutDto.LuisAppId,
                    botManageId  = taskOutDto.BotManageId,
                    faqPackageId = taskOutDto.FaqPackageId,
                    faqId        = taskOutDto.FaqId,
                    taskItemId   = taskOutDto.TaskItemId,
                    msgResult    = entranceOutDtos
                };
            }
            catch (Exception ex)
            {
                rvm.Msg     = "fail";
                rvm.Success = false;
                rvm.Result  = ex.Message;
            }

            return(rvm);
        }