/// <summary>
        /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <int> InsertAsync(WorkEntity entity)
        {
            if (entity.WorkID <= 0)
            {
                entity.WorkID = GetNewID();
            }
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into Work (" +
                            "WorkID," +
                            "WorkName," +
                            "WorkCategoryID," +
                            "UserName," +
                            "IP," +
                            "InputTime," +
                            "FormID," +
                            "FormTable," +
                            "FlowID," +
                            "Status) " +
                            "values(" +
                            "@WorkID," +
                            "@WorkName," +
                            "@WorkCategoryID," +
                            "@UserName," +
                            "@IP," +
                            "@InputTime," +
                            "@FormID," +
                            "@FormTable," +
                            "@FlowID," +
                            "@Status)";

            if (await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)))
            {
                return(DataConverter.CLng(entity.WorkID));
            }
            return(-1);
        }
Exemple #2
0
        public static async Task <WorkItemEntity> ViewInfo(int id)
        {
            WorkItemEntity work = new WorkItemEntity();

            work.total    = 0;
            work.workItem = new List <WorkEntity>();

            var query = "SELECT teacher_id,work_id,work_name,cover,work_description,address,salary,work_time,likes_num,collect_num,share_num FROM work WHERE work_id=ANY (SELECT work_id FROM favorite_has_work WHERE favorite_id=@id);";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;
            command.Parameters.AddWithValue("@id", id);
            using var reader = await command.ExecuteReaderAsync();

            while (reader.Read())
            {
                WorkEntity temp = new WorkEntity();

                temp.teacher_id       = reader.GetInt32("teacher_id");
                temp.work_id          = reader.GetInt32("work_id");
                temp.work_name        = reader.GetString("work_name");
                temp.cover            = reader.GetString("cover");
                temp.work_description = reader.GetString("work_description");
                temp.address          = reader.GetString("address");
                temp.work_time        = reader.GetString("work_time");
                temp.salary           = reader.GetInt32("salary");
                temp.likes_num        = reader.GetInt32("likes_num");
                temp.collect_num      = reader.GetInt32("collect_num");
                temp.share_num        = reader.GetInt32("share_num");

                work.total++;
                work.workItem.Add(temp);
            }
            return(work);
        }
Exemple #3
0
        public void WorkEntity2ProjectDTO()
        {
            var parent = new WorkEntity
            {
                ID       = 1,
                Name     = "All Products",
                SubItems = new List <WorkEntity>()
            };

            var child1 = new WorkEntity
            {
                ID       = 2,
                Name     = "Product 1",
                ParentID = 1,
                Parent   = parent
            };

            var child2 = new WorkEntity
            {
                ID       = 3,
                Name     = "Product 2",
                Parent   = parent,
                ParentID = 1
            };

            parent.SubItems.Add(child1);
            parent.SubItems.Add(child2);

            var dto0 = _mapper.Map <ProjectDtoWithParent>(parent);
            var dto1 = _mapper.Map <ProjectDtoWithParent>(child1);

            Assert.AreEqual(parent.ID, dto0.ID, "copying parent.ID");
            Assert.AreEqual(parent.Name, dto0.Name, "copying parent.name");

            Assert.AreEqual(child1.ID, dto1.ID, "copying child.ID");
            Assert.AreEqual(child1.Name, dto1.Name, "copying child.name");
        }
Exemple #4
0
        private async Task <T> DoWorkAsync <T>(Func <WebClient, Task <WorkEntity <T> > > work, Uri uri, HttpMethod method)
        {
            int       httpStatusCode = -3;
            long      responseLength = -1;
            long      requestLength  = -1;
            Stopwatch requestTimer   = UseHttpLog ? Stopwatch.StartNew() : null;

            try
            {
                using (WebClient webClient = CreateWebClient())
                {
                    WorkEntity <T> res = await work(webClient).ConfigureAwait(false);

                    httpStatusCode = 200;
                    responseLength = res?.ResponseLength ?? 0;
                    requestLength  = res?.RequestLength ?? 0;


                    T result = res == null ? default(T) : res.Result;
                    return(result);
                }
            }
            catch (WebException wex)
            {
                httpStatusCode = GetHttpStatusCodeFromWex(wex);
                throw;
            }
            finally
            {
                if (requestTimer != null)
                {
                    requestTimer.Stop();
                    HttpLog(requestTimer.ElapsedMilliseconds, uri, method, requestLength, responseLength, httpStatusCode);
                }
            }
        }
