Exemple #1
0
        public bool IsValidCustomFieldIdList(AbstractJobIndexId jobIndexId, IList <CustomFieldTypeId> customFieldTypeIds)
        {
            var jobIndex = (JobIndex)jobIndexRep.GetById(jobIndexId);

            var customFieldList = customFieldRep.Find(customFieldTypeIds);

            return(jobIndex.IsValidCustomFields(customFieldList));
        }
Exemple #2
0
 public AbstractJobIndex GetJobIndexById(AbstractJobIndexId jobIndexId)
 {
     using (var tr = new TransactionScope())
     {
         var res = jobIndexRep.GetById(jobIndexId);
         tr.Complete();
         return(res);
     }
 }
        public AbstractIndex GetAbstarctJobIndexById(long id)
        {
            var jobIndex         = jobIndexRep.GetById(new AbstractJobIndexId(id));
            var abstractIndexDto = jobIndexMapper.MapToModel(jobIndex);

            if (abstractIndexDto is JobIndexDTO)
            {
                var customFieldList = customFieldRep.GetAllCustomField(new AbstractJobIndexId(id));
                ((JobIndexDTO)abstractIndexDto).CustomFields = customFieldList.Select(c => customFieldDtoMapper.MapToModel(c)).ToList();
            }

            return(abstractIndexDto);
        }
        public InquiryFormDTO GetInquiryForm(long periodId, long inquirerJobPositionId, string inquirerEmployeeNo, string inquirySubjectEmployeeNo,
                                             long jobPositionId)
        {
            List <InquiryJobIndexPoint> inquryJobIndexPoints =
                inquiryService.GetAllInquiryJobIndexPointBy(new JobPositionInquiryConfigurationItemId(
                                                                new JobPositionId(new PeriodId(periodId), new SharedJobPositionId(inquirerJobPositionId)),
                                                                new EmployeeId(inquirerEmployeeNo, new PeriodId(periodId)),
                                                                new JobPositionId(new PeriodId(periodId), new SharedJobPositionId(jobPositionId)),
                                                                new EmployeeId(inquirySubjectEmployeeNo, new PeriodId(periodId))));

            // TODO:(LOW)Mapper and Domain Report Needed
            var inquiryForm = new InquiryFormDTO
            {
                InquirerEmployeeNo    = inquirerEmployeeNo,
                InquirerJobPositionId = inquirerJobPositionId,
                JobPositionId         = jobPositionId,

                PeriodId = periodId,
                InquirySubjectEmployeeNo = inquirySubjectEmployeeNo,
            };
            var inquiryJobIndexValueList = new List <JobIndexValueDTO>();

            foreach (var inquiryJobIndexPoint in inquryJobIndexPoints)
            {
                var abstractJobIndex = jobIndexRep.GetById(inquiryJobIndexPoint.JobIndexId);
                var jobIndex         = abstractJobIndex as JobIndex;
                if (jobIndex != null && jobIndex.IsInquireable)
                {
                    inquiryJobIndexValueList.Add(new JobIndexValueDTO
                    {
                        Id           = inquiryJobIndexPoint.Id.Id,
                        IndexValue   = inquiryJobIndexPoint.JobIndexValue,
                        JobIndexId   = inquiryJobIndexPoint.JobIndexId.Id,
                        JobIndexName = (jobIndex).Name
                    });
                }
            }

            inquiryForm.JobIndexValueList = inquiryJobIndexValueList;

            return(inquiryForm);
        }
Exemple #5
0
        public AbstractIndexInPeriodDTO GetAbstarctJobIndexById(long id)
        {
            var abstractJobIndex = jobIndexRep.GetById(new AbstractJobIndexId(id));
            var abstractIndexDto = jobIndexMapper.MapToModel(abstractJobIndex);


            if (abstractIndexDto is JobIndexInPeriodDTO)
            {
                var jobIndex = (JobIndex)abstractJobIndex;
                var sharedJobIndexCustomFlds = jobIndexService.GetSharedJobIndexCustomField(jobIndex.SharedJobIndexId,
                                                                                            jobIndex.CustomFieldValues.Keys.ToList());
                foreach (var customFld in sharedJobIndexCustomFlds)
                {
                    var abstractDescCustomFld = abstractCustomFieldDtoMapper.MapToModel(customFld);
                    abstractDescCustomFld.Value = jobIndex.CustomFieldValues[customFld.Id];
                    ((JobIndexInPeriodDTO)abstractIndexDto).CustomFields.Add(abstractDescCustomFld);
                }
            }

            return(abstractIndexDto);
        }