Exemple #5
0
        ///<summery>
        /// (非学生用户)创建工作
        /// 设置 likes_num, collect_num, share_num 为 0
        /// dumei 08.23
        ///</summery>
        ///<summery>
        /// 增加start_time,end_time,start_day,end_day,week_day
        /// dumei 09.08
        ///</summery>
        public static async Task <int> Create(WorkEntity work)
        {
            var query = @"INSERT INTO work(teacher_id,work_name,cover,work_description,address,salary,
            likes_num,collect_num,start_day,end_day,start_time,end_time,total_time,week_day) 
            VALUES(@teacher_id,@work_name,@cover,@description,@address,@salary,
            @likes,@collect,@start_day,@end_day,@start_time,@end_time,@total_time,@week_day)";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@teacher_id", work.teacher_id);
            //command.Parameters.AddWithValue("@work_id", work.work_id);
            command.Parameters.AddWithValue("@work_name", work.work_name);
            command.Parameters.AddWithValue("@cover", work.cover);
            command.Parameters.AddWithValue("@description", work.work_description);
            command.Parameters.AddWithValue("@address", work.address);
            command.Parameters.AddWithValue("@salary", work.salary);
            //command.Parameters.AddWithValue("@work_time", work.work_time);
            //command.Parameters.AddWithValue("@work_time", "none"); //to be delete
            command.Parameters.AddWithValue("@start_day", work.start_day);
            command.Parameters.AddWithValue("@end_day", work.end_day);
            command.Parameters.AddWithValue("@start_time", work.start_time);
            command.Parameters.AddWithValue("@end_time", work.end_time);
            command.Parameters.AddWithValue("@total_time", work.total_time);
            command.Parameters.AddWithValue("@week_day", work.week_day);
            command.Parameters.AddWithValue("@likes", 0);
            command.Parameters.AddWithValue("@collect", 0);
            //command.Parameters.AddWithValue("@share", 0);

            await command.ExecuteNonQueryAsync();

            return((int)command.LastInsertedId);
        }
        private void edit_work_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int    workId           = int.Parse(workId_txt.Text);
                string batchType        = batch_txt.Text;
                int    noOfWorkingDays  = int.Parse(working_days_no_txt.Text);
                int    noOfWorkingHours = int.Parse(working_hours_no_txt.Text);
                String startTime        = startTime_txt.Text;
                String endTime          = endTime_txt.Text;

                String monday    = "";
                String tuesday   = "";
                String wednesday = "";
                String thursday  = "";
                String friday    = "";
                String saturday  = "";
                String sunday    = "";

                int count = 0;

                //String[] days = new String[7];
                ArrayList days = new ArrayList();

                if (chk_mon.IsChecked == true)
                {
                    monday = "Monday,";
                    days.Add(monday);
                    count++;
                }
                else
                {
                    monday = null;
                }
                if (chk_tue.IsChecked == true)
                {
                    tuesday = "Tuesday,";
                    days.Add(tuesday);
                    count++;
                }
                else
                {
                    tuesday = null;
                }
                if (chk_wed.IsChecked == true)
                {
                    wednesday = "Wednesday,";
                    days.Add(wednesday);
                    count++;
                }
                else
                {
                    wednesday = null;
                }
                if (chk_thr.IsChecked == true)
                {
                    thursday = "Thursday,";
                    days.Add(thursday);
                    count++;
                }
                else
                {
                    thursday = null;
                }
                if (chk_fri.IsChecked == true)
                {
                    friday = "Friday,";
                    days.Add(friday);
                    count++;
                }
                else
                {
                    friday = null;
                }
                if (chk_sat.IsChecked == true)
                {
                    saturday = "Saturday,";
                    days.Add(saturday);
                    count++;
                }
                else
                {
                    saturday = null;
                }
                if (chk_sun.IsChecked == true)
                {
                    sunday = "Sunday";
                    days.Add(sunday);
                    count++;
                }
                else
                {
                    sunday = null;
                }

                String   workingDays = "";
                string[] array       = days.ToArray(typeof(string)) as string[];

                if (count == int.Parse(working_days_no_txt.Text))
                {
                    foreach (string value in array)
                    {
                        edit_txt_hide.AppendText(value.ToString());
                        workingDays = edit_txt_hide.Text;
                    }
                    workEntity = new WorkEntity(workId, batchType, noOfWorkingDays, workingDays, noOfWorkingHours, startTime, endTime);

                    //workEntity = CreateWorkEntity();
                    _viewModel.UpdateWorkData(workEntity);
                    view_grid.ItemsSource = _viewModel.LoadData();
                    clear();
                }
                else
                {
                    MessageBox.Show("Count of Working days and No of working days are not matching");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #7
0
        private void GenerateStudent_btn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //string lecturername = lec_name_txt.Text;
                //var s = _sessionViewModel.LoadSessionData();

                int workdID            = int.Parse(timeTable_Id_txt.Text);
                List <WorkEntity> list = new List <WorkEntity>();


                _viewModel = new WorkViewModel();

                list = _viewModel.LoadWorkingDaysData(workdID);
                studentTable_grid.ItemsSource = list;

                WorkEntity work = studentTable_grid.Items[0] as WorkEntity;

                String res  = work.workingDays.ToString();
                int    num  = work.noOfWorkingHours;
                String res1 = work.timeSlotStartTime.ToString();
                String res2 = work.timeSlotEndTime.ToString();


                //data.items = works.Split(',');

                //List<string> list1 = new List<string>();
                //Data data = new Data();

                string[] days;
                string[] start;
                string[] end;

                start = res1.Split(',');
                end   = res2.Split(',');

                _timeSlotViewModel = new TimeSlotViewModel();
                string batch = batchType_txt.Text;

                if (batch == "Main Group")
                {
                    days = res.Split(',');


                    int len = (end.Length) - 2;

                    string x = end[len];

                    string batchId = batchId_txt.Text;

                    List <int> sessionIdsMainGrp = new List <int>();
                    _sessionViewModel.LoadSessionDataByGroup(batchId).Select(ee => { sessionIdsMainGrp.Add(ee.SessionId); return(ee); }).ToList();
                    var c = sessionIdsMainGrp;

                    // _sessionViewModel.LoadSessionDataByLecturer(lecId).Select(e => { sessionIds.Add(e.SessionId); return e; }).ToList();
                    //var c = sessionIds;


                    _timeSlotEntities = new List <TimeSlotEntity>();
                    double startTime   = double.Parse(start[0]);
                    int    currentDate = 0;
                    double endTime     = double.Parse(end[len]);
                    int    num1        = num * days.Length;
                    for (int i = 0; i < num1; i++)
                    {
                        if (startTime == endTime)
                        {
                            startTime = double.Parse(start[0]);
                            currentDate++;
                        }

                        if (i >= c.Count)
                        {
                            _timeSlotEntities.Add(
                                new TimeSlotEntity {
                                ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = 0
                            }
                                );
                        }
                        else
                        {
                            _timeSlotEntities.Add(
                                new TimeSlotEntity {
                                ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = c[i]
                            }
                                );
                        }
                    }

                    foreach (TimeSlotEntity t in _timeSlotEntities)
                    {
                        _timeSlotViewModel.SaveTimeSlotsData(t);
                    }

                    var y = _timeSlotViewModel.LoadTimeSlotData();
                    student_timetable.ItemsSource = y;

                    _timeSlotViewModel.DeleteTimeData();
                }

                if (batch == "Sub Group")
                {
                    days = res.Split(',');


                    int len = (end.Length) - 2;

                    string x = end[len];

                    string batchId = batchId_txt.Text;

                    List <int> sessionIdsSubGrp = new List <int>();
                    _sessionViewModel.LoadSessionDataBySubGroup(batchId).Select(ee => { sessionIdsSubGrp.Add(ee.SessionId); return(ee); }).ToList();
                    var c = sessionIdsSubGrp;

                    _timeSlotEntities = new List <TimeSlotEntity>();
                    double startTime   = double.Parse(start[0]);
                    int    currentDate = 0;
                    double endTime     = double.Parse(end[len]);
                    int    num1        = num * days.Length;
                    for (int i = 0; i < num1; i++)
                    {
                        if (startTime == endTime)
                        {
                            startTime = double.Parse(start[0]);
                            currentDate++;
                        }

                        if (i >= c.Count)
                        {
                            _timeSlotEntities.Add(
                                new TimeSlotEntity {
                                ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = 0
                            }
                                );
                        }
                        else
                        {
                            _timeSlotEntities.Add(
                                new TimeSlotEntity {
                                ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = c[i]
                            }
                                );
                        }
                    }

                    foreach (TimeSlotEntity t in _timeSlotEntities)
                    {
                        _timeSlotViewModel.SaveTimeSlotsData(t);
                    }

                    var y = _timeSlotViewModel.LoadTimeSlotData();
                    student_timetable.ItemsSource = y;

                    _timeSlotViewModel.DeleteTimeData();
                }
            }

            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #8