Exemple #6
0
        private void create(JobPositionInquiryConfigurationItem configurationItem)
        {
            var job = jobRep.GetById(configurationItem.JobPosition.JobId);

            foreach (var jobJobIndex in job.JobIndexList)
            {
                var jobIndex = jobIndexRep.GetById(jobJobIndex.JobIndexId);
                if ((jobIndex as JobIndex).IsInquireable)
                {
                    if ((configurationItem.InquirerJobPositionLevel == JobPositionLevel.Childs &&
                         jobJobIndex.ShowforLowLevel) ||
                        (configurationItem.InquirerJobPositionLevel == JobPositionLevel.Parents &&
                         jobJobIndex.ShowforTopLevel) ||
                        (configurationItem.InquirerJobPositionLevel == JobPositionLevel.Siblings &&
                         jobJobIndex.ShowforSameLevel) ||
                        configurationItem.InquirerJobPositionLevel == JobPositionLevel.None)
                    {
#if (DEBUG)
                        var pointList = new List <string>()
                        {
                            "20",
                            "40",
                            "60",
                            "80",
                            "100"
                        };
                        var selector = new Random();
                        var index    = selector.Next(pointList.Count);

                        inquiryJobIndexPointService.Add(configurationItem, jobIndex as JobIndex, pointList[index]);
#else
                        inquiryJobIndexPointService.Add(configurationItem, jobIndex as JobIndex, string.Empty);
#endif
                    }
                }
            }
        }
        public void Create(JobPositionInquiryConfigurationItemId configurationItemId)
        {
            var jobPosition = jobPositionRep.GetBy(configurationItemId.InquirySubjectJobPositionId);
            var itm         = jobPosition.ConfigurationItemList.Single(c => c.Id.Equals(configurationItemId));
            var job         = jobRep.GetById(jobPosition.JobId);

            foreach (var jobIndexId in job.JobIndexList)
            {
                //todo: check for configuration
                var jobIndex = jobIndexRep.GetById(jobIndexId.JobIndexId);
                if ((jobIndex as JobIndex).IsInquireable)
                {
                    var id = inquiryJobIndexPointRep.GetNextId();
#if (DEBUG)
                    var pointList = new List <string>()
                    {
                        "20",
                        "40",
                        "60",
                        "80",
                        "100"
                    };
                    var selector = new Random();
                    var index    = selector.Next(pointList.Count);

                    var inquiryIndexPoint = new InquiryJobIndexPoint(new InquiryJobIndexPointId(id), itm, jobIndex as JobIndex,
                                                                     pointList[index]);
#else
                    var inquiryIndexPoint = new InquiryJobIndexPoint(new InquiryJobIndexPointId(id), itm, jobIndex as JobIndex,
                                                                     string.Empty);
#endif

                    publisher.Publish(new InquiryJobIndexPointCreated(inquiryIndexPoint));
                }
            }
        }
Exemple #8
0
        public EmployeeResultDTO GetEmployeeResultInPeriod(long periodIdParam, string employeeNo)
        {
            var periodId = new PeriodId(periodIdParam);
            var period   = periodRep.GetById(periodId);
            var employee = employeeRepository.GetBy(new EmployeeId(employeeNo, periodId));

            if (employee == null)
            {
                throw new Exception("شماره پرسنلی شما در سیستم موجود نمی باشد");
            }
            var employeeJobPositionIds = employee.JobPositions.Select(j => j.JobPositionId).ToList();
            var employeeUnitIds        = new List <UnitId>();
            var jobPositionNames       = string.Empty;
            var unitNames     = string.Empty;
            var unitRootNames = string.Empty;
            var calculation   = calculationRepository.GetDeterministicCalculation(period);

            foreach (var jobPositionId in employeeJobPositionIds)
            {
                var jobPosition = jobPositionRepository.GetBy(jobPositionId);
                jobPositionNames += jobPosition.Name;
                if (employeeJobPositionIds.Count() > 1)
                {
                    jobPositionNames += " - ";
                }
                employeeUnitIds.Add(jobPosition.UnitId);
            }

            foreach (var unitId in employeeUnitIds)
            {
                var unit = unitRepository.GetBy(unitId);
                unitNames += unit.Name;
                if (employeeUnitIds.Count > 1)
                {
                    unitNames += " - ";
                }
                unitRootNames += unit.Parent.Name;
                if (employeeUnitIds.Count > 1)
                {
                    unitRootNames += " - ";
                }
            }

            //var finalUnitPoint =jobIndexPointRepository.GetFinalUnitPoint(calculation.Id, employee.Id);

            var res = new EmployeeResultDTO
            {
                PeriodName              = period.Name,
                PeriodTimeLine          = "از تاریخ " + PDateHelper.GregorianToHijri(period.StartDate, false) + " تا تاریخ " + PDateHelper.GregorianToHijri(period.EndDate.Date, false),
                EmployeeFullName        = employee.FullName,
                EmployeeNo              = employeeNo,
                EmployeeJobPositionName = jobPositionNames,
                TotalPoint              = employee.FinalPoint.ToString(CultureInfo.InvariantCulture),
                EmployeeUnitName        = unitNames,
                EmployeeUnitRootName    = unitRootNames,
                //TotalUnitPoint =finalUnitPoint==null?(0).ToString(): finalUnitPoint.Value.ToString(CultureInfo.InvariantCulture),
                JobIndexValues = new List <JobIndexValueDTO>()
            };

            var employeeIndexPoints = jobIndexPointRepository.GetBy(calculation.Id, employee.Id);

            foreach (var indexPoint in employeeIndexPoints)
            {
                var jobIndex = (JobIndex)jobIndexRepository.GetById(indexPoint.JobIndexId);
                res.JobIndexValues.Add(new JobIndexValueDTO
                {
                    JobIndexName = jobIndex.Name,
                    IndexValue   = indexPoint.Value.ToString()
                });
            }


            return(res);
            //Find<EmployeePoint>(
            //    jp =>
            //        jp.Name == "finalunitPoint" && jp.CalculationId == calculation.Id &&
            //        jp.EmployeeId == employee.Id,fs);
            //var jobpositions=jobPositionRepository.
        }