0
        public void AddForm(string flowId, int status, string contents, List <WorkControlEntity> controls, List <WorkFileEntity> files)
        {
            WorkEntity workEntity = new WorkEntity();

            if (status == (int)WorkStatus.Save || status == (int)WorkStatus.Applying)
            {
                if (flowId != null)
                {
                    FlowEntity flowentity = flowApp.GetForm(flowId);
                    if (flowentity != null && !string.IsNullOrEmpty(flowentity.Id))
                    {
                        FormEntity        formEntity        = formApp.GetForm(flowentity.FormId);
                        FlowVersionEntity flowVersionEntity = flowApp.GetDesign(flowId);
                        if (flowentity != null && !string.IsNullOrEmpty(flowentity.Id) &&
                            formEntity != null && !string.IsNullOrEmpty(formEntity.Id) &&
                            flowVersionEntity != null && !string.IsNullOrEmpty(flowVersionEntity.Id))
                        {
                            workEntity.Create();
                            workEntity.FullName      = flowentity.FullName;
                            workEntity.FlowVersionId = flowVersionEntity.Id;
                            workEntity.FlowStatus    = (int)WorkStatus.Save;
                            workEntity.Codes         = formEntity.Codes;
                            workEntity.Contents      = contents;
                            var loguser = OperatorProvider.Provider.GetCurrent();
                            if (loguser != null)
                            {
                                workEntity.ApplyUserId = loguser.UserId;
                            }
                            service.AddForm(workEntity, controls, files);
                            if (status == (int)WorkStatus.Applying)
                            {
                                try
                                {
                                    workFlowApp.Start(workEntity.Id);
                                }
                                catch (Exception ex)
                                {
                                    workEntity.FlowStatus = (int)WorkStatus.Save;
                                    service.Update(workEntity);
                                    throw ex;
                                }
                            }
                        }
                        else
                        {
                            throw new Exception("操作失败!");
                        }
                    }
                    else
                    {
                        throw new Exception("操作失败!");
                    }
                }
                else
                {
                    throw new Exception("操作失败!");
                }
            }
            else
            {
                throw new Exception("操作失败,提交状态无效!");
            }
        }
 /// <summary>
 /// 增加或更新一条记录(异步方式)
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual async Task <bool> AddOrUpdateAsync(WorkEntity entity, bool IsSave)
 {
     return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity));
 }
Exemple #10
0
 /// <summary>
 /// 增加或更新一条记录
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual bool AddOrUpdate(WorkEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }
        public static IEnumerable <WorkEntity> GetWorkCompletedMetadata(CloudTableClient client, string resultPath, string container)
        {
            var workTable = client.GetTableReference(WorkTableName);
            TableQuery <WorkEntity> workItemQuery = new TableQuery <WorkEntity>().Where(
                TableQuery.CombineFilters(
                    TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, WorkEntity.EncodeResultPath(resultPath, container)),
                    TableOperators.And,
                    TableQuery.GenerateFilterCondition("CompletedTime", QueryComparisons.NotEqual, "")));

            return(workTable.ExecuteQuery(workItemQuery));
        }
Exemple #12
0
        private void ApplySuccess(string workId, string desc, ref bool IsEnd)
        {
            try
            {
                string applyUserId = string.Empty;
                var    loguser     = OperatorProvider.Provider.GetCurrent();
                if (loguser != null)
                {
                    applyUserId = loguser.UserId;
                }
                else
                {
                    throw new Exception("当前用户信息异常!");
                }
                using (var db = new RepositoryBase().BeginTrans())
                {
                    WorkEntity workEntity = db.FindEntity <WorkEntity>(m => m.Id == workId);
                    if (workEntity != null && !string.IsNullOrEmpty(workEntity.Id))
                    {
                        if (!workEntity.CurrentUsers.Contains(applyUserId))
                        {
                            throw new Exception("当前用户无权限审核此流程!");
                        }
                        if (workEntity.FlowStatus != (int)WorkStatus.Applying)
                        {
                            throw new Exception("当前审批状态不能进行审核!");
                        }
                        workEntity.Modify(workEntity.Id);
                        FlowNodeEntity currentNode = db.FindEntity <FlowNodeEntity>(m => m.Id == workEntity.CurrentNodeId);
                        if (currentNode != null && !string.IsNullOrEmpty(currentNode.Id))
                        {
                            if (currentNode.StepType == (int)StepType.One)
                            {
                                ApplySuccessOne(workId, desc, db, workEntity, currentNode, ref IsEnd);
                            }
                            else
                            {
                                string[] strUsers = workEntity.CurrentUsers.Split(',');
                                if (strUsers != null && strUsers.Length == 1)
                                {
                                    ApplySuccessOne(workId, desc, db, workEntity, currentNode, ref IsEnd);
                                }
                                else
                                {
                                    string[] strUsersNew = strUsers?.Where(m => m != applyUserId)?.ToArray();
                                    if (strUsersNew != null && strUsersNew.Length > 0)
                                    {
                                        workEntity.CurrentUsers = string.Join(",", strUsersNew.ToArray());
                                        AddApproProcess(workId, desc, ApprovalStatus.Pass, currentNode, db);

                                        AddCcSuccess(workId, workEntity.CurrentNodeId, applyUserId, db);
                                    }
                                }
                            }
                        }
                        else
                        {
                            throw new Exception("获取当前流程节点异常!");
                        }
                        db.Update(workEntity);
                        db.Commit();
                    }
                    else
                    {
                        throw new Exception("获取当前流程信息异常!");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #13
0
 public void SaveData(WorkEntity work)
 {
     _workData.saveWorkingData(work);
 }
Exemple #14
0
 private void ApplyFail(string workId, string desc)
 {
     try
     {
         string applyUserId = string.Empty;
         var    loguser     = OperatorProvider.Provider.GetCurrent();
         if (loguser != null)
         {
             applyUserId = loguser.UserId;
         }
         else
         {
             throw new Exception("当前用户信息异常!");
         }
         using (var db = new RepositoryBase().BeginTrans())
         {
             WorkEntity workEntity = db.FindEntity <WorkEntity>(m => m.Id == workId);
             if (workEntity != null && !string.IsNullOrEmpty(workEntity.Id))
             {
                 if (!workEntity.CurrentUsers.Contains(applyUserId))
                 {
                     throw new Exception("当前用户无权限审核此流程!");
                 }
                 if (workEntity.FlowStatus != (int)WorkStatus.Applying)
                 {
                     throw new Exception("当前审批状态不能进行审核!");
                 }
                 workEntity.Modify(workEntity.Id);
                 FlowNodeEntity currentNode = db.FindEntity <FlowNodeEntity>(m => m.Id == workEntity.CurrentNodeId);
                 bool           isFail      = false;
                 FlowNodeEntity lastNode    = GetFailNextNodeId(workId, out isFail);
                 if (isFail)
                 {
                     AddApproProcess(workId, desc, ApprovalStatus.Fail, currentNode, db);
                     workEntity.FlowStatus = (int)WorkStatus.Fail;
                     AddEndApproProcess(workId, lastNode, db);
                 }
                 else
                 {
                     if (lastNode != null && !string.IsNullOrEmpty(lastNode.Id))
                     {
                         workEntity.CurrentNodeId = lastNode.Id;
                         string lastUserId = GetApplyUserByNode(lastNode, workId);
                         bool   isNeedSkip = false;
                         string userIds    = GetCurrentUserIds(lastNode, lastUserId, out isNeedSkip);
                         if (!string.IsNullOrEmpty(userIds))
                         {
                             workEntity.CurrentUsers = userIds;
                         }
                         workEntity.FlowStatus = (int)WorkStatus.Applying;
                         AddApproProcess(workId, desc, ApprovalStatus.Fail, currentNode, db);
                     }
                     else
                     {
                         throw new Exception("当前节点驳回配置异常,请联系管理员!");
                     }
                 }
                 AddCcFail(workId, lastNode.Id, applyUserId, db);
                 db.Update(workEntity);
                 db.Commit();
             }
             else
             {
                 throw new Exception("获取当前流程信息异常!");
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        private FlowNodeEntity GetNextNodeId(string workId, ApprovalStatus approvalStatus, ref FlowLineEntity flowLineEntity, RejectType rejectType = RejectType.Last)
        {
            try
            {
                FlowNodeEntity nextNode = new FlowNodeEntity();
                using (var db = new RepositoryBase())
                {
                    WorkEntity workEntity = db.FindEntity <WorkEntity>(m => m.Id == workId);
                    if (workEntity != null && !string.IsNullOrEmpty(workEntity.Id))
                    {
                        if (approvalStatus == ApprovalStatus.Pass)
                        {
                            if (string.IsNullOrEmpty(workEntity.CurrentNodeId))
                            {
                                FlowNodeEntity flowNodeEntity = db.FindEntity <FlowNodeEntity>(m => m.IsStartNode == true && m.FlowVersionId == workEntity.FlowVersionId);
                                if (flowNodeEntity != null && !string.IsNullOrEmpty(flowNodeEntity.Id))
                                {
                                    workEntity.CurrentNodeId = flowNodeEntity.Id;
                                }
                            }
                            nextNode = GetNextNodeIdPass(workId, workEntity.CurrentNodeId, workEntity.FlowVersionId, ref flowLineEntity);
                        }
                        else
                        if (approvalStatus == ApprovalStatus.Fail)
                        {
                            if (!string.IsNullOrEmpty(workEntity.CurrentNodeId))
                            {
                                FlowNodeEntity flowNodeEntity = db.FindEntity <FlowNodeEntity>(m => m.Id == workEntity.CurrentNodeId);
                                if (flowNodeEntity != null && !string.IsNullOrEmpty(flowNodeEntity.Id))
                                {
                                    switch (flowNodeEntity.RejectType)
                                    {
                                    case (int)RejectType.Reviewer:
                                        FlowNodeEntity startflowNodeEntity = db.FindEntity <FlowNodeEntity>(m => m.IsStartNode == true && m.FlowVersionId == workEntity.FlowVersionId);
                                        if (flowNodeEntity != null && !string.IsNullOrEmpty(flowNodeEntity.Id))
                                        {
                                            workEntity.CurrentNodeId = flowNodeEntity.Id;
                                        }
                                        nextNode = GetNextNodeIdPass(workId, workEntity.CurrentNodeId, workEntity.FlowVersionId, ref flowLineEntity);
                                        break;

                                    case (int)RejectType.Last:
                                        nextNode = GetNextNodeIdFail(workId, workEntity.CurrentNodeId, workEntity.FlowVersionId, ref flowLineEntity);
                                        break;

                                    case (int)RejectType.Specified:
                                        break;

                                    default:
                                        throw new Exception("当前节点驳回配置异常!");
                                    }
                                }
                            }
                            else
                            {
                                throw new Exception("当前节点异常!");
                            }
                        }
                    }
                }
                return(nextNode);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #16
0
        public WorkEntity GetForm(string keyValue)
        {
            WorkEntity model = service.FindEntity(keyValue);

            return(model);
        }
Exemple #17
0
        private void GenerateLecturerTable_btn_Click(object sender, RoutedEventArgs ev)
        {
            try
            {
                //string lecturername = lec_name_txt.Text;
                //var s = _sessionViewModel.LoadSessionData();

                int workdID            = int.Parse(timeTable_Id_txt.Text);
                List <WorkEntity> list = new List <WorkEntity>();


                _viewModel = new WorkViewModel();

                list = _viewModel.LoadWorkingDaysData(workdID);
                lecturerTable_grid.ItemsSource = list;

                WorkEntity work = lecturerTable_grid.Items[0] as WorkEntity;

                String res  = work.workingDays.ToString();
                int    num  = work.noOfWorkingHours;
                String res1 = work.timeSlotStartTime.ToString();
                String res2 = work.timeSlotEndTime.ToString();


                //data.items = works.Split(',');

                //List<string> list1 = new List<string>();
                //Data data = new Data();

                string[] days;
                string[] start;
                string[] end;

                start = res1.Split(',');
                end   = res2.Split(',');

                //string full;

                //List<Data> datalist = new List<Data>();


                /*for (int i=0; i<start.Length; i++)
                 * {
                 *  full = start[i] + end[i];
                 *  list1.Add(full);
                 *
                 * }
                 *
                 * for (int i = 0; i < list1.Count; i++)
                 * {
                 *  datalist.Add(new Data
                 *  {
                 *      fullTime = list1[i].ToString()
                 *  });
                 * }*/
                //lecturer_timetable.DataContext = datalist;


                //string[] test = list1.ToArray();
                //data.fullTime = list1.ToArray();



                _timeSlotViewModel = new TimeSlotViewModel();



                days = res.Split(',');

                //data.items[0] = "";
                //data.items = res.Split(',');

                //DataContext = data;

                //lecturer_timetable.Items.Add(data);

                //lecturer_timetable.DataContext = data.fullTime;


                int len = (end.Length) - 2;

                string x = end[len];

                string name = lec_name_txt.Text;

                int        lecId      = lecturers.Find(e => e.Name == name).EmployeeId;
                List <int> sessionIds = new List <int>();
                _sessionViewModel.LoadSessionDataByLecturer(lecId).Select(e => { sessionIds.Add(e.SessionId); return(e); }).ToList();
                var c = sessionIds;

                //var f = _sessionViewModel.LoadSessionDataByLecturer(lecId);


                // for(int i; i < )


                //for (int i = 0; i < days.Length; i++)
                //{
                //    days[i] =
                //}


                //For day : - 9 ?
                // # of days : - 5 ?
                // TOT = 9*5 = 45
                _timeSlotEntities = new List <TimeSlotEntity>();
                double startTime = double.Parse(start[0]);
                //int sttime = 8;
                //float st = ++startTime;
                int currentDate = 0;
                //int edtime = 17;
                double endTime = double.Parse(end[len]);
                int    num1    = num * days.Length;
                for (int i = 0; i < num1; i++)
                {
                    if (startTime == endTime)
                    {
                        startTime = double.Parse(start[0]);
                        currentDate++;
                    }

                    if (i >= c.Count)
                    {
                        _timeSlotEntities.Add(
                            new TimeSlotEntity {
                            ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = 0
                        }
                            );
                    }
                    else
                    {
                        _timeSlotEntities.Add(
                            new TimeSlotEntity {
                            ID = i, TimeSlots = $"{startTime}-{++startTime}", Days = days[currentDate], SessionId = c[i]
                        }
                            );
                    }
                }

                //timeSlotEntity = new TimeSlotEntity(2, "8-9", "tue");
                //_timeSlotViewModel.SaveTimeSlotsData(timeSlotEntity);

                foreach (TimeSlotEntity t in _timeSlotEntities)
                {
                    _timeSlotViewModel.SaveTimeSlotsData(t);
                }

                var y = _timeSlotViewModel.LoadTimeSlotData();
                lecturer_timetable.ItemsSource = y;


                _timeSlotViewModel.DeleteTimeData();



                //string name = "Arosha";

                //int lecId = lecturers.Find(e => e.Name == name).EmployeeId;
                //List<int> sessionIds = new List<int>();
                //_sessionViewModel.LoadSessionDataByLecturer(lecId).Select(e => { sessionIds.Add(e.SessionId); return e; });
                //var c = sessionIds;


                /*string[,] daysAndSlots = {
                 *  { "Monday", "8.30-9.30" },
                 *  { "Tuesday", "9.30-10.30" },
                 *  { "Wednesday", "10.30-11.30" },
                 *  { "Thursday", "11.30-12.30" },
                 *  { "Friday", "12.30-13.30" },
                 *  { "Saturday", "13.30-14.30" }
                 * };*/
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public static int GetWorkCompletedCount(CloudTableClient client, string resultPath, string container)
        {
            var workTable = client.GetTableReference(WorkTableName);
            TableQuery <WorkEntity> workItemQuery = new TableQuery <WorkEntity>().Where(
                TableQuery.CombineFilters(
                    TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, WorkEntity.EncodeResultPath(resultPath, container)),
                    TableOperators.And,
                    TableQuery.GenerateFilterCondition("CompletedTime", QueryComparisons.NotEqual, ""))).Select(new[] { "RowKey" });

            var completedItems = workTable.ExecuteQuery(workItemQuery);

            return(completedItems.ToList().Count);
        }
Exemple #19
0
 public void UpdateWorkData(WorkEntity work)
 {
     _workData.UpdateData(work);
 }
Exemple #20
0
        private void add_work_btn_Click(object sender, RoutedEventArgs e)
        {
            /*try
             * {
             *
             *
             * }
             * catch(Exception ex)
             * {
             *  MessageBox.Show(ex.Message);
             * }*/

            String monday    = "";
            String tuesday   = "";
            String wednesday = "";
            String thursday  = "";
            String friday    = "";
            String saturday  = "";
            String sunday    = "";

            int count = 0;

            //String[] days = new String[7];
            ArrayList days = new ArrayList();


            if (chk_mon.IsChecked == true)
            {
                monday = "Monday,";
                days.Add(monday);
                count++;
            }
            else
            {
                monday = null;
            }
            if (chk_tues.IsChecked == true)
            {
                tuesday = "Tuesday,";
                days.Add(tuesday);
                count++;
            }
            else
            {
                tuesday = null;
            }
            if (chk_wed.IsChecked == true)
            {
                wednesday = "Wednesday,";
                days.Add(wednesday);
                count++;
            }
            else
            {
                wednesday = null;
            }
            if (chk_thurs.IsChecked == true)
            {
                thursday = "Thursday,";
                days.Add(thursday);
                count++;
            }
            else
            {
                thursday = null;
            }
            if (chk_fri.IsChecked == true)
            {
                friday = "Friday,";
                days.Add(friday);
                count++;
            }
            else
            {
                friday = null;
            }
            if (chk_sat.IsChecked == true)
            {
                saturday = "Saturday,";
                days.Add(saturday);
                count++;
            }
            else
            {
                saturday = null;
            }
            if (chk_sun.IsChecked == true)
            {
                sunday = "Sunday";
                days.Add(sunday);
                count++;
            }
            else
            {
                sunday = null;
            }


            foreach (String obj in days)
            {
            }

            String workingDays = "";

            //workId = Convert.ToInt16(workId_txt.Text);
            String batch = batch_txtbx.Text;

            //int wdNo = int.Parse(workdays_no_txtbx.Text);
            string[] array = days.ToArray(typeof(string)) as string[];
            //int whNo = int.Parse(workinghr_no_txtbx.Text);
            // String time = timeslots_txtbx.Text;



            if (workdays_no_txtbx.Text == "" || batch_txtbx.Text == "" || workId_txt.Text == "" || workinghr_no_txtbx.Text == "")
            {
                MessageBox.Show("Please fill the fields");
            }
            else
            {
                if (count == int.Parse(workdays_no_txtbx.Text))
                {
                    foreach (string value in array)
                    {
                        txtbxcp.AppendText(value.ToString());
                        workingDays = txtbxcp.Text;
                    }

                    string[] array1 = getstartTimes.ToArray(typeof(string)) as string[];
                    foreach (string value1 in array1)
                    {
                        time1.AppendText(value1.ToString());
                        startTimes = time1.Text;
                    }

                    string[] array2 = getendTimes.ToArray(typeof(string)) as string[];
                    foreach (string value2 in array2)
                    {
                        time2.AppendText(value2.ToString());
                        endTimes = time2.Text;
                    }

                    string[] array3 = getfullTimes.ToArray(typeof(string)) as string[];
                    foreach (string value3 in array3)
                    {
                        time3.AppendText(value3.ToString());
                        fullTimes = time3.Text;
                    }

                    workEntity = new WorkEntity(int.Parse(workId_txt.Text), batch, int.Parse(workdays_no_txtbx.Text), workingDays, int.Parse(workinghr_no_txtbx.Text), startTimes, endTimes);
                    _viewModel.SaveData(workEntity);



                    clear();
                }
                else
                {
                    MessageBox.Show("Count of Working days and No of working days are not matching");
                }
            }
        }
Exemple #21
0
 public void UpdateEntity(WorkEntity entity)
 {
     entity.NewPlannedStartDate = NewPlannedStartDate;
     entity.AddedCost           = AddedCost;
     AddedChildrenCost          = AddedChildrenCost;
 }
        public ActionResult WorkMeeting()
        {
            List <TempProjectData> tempData = new List <TempProjectData>();

            string sql            = string.Format(@"select b.engineerletdept,e.engineerletdeptid,sum(b.realpernum) realpernum
                                              from bis_workmeeting b
                                              left join epg_outsouringengineer e on e.id=b.engineerid
                                         where b.iscommit=1 and b.meetingtype = '开工会' and to_char(b.meetingdate,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd') and b.engineerid in 
                                         (select e.id from epg_outsouringengineer e where e.engineertype = '002') and  b.id not in(select startmeetingid from bis_workmeeting where  meetingtype = '收工会' and startmeetingid is not null)
                                         group by b.engineerletdept,e.engineerletdeptid");
            var    data           = workMeetingbll.GetTable(sql);
            var    totalProNum    = 0;
            var    totalPersonNum = 0;

            if (data.Rows.Count > 0)
            {
                totalPersonNum = Convert.ToInt32(data.Compute("Sum(realpernum)", ""));
            }

            for (int i = 0; i < data.Rows.Count; i++)
            {
                TempProjectData  itemData = new TempProjectData();
                List <ProEntity> ProList  = new List <ProEntity>();
                itemData.DeptName   = data.Rows[i]["engineerletdept"].ToString();
                itemData.DeptId     = data.Rows[i]["engineerletdeptid"].ToString();
                itemData.RealperNum = Convert.ToInt32(data.Rows[i]["realpernum"].ToString());
                string sqlWhere = string.Format(@"select distinct b.engineerid
                                          from bis_workmeeting b
                                         where b.iscommit=1 and b.meetingtype = '开工会'
                                           and to_char(b.meetingdate, 'yyyy-MM-dd') =
                                               to_char(sysdate, 'yyyy-MM-dd') 
                                           and b.engineerid in (select e.id
                                                                  from epg_outsouringengineer e
                                                                 where e.engineertype = '002' and e.engineerletdeptid='{0}')", data.Rows[i]["engineerletdeptid"].ToString());
                itemData.ProNum = workMeetingbll.GetTable(sqlWhere).Rows.Count;
                totalProNum    += itemData.ProNum;
                string Sql1 = string.Format(@" select b.id,b.engineername,b.engineerletdept,b.address,realpernum,risklevel,e.engineerletpeople,e.outprojectid
                                                             from bis_workmeeting b
                                                             left join epg_outsouringengineer e on e.id=b.engineerid        
                                                             where b.iscommit=1 and b.meetingtype='开工会' and to_char(b.meetingdate,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd') and b.engineerid in( select e.id from epg_outsouringengineer e where e.engineertype='002' and  b.id not in(select startmeetingid from bis_workmeeting where  meetingtype = '收工会' and startmeetingid is not null)
                                                            and e.engineerletdeptid='{0}')", data.Rows[i]["engineerletdeptid"].ToString());
                var    dt   = workMeetingbll.GetTable(Sql1);
                foreach (DataRow item in dt.Rows)
                {
                    ProEntity         pro      = new ProEntity();
                    List <WorkEntity> workList = new List <WorkEntity>();
                    pro.Address        = item["address"].ToString();
                    pro.DeptName       = data.Rows[i]["engineerletdept"].ToString();
                    pro.DeptPersonName = item["engineerletpeople"].ToString();
                    pro.ProName        = item["engineername"].ToString();
                    pro.RealperNum     = Convert.ToInt32(item["realpernum"].ToString());
                    pro.RiskLevel      = item["risklevel"].ToString();
                    pro.UnitName       = new DepartmentBLL().GetEntity(item["outprojectid"].ToString()) == null ? "" : new DepartmentBLL().GetEntity(item["outprojectid"].ToString()).FullName;
                    pro.Meetingid      = item["id"].ToString();
                    var list = new WorkmeetingmeasuresBLL().GetList("").Where(x => x.Workmeetingid == item["id"].ToString()).Select(x => new
                    {
                        x.WorkTask,
                        x.DangerPoint,
                        x.Measures,
                        x.Remark1
                    }).ToList();

                    foreach (var workitem in list)
                    {
                        WorkEntity e = new WorkEntity();
                        e.DangerPoint = workitem.DangerPoint;
                        e.WorkTask    = workitem.WorkTask;
                        e.Measures    = workitem.Measures;
                        e.WorkAddress = workitem.Remark1;
                        workList.Add(e);
                    }
                    pro.workList = workList;
                    ProList.Add(pro);
                }
                itemData.ProList = ProList;
                tempData.Add(itemData);
            }
            var jsonData = new
            {
                tempData       = tempData,
                totalProNum    = totalProNum,
                totalPersonNum = totalPersonNum
            };
            var jsonDataReturn = new { code = 0, count = tempData.Count, info = "获取数据成功", data = jsonData };

            return(Content(jsonDataReturn.ToJson()));
        }